当前位置: 首页 > news >正文

【进阶篇-消息队列】——Kafka如何实现事务的

目录

    • 一、Kafka 的事务和 Exactly Once 可以解决什么问题
      • 1.1、Kafka 的事务
      • 1.2、Kafka 中的 Exactly Once 又是解决的什么问题
    • 二、Kafka 的事务是如何实现的
      • 2.1、Kafka 事务的实现原理
      • 2.2、Kafka 事务的实现流程
    • 三、小结
      • 3.1、Kafka 和 RocketMQ 它们在实现事务共同点
      • 3.2、Kafka 和 RocketMQ 它们在实现事务不同点

一、Kafka 的事务和 Exactly Once 可以解决什么问题

1.1、Kafka 的事务

  • Kafka 的事务解决的问题和 RocketMQ 是不太一样的。RocketMQ 中的事务,它解决的问题是,确保执行本地事务和发消息这两个操作,要么都成功,要么都失败。并且,RocketMQ 增加了一个事务反查的机制,来尽量提高事务执行的成功率和数据一致性。
  • 而 Kafka 中的事务,它解决的问题是,确保在一个事务中发送的多条消息,要么都成功,要么都失败。注意:这里面的多条消息不一定要在同一个主题和分区中,可以是发往多个主题和分区的消息。当然,你可以在 Kafka 的事务执行过程中,加入本地事务,来实现和 RocketMQ 中事务类似的效果,但是 Kafka 是没有事务反查机制的。
  • Kafka 的这种事务机制,单独来使用的场景不多。更多的情况下被用来配合 Kafka 的幂等机制来实现 Kafka 的 Exactly Once 语义。我在之前的章节中也强调过,这里面的 Exactly Once,和我们通常理解的消息队列的服务水平中的 Exactly Once 是不一样的。
  • 我们通常理解消息队列的服务水平中的 Exactly Once,它指的是,消息从生产者发送到 Broker,然后消费者再从 Broker 拉取消息,然后进行消费。这个过程中,确保每一条消息恰好传输一次,不重不丢。我们之前说过,包括 Kafka 在内的几个常见的开源消息队列,都只能做到 At Least Once,也就
http://www.lryc.cn/news/579679.html

相关文章:

  • Element 的 Message 多个显示时,只显示一个的封装办法
  • LeetCode 317 最短距离选址问题详解(Swift 实现 + BFS 多源遍历)
  • 从 TCP/IP 协议栈角度深入分析网络文件系统 (NFS)
  • MySQL的窗口函数介绍
  • 基于SpringBoot+Vue的酒类仓储管理系统
  • 【网络协议】WebSocket简介
  • 【tensorflow2.6.0 一系列相关报错记录】
  • 关于微前端框架micro,子应用设置--el-primary-color失效的问题
  • Linux性能分析工具
  • Oracle:报错jdbc:oracle:thin:@IP地址:端口:实例名, errorCode 28001, state 99999
  • Spark 4.0的VariantType 类型以及内部存储
  • 打造一个可维护、可复用的前端权限控制方案(含完整Demo)
  • 2025年4月SCI-吕佩尔狐优化算法Rüppell’s fox optimizer-附Matlab免费代码
  • 苹果手机扫描PDF:整理课堂笔记、保存重要文件
  • Intellij IDEA中Maven的使用
  • H3C-备件流程
  • EXCEL 基础函数
  • 论文阅读笔记——Autoregressive Image Generation without Vector Quantization
  • 构建引擎: 打造小程序编译器
  • 工业路由器赋能智慧电力储能柜实时通讯,构建电力智能化新生态
  • x搜索新增了x-client-transaction-id的验证
  • 网络工具如何帮助消除网络安全风险
  • 通达信 主力资金与成交量分析系统 幅图
  • 机器学习-03(机器学习任务攻略)
  • 边缘计算解决方案:数据中心机房IT设备数据采集与调优
  • STM32-PWM驱动无源蜂鸣器
  • 使用numpy的快速傅里叶变换的一些问题
  • AI+软件测试——03软件的缺陷及管理
  • 一、Docker:一场颠覆应用部署与运维的容器革命
  • 数学建模_时间序列