微服务模式语言

微服务模式语言

下面总结了微服务架构的模式语言

应用架构模式

您应该为应用选择哪种架构?

分解

如何将应用程序分解为服务?

数据管理

如何保持数据一致性并实现查询?

事务消息

如何将消息作为数据库事务的一部分发布?

测试

如何使测试更容易?

  • 驱动契约测试 - 服务的测试套件,由另一个使用它的服务的开发人员编写
  • 服务契约测试 - 一个测试套件,它使用测试双精度对它调用的任何服务进行隔离测试

部署模式

如何部署应用程序的服务?
 

需要关注的边界问题

如何处理服务实例与外界交互的问题?

通讯模式

风格

应该选择怎样的通信机制来进行服务间通讯和外部客户端通讯?
 

外部 API 

如何处理外部客户端与服务之间的通讯?

服务发现 

一个基于 RPI 的客户端如何在网络上发现服务实例的位置?
 

可靠性 

如何避免由于服务故障或网络中断所引起的故障蔓延到其他服务?
 

  • 断路器- 当远端服务返回的故障率超过一定的阀值时,客户端代理(比如 API 网关)对远程服务的调用将立刻返回失败的信息

安全

如何向服务实例传递访问客户端的身份信息?
 

  • 访问令牌 - 服务实例通过访问令牌来安全地传递客户端的身份信息

可观测性

如何掌握一个运行中微服务应用的行为并进行有效的故障排错?
 

  • 应用日志 - 聚合应用程序产生的日志文件
  • 应用指标 -在代码中实现收集应用运营过程中各类指标的功能
  • 审计日志 - 把用户行为记录在数据库中供日后核查
  • 分布式追踪 -  在服务代码中针对每一个外部访问,都分配一个唯一的标识符,并在跨服务访问时传递这个标识符以供追踪分布式引发的问题。例如,当通过一个集中式服务处理外部请求时,记录请求本身的信息以及请求的开始和结束时间。

  • 异常追踪 - 把所有服务程序代码触发的异常信息都汇聚到集中的异常追踪服务,并根据一定的逻辑对开发者或运维人员发出通知。.

  • 健康检查 API- 一个监控服务可调用的 API,通常返回服务健康度信息,或对 ping 等心跳检查请求做出响应。

  • Log deployments and changes

UI 模式

如何将源自多个服务的信息组织在一起生成 UI 界面或 Web 页面?
 

 

posted on 2019-08-03 09:24  yaofengspark  阅读(677)  评论(0编辑  收藏  举报

导航