当前位置:网站首页>看到这个应用上下线方式,不禁感叹:优雅,太优雅了!
看到这个应用上下线方式,不禁感叹:优雅,太优雅了!
2022-08-05 18:47:00 【华为云】
什么是优雅上下线
试想一个A场景,系统中运行着一个消费者(客户端)和两个服务提供者(服务端),消费者可负载均衡调用服务提供者。假设某个服务提供者因业务更新或其他场景需要滚动升级,若此时存在大量并发流量,便会出现以下问题:
- 大量TCP连接因服务提供者升级下线操作,导致大量请求错误。
- 由于消费者(客户端)存在注册表延迟刷新的问题,后续流量依旧会分配到已经下线的提供者,导致大量请求错误。
以上便是一个典型的“不优雅”场景。
于是,为了规避诸如此类的问题,服务优雅上下线应运而生,主要针对服务的重启、上线、下线等操作提供保护。
服务运维常见问题
(1) 服务自身存在大量懒加载机制(例如负载均衡初始化),在服务刚上线时,因并发流量请求涌入,导致大量请求同时进行懒加载,以至于请求响应慢,线程阻塞,甚至最终导致服务崩溃。
(2) 服务无法做到优雅下线,就如前面提到的A场景,服务端下线而客户端服务无法及时感知,导致流量流入已下线的实例,从而丢失大量流量。
优雅上下线提供了什么样的能力
(1) 服务端预热能力
服务端预热是基于客户端实现的,当流量进入时,Sermant Agent会动态调整流量,根据服务的预热配置,对流量进行动态分配。对于开启服务预热的实例,在刚启动时,相对于其他已启动的实例,分配的流量会更少,流量将以曲线方式随时间推移增加直至与其他实例近乎持平。目的是采用少流量对服务实例进行初始化,防止服务崩溃。
(2) 优雅下线能力
优雅下线结合服务端与客户端实现,主要实现点如下:
• 反注册
.png)
当服务端被要求下线时,Sermant Agent会动态根据当前注册中心进行反注册操作,及时刷新注册表,然而即使注册表已刷新,但是上游消费端因缓存问题却无法及时感知,从而引入下线通知。
• 下线通知
.png)
进行反注册后,Sermant Agent会采用接口通知与响应通知的方式告知所有上游,并主动同步刷新provider实例缓存。
• 黑名单
.png)
为保证流量不再调用已下线实例,引入黑名单机制。在客户端接收到下线通知后,自动将下线实例拉入黑名单,在执行流量分配时,自动过滤黑名单(已下线)实例,不再调用已下线实例。
说明:黑名单采用定时刷新机制,默认为2分钟,即针对同一个IP实例,标记下线后,等待2分钟即可重新发现。
• 流量统计
为确保当前请求已全部处理完成,在服务下线时,Sermant Agent会尝试等待30s(可配置),定时统计和判断当前实例请求是否均处理完成,处理完成后最终下线。
如何使用优雅上下线能力
虚机场景
容器场景
基于Demo验证优雅上下线能力
以Nacos demo应用为例,通过Sermant Agent接入CSE,并在CCE集群上验证优雅上下线功能,参考自定义优雅上下线。
边栏推荐
猜你喜欢

NOKOV metric motion capture assists the completion of UAV indoor positioning research

金仓数据库 KingbaseGIS 使用手册(4. 数据管理和查询)

国标视频云服务EasyGBS如何正确调阅实时录像接口?

有主键索引cpu 还是100%

How to correctly access the real-time recording interface of the national standard video cloud service EasyGBS?

LVS load balancing cluster

1.报表平台规划

“拨”取数字的典例:N位水仙花数判断及水仙花数变种

Docker install Mysql5.7

Kubernetes微服务Pod 影响力
随机推荐
C语言基础知识 -- 初识结构体
How to correctly access the real-time recording interface of the national standard video cloud service EasyGBS?
数据库的基础学习1:select语句的查询
bash_profile 重启后不生效
进程信号;
VS环境 -- C语言实用调试技巧
想去银行测试?那这套题目你必须要会
rhcsa 第一次作业
申万宏源证券新手开户,安全吗?
LVS load balancing cluster
一建证书有什么用?拿到一级建造师证书能干什么?
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
Watch监听器的使用
Firewall destination address translation and source address translation
rhcsa 第五次作业
EdgeNeXt轻量化学习笔记
认真思考生活
【CC3200AI 实验教程3】疯壳·AI语音人脸识别(会议记录仪/人脸打卡机)-CC3200简介
手撕神经网络 numpy
Qt样式表之 QSS 语法介绍;QLineEdit、