看到一篇文章整理了设计原则,这边觉得很可以,所以搬来总结一下
- 单一职责
每个微服务只应担负一个职责,比如 商品 购物车 应该为两个微服务。
- 高内聚
将关系亲密的微服务应该放在一起,比如订单与订单金额统计。
- 低耦合
- 隐藏内部实现:内部功能作为对象的一部分,无需再对外暴露。
- 避免代码库共享:各个库代码隔离,解耦。
- 避免数据过度暴露:针对性接口封装,比如用户信息只用返回用户信息,无需返回其他信息,其他信息可通过其他接口返回。
- 避免数据库共享:一个服务想获取另一个服务的数据时应该通过接口而非直连数据库。
- 最小化同步调用:事件驱动异步调用,不阻碍用户活动流程。
- 最小化硬件共享:
- 避免使用平台独特性技术:比如java和php两套技术,不可有平台特性。
以上参考https://mp.weixin.qq.com/s/Ekr1M9FNud_bftKix4EOUA