开发者社区 > 云原生 > 正文

打开和关闭流量透明拦截功能的关键流程是怎样的?

打开和关闭流量透明拦截功能的关键流程是怎样的?

展开
收起
vncamyi27xznk 2021-12-03 09:44:55 689 0
1 条回答
写回答
取消 提交回答
  • image.png 其中应用进程中包含了 RPC SDK 而没有区分表达,Traffic Interceptor、Pilot Agent 和 Envoy 三个组件在同一个容器中,所有组件共享同一个Pod。OneOps Core 是基于 K8s 所构建的中心化 mesh 运维 Operator,收到控制台(图中标识为小人的 Operator 指代)调用开启或关闭流量透明拦截的接口后,通过调用 Pilot Agent 所提供的接口完成对Pod 中应用流量的操作。为了保证打开和关闭透明拦截功能时无业务流量的调用损失,请注意图中红色标识出的二大块流程。开启流量拦截时:Pilot Agent 将调用 RPC SDK 的 offline 接口(消息 2.1.1),间接完成从服务注册中心对本机做去注册摘除流量;然后调用 Traffic Interceptor 组件所提供的接口开启流量拦截功能(消息2.1.2);最后再调用 RPC SDK 的 online 接口将本机注册到服务注册中心(消息 2.1.3)。 关闭流量拦截时:Pilot Agent 将调用 Envoy 的优雅关闭接口(消息 4.1.1),Envoy 会在 RPC SDK 与 Envoy 建立的连接上透传这一消息(即 Envoy 会调用 RPC SDK 的优雅关闭接口,上图并没有表达出), 告诉 RPC SDK 不要再向已建立的这一长连接上发送任何 RPC 请求;随后 Pilot Agent 调用 Traffic Interceptor 接口关闭流量拦截功能(消息 4.1.2);最后,Envoy 的优雅关闭接口被调用时会启动一个 延时 15 秒的定时器,确保 RPC SDK 与 Envoy 间已建立的长连接上还没有完成处理的请求有足够的时间 处理完以免出现流量有损,当定时器到期后 Envoy 会主动关闭与 RPC SDK 所建立的连接(消息 6)。

    答复内容摘自《云原生技术与架构实践年货小红书》,这本电子书收录开发者藏经阁 下载连接:https://developer.aliyun.com/topic/download?id=1127

    2021-12-03 11:10:14
    赞同 展开评论 打赏
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
《用管控策略设定多账号组织全局访问边界》 立即下载
Android内存泄漏自动化链路分析组件--Probe 立即下载
内容驱动游戏分发 立即下载