微服务架构
1.系统架构演变历史
单体架构->垂直应用架构->分布式架构->SOA架构->微服务架构
2.各系统架构特点
| 单体架构 | 垂直应用架构 | 分布式架构 | SOA架构 | 微服务架构 | |
|---|---|---|---|---|---|
| 优点 | 性能高,冗余少 | 业务可以独立开发 | 抽出业务无关的独立服务 | 服务注册,面向服务 | 开发效率高,业务独立,从下至上,不同模块故障相互隔离 |
| 缺点 | debug困难,模块相互影响,不便于分工合作 | 不同业务系存在冗余 | 单模块故障会导致全站故障,调用关系复杂,不同服务存在冗余 | 系统设计中心化,从上至下的设计,难以重构 | 治理困难,运维困难,兼具分布式系统的挑战,安全性的挑战 |
3.微服务架构图
该架构由多种组件构成,不同的服务相互隔离,用户通过网关访问,最终到达消息队列。微服务是分布式的,因此在故障检测和服务配置方面会有一定的难度,需要提供一个平台的支撑,例如服务配置与治理平台和链路追踪和监控平台等。
微服务治理
服务发布
1.蓝绿部署
在发布时使用另外一个集群,将新版本发布到另一个集群上,然后由原本的集群切换到该集群。
缺点:需要两倍的集群,资源开销和浪费较大
2.灰度发布
先创建一个新的实例,然后将新版本发布到该实例上检测是否有问题,如果没有问题则将一个原本正在服务的实例更新为该实例。重复这样的操作,直至所有的实例都被更新。