rabbitmq分布式事务
Rabbitmq解决分布式事务的原理:可靠消息最终一致性方案
需要保证以下三要素
1、确认生成者一定要将消息可靠投递到MQ【采用MQ的异步confirm消息确认机制】
public interface ConfirmListener {
/**
** handleAck RabbitMQ消息接收成功的方法,成功后业务可以做的事情
** 发送端投递消息前,需要把消息先存起来,比如用KV存储,接收到ack后删除
**/
void handleAck(long deliveryTag, boolean multiple)
throws IOException;
//handleNack RabbitMQ消息接收失败的通知方法,用户可以在这里重新投递消息
void handleNack(long deliveryTag, boolean multiple)
throws IOException;
}
2、MQ消费者能将消息正确消费,采用手动ACK模式【保证消息的幂等性】
3、生产者和消费者事务回滚问题
一、方案
3.1 整体设计思路
3.2 步骤1 - 可靠的消息生产记录消息发送
3.3 步骤2 - 可靠消息生产(修改消息发送状态)
3.4 步骤3 - 可靠消息处理(正常处理)
3.5 步骤4 - 可靠消息处理(消息重发)
rabbitmq分布式事务的更多相关文章
- RabbitMQ解决分布式事务
案例:经典案例,以目前流行点外卖的案例,用户下单后,调用订单服务,让后订单服务调用派单系统通知送外卖人员送单,这时候订单系统与派单系统采用MQ异步通讯. RabbitMQ解决分布式事务原理: 采用最终 ...
- 使用RabbitMQ实现分布式事务
RabbitMQ解决分布式事务思路: 案例: 经典案例,以目前流行点外卖的案例,用户下单后,调用订单服务,让后订单服务调用派单系统通知送外卖人员送单,这时候订单系统与派单系统采用MQ异步通讯. Rab ...
- .NET Core 事件总线,分布式事务解决方案:CAP
背景 相信前面几篇关于微服务的文章也介绍了那么多了,在构建微服务的过程中确实需要这么一个东西,即便不是在构建微服务,那么在构建分布式应用的过程中也会遇到分布式事务的问题,那么 CAP 就是在这样的背景 ...
- 分布式事务,EventBus 解决方案:CAP【中文文档】
前言 很多同学想对CAP的机制以及用法等想有一个详细的了解,所以花了将近两周时间写了这份中文的CAP文档,对 CAP 还不知道的同学可以先看一下这篇文章. 本文档为 CAP 文献(Wiki),本文献同 ...
- springcloud分布式事务终极探讨
2018阿里云全部产品优惠券(好东东,强烈推荐)领取地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userC ...
- 终于有人把“TCC分布式事务”实现原理讲明白了!
之前网上看到很多写分布式事务的文章,不过大多都是将分布式事务各种技术方案简单介绍一下.很多朋友看了还是不知道分布式事务到底怎么回事,在项目里到底如何使用. 所以这篇文章,就用大白话+手工绘图,并结合一 ...
- rabbit_mq实现分布式事务
gitlab下载地址: 一.rabbitmq实现原理 一般在自己内部系统中建议采用lcn刚性事务来处理,面对调用第三方接口,或者夸平台语言是采用消息中间来实现补偿型事务.注意在进行补偿时需要注意重复调 ...
- .NET Core 事件总线,分布式事务解决方案:CAP 基于Kafka
背景 相信前面几篇关于微服务的文章也介绍了那么多了,在构建微服务的过程中确实需要这么一个东西,即便不是在构建微服务,那么在构建分布式应用的过程中也会遇到分布式事务的问题,那么 CAP 就是在这样的背景 ...
- 使用kafka消息队列解决分布式事务(可靠消息最终一致性方案-本地消息服务)
微服务框架Spring Cloud介绍 Part1: 使用事件和消息队列实现分布式事务 本文转自:http://skaka.me/blog/2016/04/21/springcloud1/ 不同于单一 ...
- 分布式事务,EventBus 解决方案:CAP【中文文档】(转)
出处:http://www.cnblogs.com/savorboard/p/cap-document.html 前言 很多同学想对CAP的机制以及用法等想有一个详细的了解,所以花了将近两周时间写了这 ...
随机推荐
- WinForm实现无边框窗体的拖动
一个登录窗体,FormBorderStyle属性设置为None,打开后不能挪动位置,有时候会妨碍使用,有点恶心.网上找了段内容,实现拖动效果: #region 无边框拖动效果,Form被Picture ...
- uniapp去修改vuex中state中的值
修改state中的值 修改state中的值,方法 (1) 在mutations中写修改state的api. (2)写好之后,直接store.commit("changeValue" ...
- 十. Redis 事务和 “锁机制”——> 并发秒杀处理的详细说明
十. Redis 事务和 "锁机制"--> 并发秒杀处理的详细说明 @ 目录 十. Redis 事务和 "锁机制"--> 并发秒杀处理的详细说明 1 ...
- Luogu P4425 转盘 题解 [ 黑 ] [ 线段树 ] [ 贪心 ] [ 递归 ]
转盘:蒟蒻的第一道黑,这题是贪心和线段树递归合并的综合题. 贪心 破环成链的 trick 自然不用多说. 首先观察题目,很容易发现一个性质:只走一圈的方案一定最优.这个很容易证,因为再绕一圈回来标记前 ...
- 流程控制之switch选择结构
实现方式:switch case语句 switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支 switch语句中的变量类型可以是: byte.short.int或者cha ...
- 2025AI应用元年,DeepSeek让领域小模型训练成本急剧下降!
关注公众号回复1 获取一线.总监.高管<管理秘籍> 模型训练俗称炼丹,而炼丹是修士特权,这就显得模型训练离普通人很远了. 虽然是笑谈,但如果对其中情况不太了解确实也会因为其背后深厚.复杂的 ...
- keycloak~关于社区认证的总结
keycloak关于社区认证它有统一的设计,社区认证包括了github,microsoft,wechat,qq,dingtalk等等,当然你还可以扩展很多实现了oauth2协议的第三方社区,将它们对接 ...
- 离线安装Docker社区版详细教程
Docker是一个开源的应用容器引擎,使得开发者可以打包应用以及依赖包到一个轻量级的.可移植的容器中,然后发布到任何支持Docker的平台上.本文将详细介绍如何在离线环境下安装Docker社区版. 1 ...
- 八米云-各种小主机x86系统-小白保姆式超详细刷机教程
疑难解答加微信机器人,给它发:进群,会拉你进入八米交流群 机器人微信号:bamibot 简洁版教程访问:https://bbs.8miyun.cn 准备工作 说明: 1.小节点X86 单线500M以下 ...
- Typora - typora主题样式
主题名称:github_harley.css(随便命名) 效果:Mac风格的代码块.更舒适的引用块风格. css harley01 /* 代码块主题 */ /* 顶部 */ .md-fences { ...