事务-07-微服务架构的设计模式
2019独角兽企业重金招聘Python工程师标准>>>
1 分布式事务实现
- 保证高可用:网络、分布式部署
- 保证事务同步:同步多个数据源的事务
- 保证幂等性:通过重试解决大部分错误
- 合理设计流程:条件检查,预留资源,业务操作,完成资源(TCC)
2 Spring 事务
- 服务单元:访问多个数据源
- 使用JTA实现强一致性,或其他同步机制实现最终一致性
- 根据数据源的类型,使用适当的事务同步机制
- 使用重试、超时、定时检查等方式处理同步错误
- 使用幂等性、UUID、分布式锁等
3 合理的设计业务
- 一致性要求的严格程度
- 同步、异步处理
- 合理的拆分复杂的业务
- 合理的设计实现代码:数据检验、条件检查、资源预留、实现业务
4 架构设计
- 与其尝试解决所有的错误,不如换个架构思考问题
- 消息驱动可以解决服务拆分后的相互访问问题
- TCC模式可以解决服务相关访问的事务问题
- 事件溯源+Saga解决分布式流程的事务问题
5 微服务架构设计模式
5.1 服务链模式
5.2 Spring Cloud微服务架构
5.3 消息驱动模式
5.4 事件溯源模式
转载于:https://my.oschina.net/u/3777515/blog/1854444
事务-07-微服务架构的设计模式相关推荐
- 六种微服务架构的设计模式
1 聚合器微服务设计模式 这是一种最常用也最简单的设计模式,如下图所示: 聚合器调用多个服务实现应用程序所需的功能.它可以是一个简单的Web页面,将检索到的数据进行处理展示.它也可以是一个更高层次的组 ...
- 微服务架构及其最重要的 10 个设计模式!
来源:Java日知录 软件设计模式是解决软件设计中常见问题的通用.可复用的解决方案.设计模式让我们可以分享通用词汇并使用经实战检验的方案,以免重复造轮子.现在,我将介绍一系列设计模式来实现这些最佳实践 ...
- 微服务架构10个最重要的设计模式
自从软件开发的早期(1960年代)以来,解决大型软件系统中的复杂性一直是一项艰巨的任务.多年来,软件工程师和架构师为解决软件系统的复杂性进行了许多尝试:David Parnas的模块化和信息隐藏(19 ...
- 微服务架构最重要的 10 个设计模式!
软件设计模式是解决软件设计中常见问题的通用.可复用的解决方案.设计模式让我们可以分享通用词汇并使用经实战检验的方案,以免重复造轮子.现在,我将介绍一系列设计模式来实现这些最佳实践. 微服务架构的设计模 ...
- 微服务架构中10个常用的设计模式
从软件开发早期(1960 年代)开始,应对大型软件系统中的复杂性一直是一项令人生畏的任务.多年来为了应对软件系统的复杂性,软件工程师和架构师们做了许多尝试:David Parnas 的模块化和封装 ( ...
- 微服务架构深度解析与最佳实践
微服务架构深度解析与最佳实践 微服务架构的概念,现在对于大家应该都不陌生,无论使用 Apache Dubbo.还是 Spring Cloud,都可以去尝试微服务,把复杂而庞大的业务系统拆分成一些更小粒 ...
- 微服务架构深度解析与最佳实践-第一部分:微服务发展历程和定义
微服务架构的概念,现在对于大家应该都不陌生,无论使用 Apache Dubbo.还是 Spring Cloud,都可以去尝试微服务,把复杂而庞大的业务系统拆分成一些更小粒度且独立部署的 Rest 服务 ...
- 微服务的好处与弊端_《微服务架构设计模式》-学习总结07
本篇主要总结第七章:在微服务架构中实现查询 在微服务架构中查询数据的挑战 何时以及如何使用API组合模式实现查询 何时以及如何使用CQRS模式实现查询 微服务架构中,查询通常需要检索分散在多个服务所拥 ...
- 高性能微服务架构设计模式@霞落满天
高性能微服务架构设计模式 主讲:霞落满天 现在企业开发都是微服务架构,但是有很多问题,比如分布式定义,分布式的微服务怎么拆分,什么时候拆分,怎么做到高性能,中台怎么设计,读写分离模式难道仅仅是MySQ ...
最新文章
- MIIC:互联网会成基础设施,智能硬件就是互联网硬件
- Jenkins plugin
- PHP cURL可以在单个请求中检索响应标头和正文吗?
- golang中的对称加密
- 安装中文语言包会导致 Troubleshoot Compatibility 失败
- json的格式和简单例子
- SPOJ - LCS2 Longest Common Substring II(后缀自动机)
- 【剑指offer】面试题28:对称的二叉树(Java)
- 获取byte的各个bit值_Java中获取一个Byte 的各个Bit的值
- python创建自定义函数is_number()来判断一个字符是否是数字
- .net项目开发工具(V2.0)异常报告专帖
- 网页设计html流水效果图,15例简单常用网页设计效果代码
- aspose转pdf乱码问题
- bootstrap插件bootbox参数
- 剧本创作时的标准格式,让你的剧本轻松得到制片公司青睐
- 为什么买入不了创业版_两点原因,为什么现在不建议你买创业板
- 【XSY2501】Mountainous landscape(线段树二分,凸包)
- ES-JOB——分布式定时任务高级使用——控制台修改任务
- SqlServer中的dbo是什么意思?
- 显卡更新+pytorch安装
热门文章
- Monthly update for Dynamics 365 for Operation
- 将二叉搜索树转换为有序的双向链表
- 刚搭建的linux环境的基本优化以及优化脚本---菜鸟初写
- 简单验证码识别 tessnet2
- 小技巧:帮你批量删除代码前的行号
- 网络通讯程序整理(一)
- flutter doctor --android-licenses 报错解决方案
- react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output and
- XamarinAndroid组件教程RecylerView适配器动画动画种类
- 网络数据嗅探工具HexInject