架构的一般演变路径
单体架构 -> 集群架构 -> SOA 架构 -> 微服务架构
微服务架构的特点
- 系统服务独立拆分;
- 微服务单一原则;
优点
- 服务拆分更细,服务可以重复使用;
- 可以针对某个服务做性能扩展和优化;
- 服务部署容易,业务之间相互影响较小,可以分别对不同服务做部署升级;
缺点
- 服务越来越多,不好管理;
- 服务需要不断增加故障监听、故障治愈、故障预警功能才能从众多服务中了解服务的健康状态;
如何大规模使用微服务
- 防止雪崩;
- 跨功能性需求;
- 熔断;
- 功能降级;
- 超时;
- 幂等;
- 缓存;
- 数据库拆分;
- 服务隔离;
- 可扩展;
- 可伸缩;