当前位置: 首页 > 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.dtcms.com/a/265993.html

相关文章:

  • 贪心专题练习
  • 伞兵 钓鱼的肝
  • 【系统如何知道每个软件该去哪个源下载】
  • spring6合集——spring概述以及OCP、DIP、IOC原则
  • 大模型解码策略(Top-k Top-p Temperature)
  • 【前端开发】Uniapp分页器:新增输入框跳转功能
  • uniapp加上全局水印
  • 【如何判断Linux系统是Ubuntu还是CentOS】
  • 【Laravel】 Laravel 智能验证规则生成器
  • Java操作word实战
  • LiteHub中间件之跨域访问CORS
  • P2392 kkksc03考前临时抱佛脚(动态规划)
  • 纯前端批量下载
  • Python 爬虫实战 | 国家医保
  • MySQL 8.0 OCP 1Z0-908 题目解析(16)
  • Part 0:射影几何,变换与估计-第三章:3D射影几何与变换
  • 爬虫经验分享:淘宝整店商品爬取全过程|API接口实战
  • 【数据结构】 map 和 set
  • stm32第十三天串口发送数据
  • 从0到1实战!用Docker部署Qwerty Learner输入法的完整实践过程
  • Dijkstra 算法#图论
  • MySQL JSON数据类型完全指南:从版本演进到企业实践的深度对话
  • Windows 上使用 vscode + mingw 调试 python 程序
  • 国内MCP服务平台推荐!aibase.cn上线MCP服务器集合平台
  • 二叉树的右视图C++
  • MySQL的窗口函数介绍
  • 每日算法刷题Day41 6.28:leetcode前缀和2道题,用时1h20min(要加快)
  • golang json omitempty 标签研究
  • 图论基础算法入门笔记
  • OOM电商系统订单缓存泄漏,这是泄漏还是溢出