良好的微服务设计可以使后期的升级维护更加轻松,否则将会令人非常头疼。
下面几个设计原则强烈建议采用:
- 单一职责
- 高内聚
- 低耦合
- 隐藏内部实现
- 避免代码库共享
- 避免数据过度暴露
- 避免数据库共享
- 最小化同步调用
- 最小化硬件共享
- 避免使用平台独特性技术
这三大原则是面向对象设计中的核心,同样适用于微服务设计。
1. 单一职责
每个微服务只应担负一个职责。
比如一个微服务中有两大功能:
- 商品分类管理
- 购物车
把它们放在一起看起来问题不大,因为使用的技术相同、功能和数据上会有比较紧密的联系,在组织结构上,通常是由同一个开发小组负责。
但是,这会造成两个功能有大量的代码耦合。
时间长了之后,会带来和单体架构一样的问题,维护难、测试难、部署难 ……
所以,按照“单一职责”原则,应该分为两