现在互联网的系统越来越趋向于复杂,从单体系统到现在的微服务体系演变。公司与公司的分工也越来越明确。

大数据公司提供了大数据服务

人脸识别公司提供了人脸识别服务

OCR 公司提供了专业的OCR 服务

车三百  公司提供了 车辆 评估服务

e签宝/安心签 公司提供了 线上电子签约服务。

公司在做业务系统迭代的时候,我们是离不开与上述专业公司的对接,合作。那么第三方公司提供的对接方式,一般都是 RESTFUL 风格的API.因为简单,通用性强。我们在对接第三方服务的时候,有个最头大的问题: 就是对方通常会叫我们提供一个回调地址,第三方公司通常把自己的服务的处理结果通过我们之前提供的回调地址,把结果,告知我方,如下图所示:

这就产生了一个重要的问题:第三方异步通知过来了,我方的业务接口挂了/我方的服务停了/或者我方接收到了但是消费失败了 怎么办?  问题返过来说: 这部分的容错机制、高可用机制、消费失败预警机制,消费失败补偿机制 怎么处理。

那么 异步 Bitter.NotifyOpenpaltform  异步消息接收调度中心 就是为解决上述问题而生。

如下图:

在上图中,第三方公司的HTTP 回调先回调到我们 异步消息接收中心系统中,由我们异步消息接收系统 在通知业务层服务接口消费。

在上图中 我们发现: 异步消息接收调度中心是不处理逻辑层业务,它负责的就是接收异步消息,然后转给业务层服务接口消费。如果业务层消费失败,那么容错,预警,补偿,全都在异步消息接收调度中心统一可查(失败预警),并通过自动人工 重新发起补偿重试。

当然,这时候,异步消息接收中心就变得更加重要了,从上图可以看出,如果,异步消息接收中心宕了,那么问题是灾难性的。因此异步消息接收中心在部署方式一定是集群高可用性质的方式。当然 Bitter.NotifyOpenpaltform 是支持集群高可用部署。

Bitter.NotifyOpenpaltform:

异步消息通知平台,旨在解决多服务、异构系统,内外部系统之间的异步消息通知一致性消费问题,NotifyPaltform 采用的是消息事务一致性方案中的最大努力通知方案来设计.

NotifyPaltform 解决的问题:

1: 规范异步消息通知

2: 规范问题查找

3: 规异步消息补偿机制

4: 及时发现通知失败的原因以及报警机制

5:结构化查询问题界面以及统一补偿机制界面

一直努力-不思进取 !

望大家主动接入,只要今后涉及到异步消息通知的.努力接入 !

Bitter.NotifyOpenPaltform : HTTP 异步消息接收调度中心—开源贡献 之 一:简介的更多相关文章

  1. Bitter.NotifyOpenPaltform : HTTP 异步消息接收调度中心--开源贡献 之 一:简介

    现在互联网的系统越来越趋向于复杂,从单体系统到现在的微服务体系演变.公司与公司的分工也越来越明确. 大数据公司提供了大数据服务 人脸识别公司提供了人脸识别服务 OCR 公司提供了专业的OCR 服务 车 ...

  2. spring boot / cloud (十五) 分布式调度中心进阶

    spring boot / cloud (十五) 分布式调度中心进阶 在<spring boot / cloud (十) 使用quartz搭建调度中心>这篇文章中介绍了如何在spring ...

  3. #研发中间件介绍#异步消息可靠推送Notify

    郑昀 基于朱传志的设计文档 最后更新于2014/11/11 关键词:异步消息.订阅者集群.可伸缩.Push模式.Pull模式 本文档适用人员:研发   电商系统为什么需要 NotifyServer? ...

  4. Java异步消息平台

    l  JAVA平台异步消息模块 JAVA平台异步消息模块,是一个针对RabbitMQ的消息发送及处理封装,包含消息的配置.发送.接收.失败重试.日志记录等,总共分为4个部分: 1)RabbitMQ访问 ...

  5. 一个异步任务接收两个url下载两个图片

    有两个url,一个是下载用户头像的url,一个是下载用户上传图片的url,想要用一个异步任务同时下载这两个图片. 程序的下载任务是这么执行的,先接受url参数,然后调用 imgUrls = infoP ...

  6. 三.RabbitMQ之异步消息队列(Work Queue)

    上一篇文章简要介绍了RabbitMQ的基本知识点,并且写了一个简单的发送和接收消息的demo.这一篇文章继续介绍关于Work Queue(工作队列)方面的知识点,用于实现多个工作进程的分发式任务. 一 ...

  7. 八.利用springAMQP实现异步消息队列的日志管理

    经过前段时间的学习和铺垫,已经对spring amqp有了大概的了解.俗话说学以致用,今天就利用springAMQP来完成一个日志管理模块.大概的需求是这样的:系统中有很多地方需要记录操作日志,比如登 ...

  8. java模拟异步消息的发送与回调

      http://kt8668.iteye.com/blog/205739 本文的目的并不是介绍使用的什么技术,而是重点阐述其实现原理. 一. 异步和同步 讲通俗点,异步就是不需要等当前执行的动作完成 ...

  9. rocketmq源码分析2-broker的消息接收

    broker消息接收,假设接收的是一个普通消息(即没有事务),此处分析也只分析master上动作逻辑,不涉及ha. 1. 如何找到消息接收处理入口 可以通过broker的监听端口10911顺藤摸瓜式的 ...

随机推荐

  1. 小希的迷宫B - B

    上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了 ...

  2. Codeforces Round #652 (Div. 2) E. DeadLee(贪心)

    题目链接:https://codeforces.com/contest/1369/problem/E 题意 Lee 有 $n$ 种不同种类的食物和 $m$ 个朋友,每种食物有 $w_i$ 个,每个朋友 ...

  3. 【bzoj 1190】梦幻岛宝珠(DP)

    这题是在01背包问题的基础上,扩充了重量,需要用时间换空间. 思路: 1.仔细看题,注意到重量wi为a*2^b(a<=10,b<=30),很容易想到要按 b 分开做背包的DP.接下来的重点 ...

  4. 2019牛客暑期多校训练营(第八场)B Beauty Values && C CDMA

    B题题意: 题目 给你n个数,让你把这一个序列中的所有子区间的Beauty Values加起来,Beauty Values是子区间内有几个不同的数 题解: 肯定不会是暴力,所以我们就要在各元素的位置上 ...

  5. codeforces578C. Weakness and Poorness

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

  6. Java基础(第一期)

    Java基础 1.注释 Java中注释有三种: 单行注释 // 多行注释 /* */ 文本注释(用的较少) /** */ 书写注释是一个非常好的习惯 BAT 平时写代码一定要注意规范 //有趣的代码注 ...

  7. QT串口助手(五):文件操作

    作者:zzssdd2 E-mail:zzssdd2@foxmail.com 一.前言 开发环境:Qt5.12.10 + MinGW 功能 文件的发送 数据的保存 知识点 QFile类的使用 QTime ...

  8. js中for循环遍历的写法

    众所周知,for循环是编程中必不可少的知识点:那么如何高效的写出循环呢? 我们要先知道for循环的基础样式是由自有变量自增自减和if判组成的: 1 for(条件){ 2 执行语句 3 } 而for循环 ...

  9. OpenStack Train版-7.neutron网络服务概述

    网络服务NEUTRON概述 一.NEUTRON架构 OpenStack的网络服务neutron是整个OpenStack中最复杂的一个部分,它的基本架构是一个中心服务(neutron-server)外加 ...

  10. Semantic Pull Requests All In One

    Semantic Pull Requests All In One https://github.com/zeke/semantic-pull-requests docs: Update direct ...