1.nginx的切换流量方式(阿里SLB)
适用范围
1.规模较小'all in one'的项目,同时部署两台, 为了做到不停机部署及容错; 2.分布式服务下的某个服务集群,单独管理;
(1)nginx切换流量用例
http {
upstream nginx_blug_green {
server 192.168.0.1:8080 weight=100;
server 192.168.0.2:8080 down;
}
server {
listen 80;
server_name www.xxxx.cn;
location / {
proxy_pass http://nginx_blug_green;
}
}
使用方式
1.将需要部署的服务器流量权重设为0,切走流量; 2.项目部署到没有流量访问的服务器; 3.设置少量流量权重观察,后续设置为接受全部流量; 4.再其他服务器重复以上1操作;
(2)基于阿里SLB负载均衡切换流量
使用方式
1.与nginx方式类似; 2.可搭配jenkins等自动化工具编写流水线部署作业;调用SLB提供的api进行自动化设置权重滚动部署;
2.基于微服务框架(SpringCloud)
适用范围
1.规模中等的微服务项目; 2.搭配框架提供的功能,使用自研的运维技术进行管理;
(1)基于nacos等服务发现组件(手动控制较少服务)
控制台手动上下线服务;
控制台手动设置权重;
结合jenkins,调用nacos操作api,进行自动上下线或设置权重操作;
(2)基于Gateway等网关组件,配合配置中心
1.使用自动化工具配合服务发现api滚动更新各实例服务; 2.如果想把请求根据权重,请求头等信息,自定义网关分发,可结合配置中心配置,或者编写网关自定义过滤器,根据服务注册元信息,自定义获取服务地址;
3.基于docker等容器技术(k8s)
(1)自研运维k8s
适用范围
1.规模较大的,支持动态扩缩容的集群服务; 2.更加自动化的进行滚动更新及回滚等操作;
使用方式
1.发布代码,使用jenkins等自动化工具,进行持续集成构建,并发布到容器自动化滚动部署;
(2)云服务商服务
本文由 GY 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为:
2022/03/31 16:49