![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
微服务架构
文章平均质量分 86
断剑zou天涯
两脚沾地,实事求是
展开
-
微服务的幂等性
微服务架构设计的中心思想是将服务进行拆分,但是在这个过程中,如果被依赖的服务发生奔溃,就会引起一系列问题。为了解决这个问题,就会引入重试的机制,重试又会引入幂等性的问题,下面我们就分析这个过程,然后探讨一下常见的解决方案。原创 2024-02-04 15:03:21 · 1693 阅读 · 0 评论 -
RocketMQ消息队列(二)—— Go语言操作RocketMQ
上篇文章《》记录了RocketMQ的一些基本的概念,本文主要写几个go语言操作RocketMQ的示例代码。原创 2024-02-02 15:43:09 · 1199 阅读 · 0 评论 -
RocketMQ消息队列(一)—— 基本概念和消息类型
事务消息:云消息队列 RocketMQ 版提供类似XA或Open XA的分布式事务功能,通过云消息队列 RocketMQ 版事务消息能达到分布式事务的最终一致。半事务消息:暂不能投递的消息,生产者已经成功地将消息发送到了云消息队列 RocketMQ 版服务端,但是云消息队列 RocketMQ 版服务端未收到生产者对该消息的二次确认,此时该消息被标记成“暂不能投递”状态,处于该种状态下的消息即半事务消息。原创 2024-02-02 14:43:54 · 1186 阅读 · 0 评论 -
分布式事务(六)—— 最大努力通知的解决方案
系列目录:《分布式事务(一)—— 事务的基本概念》《分布式事务(二)—— CAP和Base理论》《分布式事务(三)—— 两阶段提交解决方案(2PC)》《分布式事务(四)——TCC补偿模式解决方案》《分布式事务(五)——基于本地消息和可靠消息的解决方案》 最大努力通知也是一种解决分布式事务的方案,其主要是用于解决执行结果的回调通知问题,尤其是执行结果是一个外部调用,我们没法干预其执行的时候,执行结果如何通知给我们的场景。比如我们系统中调用支付宝的支付接口,支付是否成功我们肯定是要关注的,支付宝如何将执行结果原创 2024-02-01 19:26:21 · 978 阅读 · 0 评论 -
分布式事务(五)——基于本地消息和可靠消息的解决方案
系列目录:《分布式事务(一)—— 事务的基本概念》《分布式事务(二)—— CAP和Base理论》《分布式事务(三)—— 两阶段提交解决方案(2PC)》《分布式事务(四)——TCC补偿模式解决方案》 基于本地消息表实现数据一致性的方案最初是由eBay提出的,此方案的核心是通过本地事务保证数据业务操作和消息的一致性,然后通过定势任务将消息发送到消息中间件,待确认消息发送给消费方成功再将定时任务的消息删除。这种方式的主要逻辑就是通过定势任务一致发送消息,直到成功为止。其优缺点也就一目了然了,最大的问题也就是在定原创 2024-02-01 19:03:39 · 1015 阅读 · 0 评论 -
分布式事务(四)——TCC补偿模式解决方案
首先需要选择某种TCC分布式事务框架,各个服务力就会有这个TCC分布式事务框架在运行然后你原本的一个接口,需要改造成3个逻辑: Try-Confirm-Cancel先是服务调用链路依次执行Try逻辑如果都正常的话,TCC分布式事务框架推进执行Confirm逻辑,完成整个事务如果某个服务的Try逻辑有问题,TCC分布式事务框架感知到之后会推进执行各个服务的Cancel逻辑,插销之前执行的各个操作先来Try一下,不要把业务逻辑完成,先试试,看各个服务能不能正常运转,能不能先冻结需要的资源。原创 2024-02-01 17:36:37 · 1203 阅读 · 0 评论 -
分布式事务(三)—— 两阶段提交解决方案(2PC)
系列目录:《分布式事务(一)—— 事务的基本概念》《分布式事务(二)—— CAP和Base理论》 两阶段提交方案在目前的分布式事务中只是一种方案,因为其比较复杂,且问题比较多,实际使用的比较少,但是我们也可以进行了解。 2PC是一个非常典型的中心化原子提交协议:这里所说的中心化指协议中有两类节点,一个是中心化的协调节点(Coordinator)和N个参与者节点(Partcipant).两个阶段指的是: 两阶段提交的设计思路就是在N个调用的节点的上面加上一个协调的节点。在发生事务操作的时候,先让协调节点原创 2024-02-01 16:58:24 · 1114 阅读 · 0 评论 -
分布式事务(二)—— CAP和Base理论
总体来说,Base理论面向的是大型高可用可扩展的系统,和传统的事物ACID特性是相反的,它完全不同于ACID的强一致模型,而是牺牲强一致来获得可用性,并允许数据在一段时间内不一致,但最终达到一致状态。同时,在实际的分布式场景中,不同业务单元和组建对数据一致性的要求不同,因此在具体的分布式系统架构设计的过程中ACID特性和Base理论往往又会结合在一起。软状态指允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统在不同节点数据副本之间进行数据同步的时候可以存在延时。原创 2024-02-01 16:08:09 · 1082 阅读 · 0 评论 -
分布式事务(一)—— 事务的基本概念
一组sql语句操作单元,组内所有的sql语句完成一个完成的业务,如果整组成功,意味着全部sql都执行成功,如果其中任何一个失败,意味着整个操作都失败。失败,意味着整个过程都没有意义,应该让数据库回到操作前的初始状态,这种特性,就叫做事务。原创 2024-02-01 15:26:14 · 469 阅读 · 0 评论