我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019年全年资料内部公开36码 > 强一致性 >

最终一致性 可靠消息投递的方案

归档日期:07-27       文本归类:强一致性      文章编辑:爱尚语录

  ] 分布式事务可以分成强一致性和最终一致性两种方案。对于强一致性,可以了解下「二阶段提交协议」、「三阶段提交协议」。但是,强一致性存在一些问题,因此生产环境中更多的是利用最终一致性的方案。对于,TCC 和 saga 可以查阅一下相关材料。这里,想分享一下可靠消息投递的方案。

  消息队列发生消息后,可能消费者宕机而无法消费。绝大多数消息中间件对于这种情况,例如 RabbitMQ、RocketMQ 等引入了 ACK 机制。注意的是,默认的情况下,采用自动应答,这种方式中消息队列会发送消息后立即从消息队列中删除该消息。所以,为了确保消息的可靠投递,我们通过手动 ACK 方式,如果消费者因宕机等原因没有发送 ACK,消息队列会将消息重新发送,保证消息的可靠性。从业务服务处理完相关业务后通过手动 ACK 通知消息队列,消息队列才从消息队列中删除该持久化消息。那么,消息队列如果一直重试失败而无法投递,就会出现消息主动丢弃的情况,我们需要如何解决呢?主业务服务将要发送的消息持久化到本地数据库。从业务服务消费成功后,它也会向消息队列发送一个通知消息,此时它是一个消息的生产者。消费者接收到消息后,最终把本地的持久化消息标志状态为“完成”状态。说到这里,我们应该可以理解到使用“正反向消息机制”确保了消息队列可靠事件投递。当然,补偿机制也是必不可少的。定时任务会从数据库扫描在一定时间内未完成的消息并重新投递

  前言在上一篇研读《可靠消息最终一致性方案(本地消息服务)》我介绍了通过本地消息服务来实现分布式事务最终一致性,最后也说了一下这种实现方案的优缺点,现在就来介绍一下如何通过独立消息服务实现分布式事务最终...博文来自:腹黑大壁花

  分布式事务四_基于可靠消息的最终一致性更多干货分布式事务处理一分布式事务二分布式事务处理三分布式事务四_基于可靠消息的最终一致性分布式事务五_基于可靠消息的最终一致性_异常流程分布式事务六_常规MQ队...博文来自:架构师的成长之路的博客

  2.最终一致性(基于可靠消息)2.1消息发送的一致性指产生消息的业务动作与消息发送的一致。(也就是说,如果业务操作成功,那么由这个业务操作所产生的消息一定要成功投递出去,否则就丢消息)2.1.1如何保...博文来自:极客神殿

  基于可靠消息最终一致性的方案1.主动方(订单服务)在业务事务提交前,向实时消息服务请求发送消息,实时消息服务只记录消息数据,而不真正发送。只将消息保存到DB,状态status为等待确认(WATING_...博文来自:迪迪调调的博客

  消息发送一致性:是指产生消息的业务动作与消息发送的一致。也就...博文来自:z69183787的专栏

  前言经过前面一篇文章的了解(消息一致性问题的分析),我们已经清楚了消息在发送以及接受端会存在一致性的问题;只有解决了消息的一致性问题,才可以在分布式部署环境下我们认为他们是可靠的,进而可以基于可靠消息...博文来自:码农时代

  **导读**在之前的文章中我们介绍了如何基于RocketMQ搭建生产级消息集群,以及2PC、3PC和TCC等与分布式事务相关的基本概念(没有读过的读者详见...博文来自:weixin_44296862的博客

  本方案分布式事务柔性事务解决方案:可靠消息最终一致性(异步确保型)实现自本方案与龙果学院的方案思想基本一致,但本方案使用SpringCloud实现方案中用到的主要技术为:SpringCloud、Spr...博文来自:Anur IjuoKaruKas的博客

  什么时候使用分布式?业务太复杂,对业务进行拆分,进行服务化,对数据库进行拆分,水平拆分或垂直拆分。不管怎么拆分吧,拆出了其他问题,当我们系统最初级阶段,所有数据都在一个数据库中,进行事务一致性控制很容...博文来自:wjw的博客

  来源:号外:最近整理了一下以前编写的一系列SpringBoot内容,整了个《SpringBoot基础教程》的PDF,关注我,回......博文来自:程序猿DD

  spring项目中可以直接使用的代码:方案阶段一,A中心完成数据库操作,同时往事件表里面插入一条数据,状态为待处理阶段二,...博文来自:dengjili的专栏

  前言这两天看了龙果学院的微服务架构的分布式事务解决方案,其中提到了《可靠消息最终一致性方案(本地消息)》,不过课程虽然讲解的详细,但是PPT里面的插图和描述做的不太好,为了之后复习,做一个笔记。正文在...博文来自:腹黑大壁花

  基于消息中间件的分布式解耦模块间的事务问题. 1.基于mq消息的消息落地[持久化到db/mysql]---gt;保证消息的不丢失 2.消息手动签收---gt;保证消息的不正常消...博文来自:Jams_5201314的博客

  可靠消息的生产与消费的正向流程可靠消息最终一致性方案1材料摘自龙果学院:优点1消息时效性比较高2.从应用设计开发的角度实现了消息数据的可靠性,消息数据的可靠...博文来自:vincent

  本文转自:不同于单一架构应用(Monolith),分布式环境下,进行事务操作将变得困难,因为分布式环境通常会有...博文来自:编程战五渣

  消息发送一致性是指产生消息的业务动作与消息发送的一致。也就是说,如果业务操作成功,那么由这个业务操作所产生的消息一定要成功投递出去,否则就丢消息。消息发送一致性如何保障使用XAJMS中的XA系列接口,...博文来自:柚子爱上花的博客

  话不多说,直接切入正题:2018-09-0720:30更基础流程图:上游服务接收到信息,先保存在本地消息表中,保存失败直接返回退出,保存成功则通知消息服务器new一个新的消息对象,状态为NEW,表示这...博文来自:Coder_Joker的博客 joke a joker

  前言方案简介前言前面几篇文章,我们主要介绍了基于可靠性消息的最终一致性解决方案;有基于本地消息服务的和独立消息服务的,参见之前的文章可靠消息的最终一致性方案(集成独立消息服务)。方案简介最大努力通知方...博文来自:码农时代

  消息中心一致性解决方案1、介绍消息发送一致性是指产生消息的业务动作和消息的发送一致,两者要不同时成功或失败。在确定使用rabbitmq作为消息中心的实现框架后,消息发送的一致性应结合实际的框架实现。r...博文来自:it_lihongmin的博客

  原创声明:本文系作者原创,谢绝个人、媒体、公众号或网站未经授权转载,违者追究其法律责任。大规模业务数据的方案一般都是分库分表,而且一些场景会同时跨多个库发生业务。在分布式事务概述"...博文来自:TY1972的专栏(,微信号:meiliangdeng)

  分布式事务解决方案一之:可靠消息最终一致性博文来自:zhangxiaomin1992的专栏

  分布式事务九_基于可靠消息的最终一致性代码更多干货分布式事务处理一分布式事务二分布式事务处理三分布式事务四_基于可靠消息的最终一致性分布式事务五_基于可靠消息的最终一致性_异常流程分布式事务六_常规M...博文来自:架构师的成长之路的博客

  小插曲本话题已收入视频讲座《SpringCloud分布式事务解决方案》大家不妨围观下。开源项目:CoolMQ,项目支持网站:,最新文章或实现会更新在上面前言...博文

  分布式事务五_基于可靠消息的最终一致性_异常流程更多干货分布式事务处理一分布式事务二分布式事务处理三分布式事务四_基于可靠消息的最终一致性分布式事务五_基于可靠消息的最终一致性_异常流程分布式事务六_...博文来自:架构师的成长之路的博客

  前言如何保证一致性问题异常情况分析总结前言消息发送一致性问题:在分布式部署环境下,通过网络进行通讯,就会有数据传世的不确定性,也就是CAP中的P【会出现分区容错性的问题】。主动方发送消息到消息中间件以...博文来自:码农时代

  在使用rabbitmq中,消息的一致性是非常重要的一个话题。下面我们来研究一下,在数据一致性方面,有哪些需要关注的。[size=large][color=black][b]发送问题:重复消息的问题[/...博文来自:RodJohnson_523391的专栏

  1 课程介绍 2 解决方案的效果演示(结合支付系统线 常用的分布式事务解决方案介绍 4 消息发送一致性(可靠消息的前提保障) 5 消息发送一致性的异常流程处理 6 常规MQ队列消息的处理流程和特点 7 消息重复发送问题及业...

  1、课程介绍 2、解决方案的效果演示(结合支付系统线、常用的分布式事务解决方案介绍 4、消息发送一致性(可靠消息的前提保障) 5、消息发送一致性的异常流程处理 6、常规MQ队列消息的处理流程和特点 7、消息重复发送问题及业务...

  1.场景描述可以设想一个比较常见的分布式事务场景,商品上架操作,该操作涉及到商品模块的Service服务中的上架操作,同时必须要满足在solr中建立商品的索引方便前台搜索以及生成商品的静态化页面,在上...博文来自:zhupengwei

  40最终一致性分布式事务如何保障实际生产中99.99%高可用?上面咱们聊了聊分布式事务解决方案之一(TCC),对于常见的微服务系统,大部分接口调用是同步的,也就是一个服务直接调用另外一个服务的接口。...博文来自:的博客

  其实这篇文章和springCloud无关,但是属于微服务不可避免的一个问题,所以拿在这里说一说。这里只可能讨论理论,因为具体实现是有一定复杂度的,不可能放代码。      分布式事务是面向...博文来自:guduyishuai的博客

  随着分布式服务架构的流行与普及,原来在单体应用中执行的多个逻辑操作,现在被拆分成了多个服务之间的远程调用。虽然服务化为我们的系统带来了水平伸缩的能力,然而随之而来挑战就是分布式事务问题,多个服务之间使...博文来自:CoderZS的博客

  微服务框架SpringCloud介绍Part1:使用事件和消息队列实现分布式事务本文转自:不同于单一架构应用(...博文来自:海子@幸福人

  前言目前的应用系统,不管是企业级应用还是互联网应用,最终数据的一致性是每个应用系统都要面临的问题,随着分布式的逐渐普及,数据一致性更加艰难,但是也很难有银弹的解决方案,也并不是引入特定的中间件或者特定...博文来自:iamzhongyong的专栏

  步骤:step1:  实线向MQ发送消息,此时消息对consumer不可见,即不可被消费;虚线执行本地事务并提交事务。step2:  执行本地事务的回调函数executeLocalTransact...博文来自:cheegoday的专栏

  在大规模、高并发服务化系统中,一个功能被拆分成多个具有单一功能的子功能,一个流程会有多个系统的多个单一功能的服务组合实现,如果使用两阶段提交协议和三阶段提交协议,则确实能解决系统间的一致性问题。除了这...博文来自:孤芳不自赏

  1.概述我们知道在使用RabbitMQ时,生产者将消息发布出去之后,消息是否顺利到达broker代理服务器呢?默认情况下发布操作没有任何信息返回给生产者,也就是生产者是不知道消息有没有顺利到达brok...博文来自:wxyh的博客

  最终一致性最终一致性指的是两个系统的状态保持一致,要么都成功,要么都失败。当然有个时间限制,理论上越快越好,但实际上在各种异常的情况下,可能会有一定延迟达到最终一致状态,但最后两个系统的状态是一样的。...博文来自:飞天的猪猪

  一、实现方案图解第一步将要发送的信息进行对应数据库的录入,并且将发送信息的操作作为一条操作日志录入数据库中设置状态字段status为0(发送中)。第二步生产端将消息发送到RabbitMQ服务上。第三步...博文来自:啤酒黑咖啡的前后端学习之路

  TCC是最终一致性的一个常见方案,也是最简单的一个.其他的方案如本地事件表,本质上都是TCC的变种,只是把confirm和cancel的时间往后移了而已. 事件表是更优雅的方案,如果用消息队列来实现,...博文来自:tiancen2001的专栏

  什么是事务事务是由一组操作构成可靠的独立的单元。有ACID原则:Atomicity(原子性)-amp;gt;整个事务视为一个单元,要么一起完成,要不一起失败Consistency(一致性)-...博文来自:的博客

  背景:1.支付成功通知订单完成2.订单完成,通知会计记账上游订单服务,必须开放可查询订单状态接口,判断消息是否可以发送下游会计消费成功后,必须回调消息服务,ACK操作(约束:幂等性。例如:消息id等)...博文来自:vincent

  分布式事务八_可靠消息最终一致性方案更多干货分布式事务处理一分布式事务二分布式事务处理三分布式事务四_基于可靠消息的最终一致性分布式事务五_基于可靠消息的最终一致性_异常流程分布式事务六_常规MQ队列...博文来自:架构师的成长之路的博客

  定义:产生消息的业务动作和消息发送的一致。如果业务动作执行成功了,那么这个动作产生的消息一定要发送出去。另一方面,如果这个业务没有发生或者失败,就不应该把消息发送出去。执行具体流程业务处理应用先把消息...博文来自:Hyperin

  分布式事务10_最大努力通知形势更多干货分布式事务处理一分布式事务二分布式事务处理三分布式事务四_基于可靠消息的最终一致性分布式事务五_基于可靠消息的最终一致性_异常流程分布式事务六_常规MQ队列分布...博文来自:架构师的成长之路的博客

  我们结合实际的业务场景使用SpringCloudStream验证了微服务的最终一致性 具体的业务场景是仓储业务的出库操作,流程图如下: 为了简化业务处理,这里只针对第6,第7 和第8步做最终一致性的事...博文来自:ccc7574的博客

  在分布式时代,分库分表是很常见的,微服务系统中,各个系统通常使用独立的数据库,所以,事务很难靠数据库本身保证,只能靠业务系统来解决。例如支付宝中的余额宝、花呗,具体不清楚,但猜测应该就是2个服务,不是...博文来自:路人甲Java

  1、消息中间件的应用场景(1)异步通讯(2)解耦(3)并发缓冲2、消息发送和投递的不可靠性(1)分布式网络进行就引入了数据传输的不确定性(2)也就是CAP理论中的P(分区容错性)(3)跨网络通信产生了...博文来自:anguser

  实现业务活动的主动方,在完成业务处理之后向业务活动方发送消息,允许消息丢失业务活动的被动方根据定时策略,向业务活动方查询结果,恢复丢失的业务约束被动方的处理结果不影响主动方的处理结果成本:业务查询与校...博文来自:青鸟飞鱼

本文链接:http://ravynhart.com/qiangyizhixing/423.html