本站点由 Chris Richardson 编写和维护,他是经典技术著作《POJOS IN ACTION》一书的作者,也是 cloudfoundry.com 最初的创始人。Chris 的研究领域包括 Spring、Scala、微服务架构设计、领域驱动设计、NoSQL 数据库、分布式数据管理、事件驱动的应用编程等。Chris 是一位连续创业者,eventuate.io 是他的最新创业项目,一个微服务应用和数据服务平台。
Chris 定期为企业提供微服务设计培训和实战项目的架构咨询服务。近年来 Chris 多次访问中国,为包括华为、SAP、惠普、东风汽车等大型企业提供微服务架构相关的技术咨询服务。如您希望与 Chris 深入交流,建立合作,请点击下方按钮跟他取得联系。
核心模式
服务拆分
部署模式
需要关注的边界问题
通讯模式
数据管理
安全模式
可测试性
可观测性
UI 模式
全新的微服务应用支撑平台,成功解决微服务架构下分布式数据管理的难题。
加入 微服务架构的 Google 讨论组(需要翻墙)
咱们开始聊聊微服务架构的模式语言吧。
[译注]:模式语言提供了讨论问题的交流术语,它明确了特定场景、特定问题的解决方案和延伸性思考。模式语言主要目的是帮助开发者解决在设计和编程中遇到的共同的问题,即清晰的问题陈述、体现问题的解决方案以及推动解决方案的力量(Force)的清晰表述。微服务架构作为一个现在流行的服务架构,也有一套属于自己的模式。这篇文章是微服务架构相关模式语言的一个提纲。Chris Richardson 从不同的角度,对相关的模式进行了分类。可以点击链接查看每个模式的详细描述。下图通过虚线框细分了不同的微服务模式。
您为应用程序选择哪一种架构?
如何把应用拆分为若干个服务?
如何部署应用程序的服务?
如何处理服务实例与外界交互的问题?
应该选择怎样的通信机制来进行服务间通讯和外部客户端通讯?
如何处理外部客户端与服务之间的通讯?
一个基于 RPI 的客户端如何在网络上发现服务实例的位置?
如何避免由于服务故障或网络中断所引起的故障蔓延到其他服务?
如何实现数据一致性和查询?
如何向服务实例传递访问客户端的身份信息?
如何更便捷的测试?
服务组件测试(Service Component Test)new - a test suite that tests a service in isolation using test doubles for any services that it invokes
服务集成协议测试(Service Integration Contract Test)new - a test suite for a service that is written by the developers of another service that consumes it
如何掌握一个运行中微服务应用的行为并进行有效的故障排错?
分布式追踪(Distributed tracing)new - 在服务代码中针对每一个外部访问,都分配一个唯一的标识符,并在跨服务访问时传递这个标识符以供追踪分布式引发的问题。例如,当通过一个集中式服务处理外部请求时,记录请求本身的信息以及请求的开始和结束时间。
异常追踪(Exception tracking)new - 把所有服务程序代码触发的异常信息都汇聚到集中的异常追踪服务,并根据一定的逻辑对开发者或运维人员发出通知。
如何将源自多个服务的信息组织在一起生成 UI 界面或 Web 页面?
服务器端页面碎片化元素构建(Server-side page fragment composition)new - 在服务器端通过编排由多个业务或领域相关后端服务生成的 HTML 片段来构建前端输出的页面内容
客户端 UI 构建(Client-side UI composition)new - 在客户端通过编排由多个业务或领域相关 UI 组件生成的 HTML 片段来构建前端输出的页面内容