微服务化没有统一标准,多数是进行业务领域垂直切分,业务按一定的粒度划分职责,并形成清晰、职责单一的服务接口,这样每一块规划为一个微服务。微服务之间的通信方案相对成熟,开源领域选择较多的有RPC或RESTful API方案,比如:gRPC、Apache Thrift等。这些方案多偏重于数据如何打包、传输与解包,对服务治理的内容涉及甚少。
微服务治理是头疼的事,也是微服务架构中的痛点。治理这个词有多元含义,很难下达一个精确定义,这里可以像小学二年级学生那样列出治理的诸多近义词:管理、控制、规则、掌控、监督、支配、规定、统治等。对于微服务而言,治理体现在以下诸多方面:
- 服务注册与发现
- 身份验证与授权
- 服务的伸缩控制
- 反向代理与负载均衡
- 路由控制
- 流量切换
- 日志管理
- 性能度量、监控与调优
- 分布式跟踪
- 过载保护
- 服务降级
- 服务部署与版本升级策略支持
- 错误处理