聂同学

一个程序员和架构师的实践与思考

微服务的微

微服务的微,是指服务粒度的微么?

微服务可能是由此得名的。但在微服务架构思想中,服务粒度的微,不应该放在首要强调的位置。

微服务架构的思想中,服务的粒度是能找到明确依据的。它由正反两个方向的力相互平衡决定。

驱动服务分割变小的正向力是解耦带来的收益。这个可以从几个方面考察——业务、团队、技术栈、运行时。1

反向力是服务分割变小后带来的问题,目前看来最难解决的是性能和数据一致性。服务的粒度越小,需要协作的服务数量越多,性能和一致性方面的影响就越大。

对于这两个力的平衡,不同的业务,不同的团队,不同的进化方向等等,多种因素决定了结果并不相同。正向力大一些,服务的粒度就小一些,服务就微一些,否则,服务就没那么微。

这样一来,服务是不是微、有多微,并不由微服务架构思想本身决定。甚至一种可能的合理结果是:运用微服务的思想分析之后,却发现使用单体架构更为合理。

所以,微服务的微,并不强调服务粒度的微。


  1. 前面有详细讨论,参见《单体优先还是微服务?》

微服务, 架构

分享 -