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. 六种微服务架构的设计模式

    1 聚合器微服务设计模式 这是一种最常用也最简单的设计模式,如下图所示: 聚合器调用多个服务实现应用程序所需的功能.它可以是一个简单的Web页面,将检索到的数据进行处理展示.它也可以是一个更高层次的组 ...

  2. 微服务架构及其最重要的 10 个设计模式!

    来源:Java日知录 软件设计模式是解决软件设计中常见问题的通用.可复用的解决方案.设计模式让我们可以分享通用词汇并使用经实战检验的方案,以免重复造轮子.现在,我将介绍一系列设计模式来实现这些最佳实践 ...

  3. 微服务架构10个最重要的设计模式

    自从软件开发的早期(1960年代)以来,解决大型软件系统中的复杂性一直是一项艰巨的任务.多年来,软件工程师和架构师为解决软件系统的复杂性进行了许多尝试:David Parnas的模块化和信息隐藏(19 ...

  4. 微服务架构最重要的 10 个设计模式!

    软件设计模式是解决软件设计中常见问题的通用.可复用的解决方案.设计模式让我们可以分享通用词汇并使用经实战检验的方案,以免重复造轮子.现在,我将介绍一系列设计模式来实现这些最佳实践. 微服务架构的设计模 ...

  5. 微服务架构中10个常用的设计模式

    从软件开发早期(1960 年代)开始,应对大型软件系统中的复杂性一直是一项令人生畏的任务.多年来为了应对软件系统的复杂性,软件工程师和架构师们做了许多尝试:David Parnas 的模块化和封装 ( ...

  6. 微服务架构深度解析与最佳实践

    微服务架构深度解析与最佳实践 微服务架构的概念,现在对于大家应该都不陌生,无论使用 Apache Dubbo.还是 Spring Cloud,都可以去尝试微服务,把复杂而庞大的业务系统拆分成一些更小粒 ...

  7. 微服务架构深度解析与最佳实践-第一部分:微服务发展历程和定义

    微服务架构的概念,现在对于大家应该都不陌生,无论使用 Apache Dubbo.还是 Spring Cloud,都可以去尝试微服务,把复杂而庞大的业务系统拆分成一些更小粒度且独立部署的 Rest 服务 ...

  8. 微服务的好处与弊端_《微服务架构设计模式》-学习总结07

    本篇主要总结第七章:在微服务架构中实现查询 在微服务架构中查询数据的挑战 何时以及如何使用API组合模式实现查询 何时以及如何使用CQRS模式实现查询 微服务架构中,查询通常需要检索分散在多个服务所拥 ...

  9. 高性能微服务架构设计模式@霞落满天

    高性能微服务架构设计模式 主讲:霞落满天 现在企业开发都是微服务架构,但是有很多问题,比如分布式定义,分布式的微服务怎么拆分,什么时候拆分,怎么做到高性能,中台怎么设计,读写分离模式难道仅仅是MySQ ...

最新文章

  1. MIIC:互联网会成基础设施,智能硬件就是互联网硬件
  2. Jenkins plugin
  3. PHP cURL可以在单个请求中检索响应标头和正文吗?
  4. golang中的对称加密
  5. 安装中文语言包会导致 Troubleshoot Compatibility 失败
  6. json的格式和简单例子
  7. SPOJ - LCS2 Longest Common Substring II(后缀自动机)
  8. 【剑指offer】面试题28:对称的二叉树(Java)
  9. 获取byte的各个bit值_Java中获取一个Byte 的各个Bit的值
  10. python创建自定义函数is_number()来判断一个字符是否是数字
  11. .net项目开发工具(V2.0)异常报告专帖
  12. 网页设计html流水效果图,15例简单常用网页设计效果代码
  13. aspose转pdf乱码问题
  14. bootstrap插件bootbox参数
  15. 剧本创作时的标准格式,让你的剧本轻松得到制片公司青睐
  16. 为什么买入不了创业版_两点原因,为什么现在不建议你买创业板
  17. 【XSY2501】Mountainous landscape(线段树二分,凸包)
  18. ES-JOB——分布式定时任务高级使用——控制台修改任务
  19. SqlServer中的dbo是什么意思?
  20. 显卡更新+pytorch安装

热门文章

  1. Monthly update for Dynamics 365 for Operation
  2. 将二叉搜索树转换为有序的双向链表
  3. 刚搭建的linux环境的基本优化以及优化脚本---菜鸟初写
  4. 简单验证码识别 tessnet2
  5. 小技巧:帮你批量删除代码前的行号
  6. 网络通讯程序整理(一)
  7. flutter doctor --android-licenses 报错解决方案
  8. react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output and
  9. XamarinAndroid组件教程RecylerView适配器动画动画种类
  10. 网络数据嗅探工具HexInject