纠纷奇闻社交美文家庭
投稿投诉
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

SpringCloud(十二)消息中心篇RocketMq与K

9月25日 不星湖投稿
  大家好,我是杰哥
  前三篇RocketMq与Kafka选型(一)、RocketMq与Kafka选型(二)以及RocketMq与Kafka选型(三)中,主要对两者的前几个方面分别进行了分析对比。今天,我们再接着看看消息中心的其余方面的不同点(毕竟,也该是终结这一part的时候啦)
  01。两者的相同点
  02。部署架构不同
  03。工作流程不同
  04。日志存储方式不同
  05。保证消息顺序消息的方法是否相同
  06。消息重复机制不同
  07。是否支持延时消息
  08。消息过滤方式不同
  09。消息失败支持重试吗?
  10。事务不同
  11。是否支持回溯消费?
  12。高可用机制不同
  一比较
  六个方面
  01。是否支持延时消息
  1RocketMQ支持固定延时等级的延时消息,等级可配置
  2kfaka不支持延时消息
  02。消息过滤方式不同
  1RocketMQ执行过滤是在Broker端,支持tag过滤及自定义过滤逻辑
  2Kafka不支持Broker端的消息过滤,需要在消费端自定义实现
  03。消息失败是否支持重试
  1Kafka不支持重试
  2RocketMQ支持定时重试,每次重试间隔逐渐增加
  04。事务机制不同
  两个消息中心的事务机制也有所不同。RocketMq通过二阶段提交和回查机制能够实现分布式场景下的事务:两个系统进行处理同一业务流程交易时,保证生产方处理和发送消息阶段两个动作要么同时成功,要么同时失败。而Kafka则是保证生产者发送多条消息可以封装在一个事务中,形成一个原子操作
  1RocketMq的事务机制
  看这样一个例子:
  当用户下了订单,并成功付款100元之后,A系统则会扣掉用户账户的100元,并通过B系统为其账户增加100个积分。而执行步骤是
  1)A系统扣减100元
  2)将结果通过消息中心发送给包含B服务在内的其他服务
  3)B服务执行增加100个积分
  此时,若第一步和第二步不是同时执行,即
  1)先执行了扣减动作,但还没来得及发送消息。则最终的结果是用户的钱被扣掉了,但是B系统未收到任何增加积分的通知,因此导致用户并没有添加到积分
  2)若先发送了消息,还未来得及执行扣减动作。那么最终将会少收用户100元钱
  那么,为了尽可能地保证这一业务流程的执行逻辑,则需要保证A系统的扣减100元的操作和发送消息的操作要么同时成功,要么同时失败。否则其中任何一个操作成功了而另一个操作失败了,都会出现上述逻辑错乱的情况
  而RocketMq的事务就是来保证这种场景下的逻辑的,我们来看看RocketMq的事务执行流程
  RocketMq的事务机制如图所示:
  1)生产者向broker端发送半事务消息
  2)Broker将消息持久化成功之后,向生产者回复ACK,确认半消息已经发送成功
  3)接收到响应,生产者便开始执行本地事务逻辑
  4)执行结束之后,生产者根据本地事务执行结果,向Broker提交二次确认结果(Commit或Rollback)
  此外,若因网络抖动等原因,导致Broker未收到步骤4的二次确认结果时,则需要进行消息回查,进入第5步:
  5)经过固定时间后,Broker向生产者将对该消息发起消息回查
  6)生产者检查该条消息的本地事务结果
  7)发送方根据检查得到的本地事务的最终状态再次提交二次确认(Commit或Rollback)
  8)此时,Broker将有可能收到两种状态
  a若Broker收到Commit状态则将半消息标记为可投递,订阅方最终将收到该消息
  b若Broker收到Rollback状态则删除半消息,订阅方将不会接受该消息
  2、Kafka的事务机制
  Kafka处理的事务场景则是:确保跨分区的多个写操作的原子性。它的事务特性本质上代表了三个功能:原子写操作,避免重复消息(Zombiefencing)和读事务消息
  1)原子写操作
  在同一个事务中的消息,要么同时发生成功,要么统一发送失败
  2)避免重复消息
  在发送事务消息过程中,若生产者集群中某个实例在发送过程中突然宕机,则会由另一个实例进行来替代它的工作,此时若原实例恢复了,继续进行之前的发送工作,便会出现消息重复的情况
  而为了解决这种情况,类似于zookeeper解决脑裂问题的一个思想,就是引入epoch。Kafka会在每次进行事务初始化时赋一个递增的epoch值给producer
  当宕机的实例恢复之后,继续发送消息到broker。而broker只会接收具有最新epoch的生产者的请求,并拒绝掉其他请求,这样便会避免了重复消息(需要注意的是,此处的消息重复场景与上篇文章提到的重复还有一点区别。只是这种因为生产者宕机导致消息重复发送的情况,kafka本身已经通过判断epoch值来直接给避免掉了)
  3)读事务消息
  为了保证事务特性,Consumer如果设置了isolation。levelreadcommitted,那么它只会读取已经提交了的消息。在Producer成功提交事务后,Kafka会将所有该事务中的消息的TransactionMarker从uncommitted标记为committed状态,从而所有的Consumer都能够消费
  总结
  RocketMq的事务机制是:两个系统进行处理同一业务流程交易时,保证生产方处理和发送消息阶段两个动作要么同时成功,要么同时失败
  而Kafka则是保证生产者发送多条消息可以封装在一个事务中,形成一个原子操作
  05。是否支持回溯消费
  两者均支持消息的回溯消费
  均需要先根据时间戳找到offset,然后从offset开始消费
  06。高可用机制不同
  两者的高可用机制不同,具体来说是控制的粒度不一样
  RocketMQ在高可用设计上粒度只控制在Broker。其保证高可用是通过物理的masterslave主从复制集群部署来实现(具体的部署方式有四种,可以参考RocketMq与Kafka选型(一)中部署架构比较的部分)
  Kafka控制高可用的粒度是放在分区上。即每个topic的leader分区和replica分区都可以在所有broker上负载均衡的存储,分区之间存在主从关系。当分区所在的broker挂了之后,会重新进行选举过程,选出一个新的leader分区
  二总结
  总而言之
  RocketMq和Kafka的对比总结篇共4篇文章,分别通过十几个方面,对RocketMq和Kafka进行了全方位的比较。本篇主要对两者的以下几点进行了分析比较
  07。是否支持延时消息
  08。消息过滤方式不同
  09。消息失败支持重试吗?
  10。事务不同
  11。是否支持回溯消费?
  12。高可用机制不同
  相信看到这里,通过两个消息中心各个方面特点的分析比较的形式,你已经比较深入地了解到了这两个消息中心了。
  总得来说,两者的设计思路还是有很多相同点的,比如两者的topic均可分为多个分区,写消息均是采用顺序写,发送消息采用零拷贝的方式;其不同点主要体现在两者的部署架构不同,日志存储方式不同,事务机制不同以及高可用机制不太相同等几点
  如果大家有什么疑问,可以翻翻前面几篇文章,如果翻了之后还有疑问,那就欢迎向我留言,探讨一番哦
  嗯,就这样。每天学习一点,时间会见证你的强大
  下期预告:
投诉 评论

刘敏涛又闹情绪,枉费韩东君杨幂一番好心,观众的评论出奇一致《花儿与少年》第四季开播到现在已经3期了,我发现一个很好笑的弹幕评论:相比较第一季来说,这一季的成员之间还挺太和谐,氛围好轻松啊。确实,第一季中姐姐们各种名场面不再赘述,……男人喜欢女人身体部位排名男人为什么喜欢女人这些部位男人最喜欢女生的身体部位!胸部竟然不是第一!如果问你最喜欢女生什么部位!你心中的答案是什么呢?日本网站统计出的男生的恋物情节排行榜。基本上里面内容完全就……影视剧中的五对荧幕CP,你磕过几对?据说,恋爱还得看别人谈的来劲。自己有没有恋爱无所谓,但磕的CP要是成真了,甚至会比什么事都高兴。一直以来,好剧不断更新,经典永远成为经典,以下荧幕CP不知道你们曾经有没有……女子按摩过程中惨叫一女子按摩过程中突然惨叫(图)女子按摩过程中惨叫:一女子按摩过程中突然惨叫(图)火车站都有的这种椅子出事了!一女子按摩过程中突然惨叫。近日,杭州姜先生爆料:火车东站地下一层,有一排按摩椅,就是扫微信付……SpringCloud(十二)消息中心篇RocketMq与K大家好,我是杰哥前三篇RocketMq与Kafka选型(一)、RocketMq与Kafka选型(二)以及RocketMq与Kafka选型(三)中,主要对两者的前几个方面分……华航机长开飞机睡着副机长拍照爆料结果也被处罚活久见!华航机长开飞机睡着了竟然开飞机开到睡着?听起来真是吓人!不过,一旁拍视频曝光的副机长也被处罚了,来看看!华航机长开飞机睡着一架中国台湾华航747客机……空姐驾驶舱拍照结果空姐和机长被停飞空姐驾驶舱拍照上了热搜,引大家关注。据悉,一名机长在国际航班上因允许空姐坐在驾驶舱副驾的座位及帮她拍照,而被暂停驾驶飞机。空姐驾驶舱拍照这起事件发生于2019年1月……深度上手vivoX80Pro影像旗舰世界里只有实力一说2022年,市面上拍照手机多吗?其实到这个时间点,相信很多人应该有所了解,随着手机摄像头像素、多摄组合、传感器尺寸不断增大等因素,如今手机拍摄能力已经在往上走,也进一步满……DG被要求退预存金DG恶劣行为不敢穿DG时装上街顾客要求DG专柜退回预存金,直言没法再穿着上街了。DG辱华的事情已经沸沸扬扬的被议论了有几天的时间,那么在这过去的几天中我们看到,几乎所有人全都在统一战线,大家都强烈的谴责DG……为什么在死人屋里不能照镜子民间晚上十大禁忌盘点为什么在死人屋里不能照镜子:民间晚上十大禁忌盘点晚上11点到凌晨1点是一天中阴气最重的时刻,在古人的神鬼传说中是鬼魂出没的时间。相信不少人都被长辈提醒这半夜10件不要做的……打开社交新世界!顺义骑行路线推荐立秋后的周末或傍晚,身穿骑行服或运动装,骑一辆单车,驶入山湖林海、乘风追日落。。。近年来,骑行成为热词之一,各大社交平台上,不少市民纷纷晒出自己的骑行装备、骑行路线。今天,顺义……iPhone14系列销售有多火?西湖边这家专卖店前排起长队钱江晚报小时新闻记者杨一凡新款机型上市总是引人注目,iPhone14正式上线销售以,无论是预订还是现货发售,都呈现出火爆场面。今天(9月17日)中午,小时新闻记者在……
悬疑惊悚电影老去,一天过完一个人的一生恭喜勇士!练级成功!怀斯曼再进化!穆迪拿下得分王世界杯神预测阿根廷小胜墨西哥指尖领主平民玩家攻略之资源篇第一节图iphone8支持wifi充电科技进步也是脑洞大开图游览黄金海岸风景区尽情享受阳光和沙滩图乐视惊魂脱险孙正义的两百亿是否真的起了作用图西岭雪山夏天给你躲进冰箱一样的凉爽图中端机的实用之选感受乐视2的与众不同春季儿童调养脾胃营养早餐小米糊一周不重样图路由器和交换机的区别是什么大部分人都不知道的IT小知识被飞利浦A8606真无线骨传导耳机种草了解放双耳值得拥有银杏之乡是哪个地方银杏之乡指哪里临江仙登凌歊台感怀唐朝四大女诗人介绍才华不输男性感情经历却很坎坷2018短发流行趋势图片每一款短发都相当时髦一汽与上汽,级别一样吗?泰定帝也孙铁木儿的简介泰定帝有哪些举措?物理教师述职报告借鉴例文集结号是什么意思(集结号百度百科)沧海横流,方显英雄本色现代汽车遭到警告:不裁员40劳资双方将共同灭亡站成一棵树读书笔记三篇笑容滋润了我的心田

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形