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

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均可分为多个分区,写消息均是采用 顺序写 ,发送消息采用 零拷贝 的方式;其 不同点 主要体现在两者的 部署架构不同 , 日志存储方式不同 , 事务机制不同 以及 高可用机制不太相同 等几点
  如果大家有什么疑问,可以翻翻前面几篇文章,如果翻了之后还有疑问,那就欢迎向我留言,探讨一番哦~
  嗯,就这样。每天学习一点,时间会见证你的强大~
  下期预告:

荣耀新旗舰平板曝光,会是有超频的天玑9000处理器荣耀新旗舰平板五月份发布,这个产品会搭载联发科的迅鲲处理器,当然这个处理器应该就是联发科天玑9000处理器的超频版。去年荣耀已经使用过这个处理器了,今年看起来依然还是要使用这个处理小米MIX4不尽如人意,曝小米MIX5今年无了换更厉害的旗舰登场昨天雷军搞了一场小米有史以来米粉最喜爱的手机投票,结果小米6毫无悬念的以极大的优势获得了第一。但正如小智所说,对于这个结果我并不意外,但本以为小米6不会赢得那么轻松,因为有另一款机科技向善造福人类科技伦理是开展科技活动需要遵循的价值理念和行为规范,是促进科技事业健康发展的重要保障。近日,中办国办印发关于加强科技伦理治理的意见,对加强科技伦理治理作出系统部署,是我国首个国家层小米杂货铺又出潮流周边新品了,戴上它后气质马上提升一个档次前言今年的34月份小米一直在发布新品,可以说这段时间发布的新品一直没有断过,可能是为了迎接即将到来的米粉节吧,这不刚刚发布的这款米家太阳镜Pilota属于潮流周边产品,看了一下这款加拿大将建造首家全规模商用电动汽车制造厂中新社多伦多4月4日电加拿大联邦政府及安大略省政府4月4日宣布注资逾5亿加元,推动通用汽车公司建立加拿大首家全规模制造商用电动汽车的生产厂。加拿大通用汽车公司已启动一项斥资逾20亿一款适用于全国80地区的除湿机你信吗?米家智能除湿器初测说到除湿,相信全国各地,居住在不同地域的小伙伴的感受都不一样,例如江浙沪地区,福建广州四川等地区,每年梅雨潮湿的天数基本上都会超过4个月甚至更长。同样是潮湿,除了南方其实北方城市也天文学家发现超高速电子雨的来源地球的外部辐射带称为范艾伦辐射带,充满了高能电子,主要是来自太阳的带电粒子被地球的磁场所捕获,它就像地球的防护罩般,为我们遮挡宇宙射线,避免受到辐射伤害。在某些条件下,辐射带内会产RedmiK60全新消息曝光,红米K40跌至大米价,买早的肠子悔青在天玑81009000芯片2K高亮度直显最高120W有线充电的加持下,RedmiK50系列虽然价格较上一代有所上涨,但依然在市场上取得了不错的成绩。但今天,Redmi品牌总经理卢伟科学家警告地球可能发生颠覆性转变!大气氧含量或重回24亿年前地球诞生在40多亿年前,那时候的地球和现在的地球差异非常大,其中一个就是宇宙空间的环境差别比较大。因为当时太阳系也才诞生没多久,所以在太阳系内很混乱,大量小行星随处飘荡,很多小行星苹果再次砍单,iPhoneSE削减订单苹果上月推出iPhoneSE3,原本预期将承担推动老用户换新,以及吸引安卓用户跳槽的重任,实际表现却差强人意。市场不断下调新机出货量预期,最新一份预测报告显示大幅砍单23,苹果出品必须推荐给基友的Curl工具使用指南curl是一个命令行工具,用于发送客户端请求。发送客户端请求大家常用的可能是类似postman等工具,但是为什么要使用curl呢?curl等最大优势在于随时随手可以发送,非常方便。
戴助听器会遮蔽耳鸣吗?你好!耳鸣是没办法完全消除的,戴助听器只是会缓解耳鸣的感受,选择带有耳鸣掩蔽功能的助听器,原理就是,长时间听到外界的声音刺激。而忽略了自己的耳鸣声。每天可以进行半个小时的耳鸣治疗。戴助听器会对原本的听力有影响吗?一般情况下戴助听器不会对原有听力产生影响,但如果是自身的身体疾病原因引起的听力下降是没有办法的。但是如果佩戴不适合患耳听力补偿的助听器有可能会产生影响。绝大多数人经过科学验配正确使千元机和旗舰机区别在哪?买旗舰就是交智商税吗?内行人说出实情一两千的中低端手机和五六千的旗舰机,大家会这么选呢?那些不爱折腾,想要一部手机用五六年的,都会偏向选择旗舰机,而选择千元机的消费者普遍爱尝鲜,每年都有换机计划。那么,究竟选择哪种更刚刚宣布退市7日,企鹅电竞发布退市公告,宣布2022年6月7日23时59分,正式停止运营,届时用户将无法登录企鹅电竞相关产品。企鹅电竞公告截图。公告显示,由于业务发展策略的变更,企鹅电竞相关产联想小新Pro162022将发全系120Hz高刷屏配HDMI2。0联想小新Pro系列新品已经预热多时,其中首款亮相的应该是小新Pro162022款,根据联想小新官方微博发布的消息,这款产品将会是一款大屏高能轻薄本,硬件方面同时推出Intel和AMNFT元宇宙数字藏品的造富神话NFT是什么?NFT全称为NonFungibleToken,指非同质化代币,是用于表示数字资产(包括jpg和视频剪辑形式)的唯一加密货币令牌。NFT是区块链的一个条目,而区块链是类曝小米12UltraMIXFold2同时亮相本月发布一早最新消息称,小米12Ultra和MIXfold2代折叠屏手机将在同一场发布会中发布,目前发布会定在本月底,这也是小米首次在同一场发布会中发布两款机皇。目前小米12Ultra已经乔布斯看了都要气炸了iPhone15渲染图被曝光近日,有外媒曝光了一组iPhone15的渲染图,通过该组渲染图不难发现,这款iPhone15的名字都被改成了ApplePhone15,总感觉有些山寨的味道,而当我看到ApplePh嘲笑小米雷军衣品的人这几天,小米创始人雷军发布公司在京高管合影图祝贺公司成立12周年。总有一些人,看到照片之后,又吐槽雷军的穿衣风格。上面西装下面牛仔裤。钢铁直男。连高管都一样。一点也不时尚。小米在京直降7。19万!标准续航版ModelY上市7月8日,标准续航版的ModelY在国内市场上市,这一车型的到来成功让ModelY的售价跌破30万元,官方指导价27。6万元,比在售的全驱长续航版车型低7。19万元,也仅比Mode马来西亚变脸,华为5G成弃子,痛失170亿大单全球通讯技术已经在4G阶段停留太久,当前将4G转换到5G已成为全球科技领域中的重要任务。此前西方的发达国家一直是科技领域的领导者,直到国内5G网络的全面发展,我国才初次实现核心技术