课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,程序员掌握的编程架构方法也在不断增加,而今天我们就一起来了解一下,分布式架构事务特点。
1、大努力通知
基于BASE理论做的保证数据终一致性方案,基本可用,软状态,终一致性
具体实现为,写本地事务,同步写一张事务消息表,发送事务消息,消息异步通知关联系统,处理失败则利用MQ的重试功能做自动重试,超过重试次数记录失败状态,定时任务扫描手动处理
TCC事务补偿方案
需要一个事务处理器
每个事务必须实现try、confirm、cancel三个方法,开发维护成本高
阿里开源框架实现seata
基于可靠消息的终一致性方案
RocketMQ有事务消息的实现
具体原理为,业务方发送一个事务消息,MQ将消息落表,此时消息对消费方不可见
发起方执行本地事务,通知MQ提交或回滚
MQ会定时查询发起方的事务执行状态,决定提交或回滚
2、SpringCloud
微服务服务发现与调用流程
服务提供者启动将自己的注册到eureka
服务消费者通过serviceId到eureka拉取服务提供者的实例IP
服务消费者通过Ribbon,默认采用轮询的方式调用消费者IP列表中实例
ribbon的重试机制
默认超时后重试原实例一次
可配置重试其他实例的次数
实际配置关闭了重试,因为超时失败下次请求大概率也会失败,重试容易放大故障,增加压力
ribbon多次调用一个实例失败会将其剔除吗?
eureka服务下线感知
有至少30秒延时(认为延时可接受,用无损发布可解决,无损发布使用两个池,一个起来之后将流量切过去)
希望这辈子,最让你无悔的事情就是来达内学习!学习向来不是件易事,但无论过程多么艰难,希望你依然热爱生活,热爱学习!永远记得,达内将与你一同前行!现在扫码,立即领取万元课程礼包,助力0基础快速入行,为你梳理行业必备技能,全方位了解岗位发展前景!
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。