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

站在 Consumer 视角(即 Consumer 侧的 Envoy 进行升级,Consumer 代

站在 Consumer 视角(即 Consumer 侧的 Envoy 进行升级,Consumer 代表流量调用的发起方)所观测到的热升级流程是怎样的?

展开
收起
vncamyi27xznk 2021-12-03 09:45:50 623 0
1 条回答
写回答
取消 提交回答
  • image.png 当 Envoy 有一个新版本需要升级时(图中标识为 v2),通过运维控制台可以设置这个新版本的镜像信 息,通过 OpenKruise 的 SidecarSet 可以拉到这一镜像并将镜像中的新版本 Envoy 二进制程序拉起。 随后,新版本 Envoy 会向老版本 Envoy(路中标识为 v1)发起热升级流程。热升级大致包含如下几个流程:老版本进程中所有的侦听 fd 通过进程间通讯的方式交给新版本进程(消 息 5.1),由新版本进程继续在之上进行侦听(消息 5.1.1),换句话说,之后所有在这些被侦听端口上 新建的连接都会发生在新版本进程中;老版本进程调用 RPC SDK 的优雅关闭接口(消息 5.3),告诉 RPC SDK 不要再已建立的连接上发起新的调用,如果要发起新调用则必须重新建立连接,显然新连接将与新版本进程建立,随后的调用流量将全部进到新版本进程;老版本进程向 RPC SDK 发起优雅关闭接口调用的同时会建立一个时延 15 秒的定时器,确保与 RPC SDK 所建立的连接在这 15 秒中都处理完,定时器到期后关闭这一连接并退出老版本进程(消息 5.4),从而结束整个热升级流程。

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

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

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

相关电子书

更多
基于RocketMQ Connect 构建全新数据流转处理平 立即下载
Rocket MQ 使用排查指南 立即下载
消息队列 Kafka 版差异化特性 立即下载