微服务的实践
问题 :如何拆呢?
披萨理论:每个团队的人数不能多到两张披萨都不够吃的地步
“三个火枪手”原则:即一个微服务三个人负责开发
拆分方法:
1. 基于业务逻辑拆分
这是最常见的一种拆分方式,将系统中的业务模块按照职责范围识别出来,每个单独的业务模块拆分为一个独立的服务。
2. 基于可扩展拆分
将系统中的业务模块按照稳定性排序,将已经成熟和改动不大的服务拆分为稳定服务,将经常变化和迭代的服务拆分为变动服务。
3. 基于可靠性拆分
将系统中的业务模块按照优先级排序,将可靠性要求高的核心服务和可靠性要求低的非核心服务拆分开来,然后重点保证核心服务的高可用。具体拆分的时候,核心服务可以是一个也可以是多个,只要最终的服务数量满足“三个火枪手”的原则就可以。
微服务需要的基础能力
实施的优先级
1. 服务发现、服务路由、服务容错:这是最基本的微服务基础设施。
2. 接口框架、API 网关:主要是为了提升开发效率,接口框架是提升内部服务的开发效率,API 网关是为了提升与外部服务对接的效率。
3. 自动化部署、自动化测试、配置中心:主要是为了提升测试和运维效率。
4. 服务监控、服务跟踪、服务安全:主要是为了进一步提升运维效率。