线上应用节点流量隔离技术是如何实现深度剖析的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3400个文字,预计阅读时间需要14分钟。
为什么要做流量隔离?源于一个EDAS客户遇到的宕机情况:他们线上一个Pod的CPU指标异常,为了进一步诊断问题,客户希望在不重建此Pod的情况下,保留现场,但诊断期间流量仍然会经过。
为什么要做流量隔离
源于一个 EDAS 客户遇到的棘手情况:他们线上的一个 Pod CPU 指标异常,为了进一步诊断问题,客户希望在不重建此 Pod 的情况下保留现场,但诊断期间流量还会经过这个异常 Pod,导致影响服务质量,于是询问我们有没有办法可以把流入异常节点的流量摘除掉,形成一个隔离的诊断环境。经诊断后,如果异常可以修复,待修复完成后,再解除流量隔离,节点恢复正常工作。
除了在诊断场景需要对所有输入流量进行隔离外,在一些线上演练中还需对特定流量进行隔离以实现模拟演练效果。面对这类流量隔离问题时,我们首先考虑的是全链路流量控制。目前,EDAS 上的全链路流控能够在不重启应用节点的情况下控制流量走向。然而,全链路流控仅能控制微服务框架流量,无法满足隔离所有或特定流量的需求。
为此,我们进行了深入研究,实现了一套开箱即用的流量隔离工具,能够动态隔离特定流量,并在隔离后可随时恢复,以满足各种场景下的流量隔离需求。
隔离哪些流量
流量隔离的目的是阻断应用节点的流入流量,首先明确下微服务应用节点流入的流量有哪些。
流入微服务应用节点的流量大致可以分为两大类:服务流量、事件流量。以常见的微服务应用为例,其流量组成如下图所示。
本文共计3400个文字,预计阅读时间需要14分钟。
为什么要做流量隔离?源于一个EDAS客户遇到的宕机情况:他们线上一个Pod的CPU指标异常,为了进一步诊断问题,客户希望在不重建此Pod的情况下,保留现场,但诊断期间流量仍然会经过。
为什么要做流量隔离
源于一个 EDAS 客户遇到的棘手情况:他们线上的一个 Pod CPU 指标异常,为了进一步诊断问题,客户希望在不重建此 Pod 的情况下保留现场,但诊断期间流量还会经过这个异常 Pod,导致影响服务质量,于是询问我们有没有办法可以把流入异常节点的流量摘除掉,形成一个隔离的诊断环境。经诊断后,如果异常可以修复,待修复完成后,再解除流量隔离,节点恢复正常工作。
除了在诊断场景需要对所有输入流量进行隔离外,在一些线上演练中还需对特定流量进行隔离以实现模拟演练效果。面对这类流量隔离问题时,我们首先考虑的是全链路流量控制。目前,EDAS 上的全链路流控能够在不重启应用节点的情况下控制流量走向。然而,全链路流控仅能控制微服务框架流量,无法满足隔离所有或特定流量的需求。
为此,我们进行了深入研究,实现了一套开箱即用的流量隔离工具,能够动态隔离特定流量,并在隔离后可随时恢复,以满足各种场景下的流量隔离需求。
隔离哪些流量
流量隔离的目的是阻断应用节点的流入流量,首先明确下微服务应用节点流入的流量有哪些。
流入微服务应用节点的流量大致可以分为两大类:服务流量、事件流量。以常见的微服务应用为例,其流量组成如下图所示。

