前言
因公司战略要求,笔者之前所在的电商项目需要进行微服务拆分。因此参考微服务的一些原则和京东的架构设计总结出了如何快速指导微服务拆分。
1 微服务定义
相对于传统的大型单体应用,现在越来越多的软件开发项目采用微服务架构来进行应用拆分。
从上图可以看出,微服务架构具有以下几个特点:
- 单一职责原则
每个微服务仅负责一件事情。 - 独立运行,独立部署
每个微服务相互之间完全独立,拥有独立运行的进程和数据库。 - 轻量级的通信机制
比如HTTP、REST、Dubbo,甚至基于消息系统。 - 松耦合
更新一个微服务不会引起其它微服务的改变。
2 微服务拆分的粒度
康威定律:系统设计结构复制于组织沟通形式。
如下图,不同的组织拆分方式带来不同的团队间沟通方式,从而影响系统设计。
2 微服务拆分需考虑的因素
2.1 团队
2.1.1 团队规模
亚马逊精神:最佳团队规模是刚好分完两个比萨。
微服务架构适配的人员规模应该小而灵活,有独立自主的创新能