粒度分解因素为何时将服务分解为更小的部分提供指导和依据
粒度分解的因素:
服务范畴及功能
有两个维度需要考虑:
1.内聚:特定服务的行为彼此关联的程度和方式。
2.组件的整体大小
代码易变性
源代码更新频率相似的模块放在一起
可伸缩性和吞吐量
可伸缩性和吞吐量需求相近的模块放在一起
容错性
特定领域中的应用程序或功能在发生致命崩溃时继续运行的能力
不同容错性能力的模块不要放在一起
安全性
服务的某些部分是否需要比其它部分更高的安全级别?
不同安全等级的模块不要放在一起
可扩展性 - 随着服务上下文的增长而添加额外功能的能力
如果服务是会扩展的,将不同的扩展放在不同的服务中