这是我参与「第五届青训营 」伴学笔记创作活动的第 12 天
一、课程内容
- 服务发布
- 流量治理
- 负载均衡
- 稳定性治理
二、详细知识点
1、服务发布
让一个服务升级运行新的代码的过程
服务发布的难点:
- 服务不可用
- 服务抖动
- 服务回滚
蓝绿部署
项目逻辑分为AB组,把A组从负载均衡中摘除,进行新版本的部署,B组在此过程中继续对外服务。A组升级成功后将A组接入负载均衡并将B组从负载均衡中摘除,进行新版本的部署。最后负载均衡接入B组,升级完成。
优点:简单、稳定
缺点:需要两倍的资源
灰度发布(金丝雀发布)
灰度发布只升级部分服务,让一部分用户继续使用老版本,一部分用户开始用新版本。当用户对新版本没有反对意见,就逐步扩大范围,把所有用户都迁移到新版本上面。
2、流量治理
- 由于某个服务崩溃,导致所有用到该服务的其他服务都无法正常工作。
- 服务没有崩溃,但处理能力有限,当有大量突发请求到来时,大部分请求将超时。
在微服务架构下,我们可以基于地区、集群、实例、请求等维度,对端到端流量的路由进行精细化控制。
3、负载均衡
负载均衡负责分配请求在每个下游实例上的分布。
4、稳定性治理
限流
在请求处理速度达到设定限制后,不再接受和处理更多请求,直到原有请求处理完成,避免服务器宕机。
熔断
当请求超时或者并发数超限,返回熔断错误。
过载保护
主机资源占用过高,拒绝后续请求。
降级
当服务器由于资源不足,先服务优先级高的服务,舍弃优先级低的服务。