微服务架构模式语言(模式归类的类别)
- 基础设施相关
- 部署
- 现在容器、k8s是主流
- 主要考虑动态部署问题
- 服务发现
- 通信相关
- 如何获取服务的具体实例的IP地址,或者http请求地址?
- 外部API
- 通信相关
- 客服端(比如前端)如何与服务通信,API gateway?
- 部署
- 应用基础设施
- 边界问题
- 基地框架,比如公司的集成gin框架,odp框架,可以快速新建服务
- 安全性
- 身份验证,在API Gateway中完成,用户信息传递到服务中
- 常见解决方案
- 访问令牌模式(如JWT)
- 事务性消息
- 通信相关
- 数据更新和消息同步,如何做到同时发生,同时失败
- 通信风格
- 通信相关
- 使用哪一类进程间通信,rpc、http、mq?
- 可靠性
- 一个服务不可用,如何保证服务之间的可靠通信
- 可观测性
- 比如服务的情况,接口日志链路,服务器负载情况
- 边界问题
- 应用相关
- 分解
- 数据库
- 查询
- 服务的数据仅可以通过API方式访问,不能针对服务的数据库进行查询
- 因为另一个服务可能使用的是其他db,比如mangodb
- 经典CQRS
- 用es构造查询视图是个好方法
- 服务的数据仅可以通过API方式访问,不能针对服务的数据库进行查询
- 维护数据一致性
- 为啥用saga,不用2pc
- 测试
- 理解为QA的测试平台,自动化测试等等