范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

SpringCloud(十二)消息中心篇RocketMq与Kafka选型(四)

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

Apple的iTunesPass可能会在iOS15。5中更名为AppleAccountCard根据最新测试版中发现的新图像,苹果显然正在努力将其iTunesPass卡更名为钱包应用程序中的Apple帐户卡。iTunesPass是一种储存可用金额的方式,可以在Apple钱包存诺基亚将推出新款N73,还可能会搭载三星的200MP镜头十多年前,诺基亚这个名字家喻户晓,旗下的手机产品霸占全球,其中有许多老用户都会想到诺基亚N73这款手机,它搭载诺基亚的塞班系统,是曾经风靡全球的王者机型。但后因诺基亚孤傲自家的塞班AMD锐龙7000系列CPU曝光Arm2021年实现27亿美元营收芯闻速递两分钟了解芯片大事AMD锐龙7000拉斐尔系列CPU曝光外媒在Openbenchmarking数据库中发现了AMD锐龙7000系列桌面处理器的身影。这些CPU具有8个Zen4内核,你准备好迎接科幻般的6G时代了吗据西班牙国家报网站5月10日报道,科幻小说描绘的生活开始成为现实。每个家庭都有几十台同时连接网络的设备。云上沟通先进的机器人即时的交通物流或工业调度远程医疗新的教育方式数字孪生感官性能全面升级,vivoS12系列带来更好体验,颜值出众手感好不少用户想要拥有一部性能强,手感好的手机,而目前市面上许多手机过于厚重,很多机型重量超过200g。因此vivoS系列的轻薄设计得到许多用户喜爱。vivo推出的vivoS12系列,这中央纪委国家监委网站评知网被立案调查头部平台更当知法守法近日,市场监管总局根据前期核查,依法对知网涉嫌实施垄断行为立案调查。5月13日16时许,国家市场监管总局网站公布的这则短讯引发广泛关注。随后,知网方面回应称,将以此次调查为契机,深P2P网贷风险专项整治工作开展,负债人该何去何从P2P网贷风险持续出清!自去年11月中旬全国实际运营的P2P网贷机构完全归零,到去年末P2P存量业务尚未清零的停业网贷机构数量由1466家压降至1169家,未兑付余额由8207亿元高速自动辅助驾驶2升级到3汽车,期待法规早日放开我是扬州上海每周来回的上班族,5年前我就买了新能源车,单趟260公里,一年油钱节省50260241万元,上下班就不算了。加速快(基本秒3050万的abb)令我最惊喜的功能是自动辅助移动内容孤岛生态下,搜索引擎如何吸引年轻人?记者崔鹏编辑一周前的5月12日,在旧金山海岸线圆形剧场,谷歌CEO桑达尔皮查伊(SundarPichai)表达了谷歌的两个使命深化对信息的理解,让人们无论在哪都能获得知识。在这场G笔记本电脑一直插着电源充电好,还是尽量用没电了再充电好?笔记本电脑一直插着电源充电好,还是尽量用没电了再充电好?笔记本电脑一般不用时,最好在关闭电脑时,将它的电源适配器插头拔掉,这也是为了安全起见。在使用电脑时再次开机和插入电源适配器使手机数据网速很慢的时候,开一下飞行模式再关闭,上网速度会比之前快很多,这是为什么?本人专注通信相关问题,解答通信疑惑,关注了解更多内容!!!手机数据网速很慢的时候,开一下飞行模式再关闭,上网速度会比之前快很多,这是因为手机可能占用了其它网速快的基站。手机网速慢主
发烧的iphone近几年来,苹果的芯片技术已经远远领先同代安卓好几年,这个辉煌的背后,是以大家在使用iPhone时带来的发烧发热为代价带来的。但是,从目前来看,苹果并没有收手的意识,随m1芯片的诞生Realme爆款登场,真我GT大师首战一秒破亿!网友真香7月发布的新机并不多,只有Realme真我GT大师探索版中兴AXON30屏下版和华为P50系列等几款。中兴AXON30屏下版采用维信诺屏幕,搭载骁龙870,8128GB版本的价格为红魔碰瓷Redmi后,新机信息被扒出,网友自取其辱昨天RedmiK40游戏版发布会上,在讲到厚度只有8。3mm,可能是今年最薄的游戏手机时,红魔高管倪飞直接表示8。3mm厚不可能是2021年最薄的游戏手机。难道说红魔也要走大众化外来来回回屏实力,还是Note20Ultra怎么样买一款很贵的手机,又不用担心给老婆责备?可能先给老婆买一台,她就没什么意见了。自2018年我从note5换了国产品牌一加5,然后因觉得屏幕问题换回S10PLUS,再到S20F丢失的酒文化如果不是中国人就很难理解中国的酒文化,喝酒并不是一个简单的强者游戏,酒桌上说了算的,并非是酒量最大的,而多半是位高权重的。本来一桌酒席,就是一个各司其职的游戏,年轻者倒酒,主人陪酒杯面加手柄,还要什么女朋友最近断断续续的通关了战神2,还是很苦逼的,因为用手机的ps2模拟器。奉劝大家,手机玩这些动作游戏务必要帧率优先,画面精度和分辨率什么的就别过多追求了,能保持或者接近60帧比什么都重由电视剧小舍得联想到的女权问题小舍得里,田雨岚一角让我差生了很多的想法,这是一个在一个缺少父爱的家庭里长大的女人,这种经历促成了她不健全的人格。结婚生子后,出于母性的爱,她将自己的感情上的缺失所带来的压力,加倍小伙放开我,网游我要开20个寻找真知派技术技能超级玩家不知道有没有爱玩网游需要多开的小伙伴,客户端开多了会出现蓝屏的情况。造成蓝屏的原因有软件(系统),也有硬件上的。个人经验来看,这是由于CPU不给力负载过高国行PS5上架华为商城,这或许是为MateView显示器预热明天(5月15日)国行PS5将在各大电商平台正式发售,而在今天,华为商城突然宣布,也将上架国行PS5,价格与发布价相同,3899元。从商城页面看,华为商城上架的只有光驱版的PS5,速看荣耀Play5,这款2099起的华为Nova8SE会变香吗?被大家调侃为新安卓机皇的荣耀Play5发布了,由于距离上一次荣耀发布会已经过去4个月的时间,虽然这次是一款千元机,但关注度还是很高的,那么下面就来快速的看看这款机型。荣耀Play5iPhone13系列差异对比,Pro版大翻身,性价比最高iPhone13与iPhone12相比iPhone12主要升级点有处理器,相机,屏幕,电池,内存。处理器,CPU部分A15比A14单核性能提升8,多核性能提升12,GPU(4核)性