CN113965510B - 一种流量染色方法和系统 - Google Patents
一种流量染色方法和系统 Download PDFInfo
- Publication number
- CN113965510B CN113965510B CN202111114500.4A CN202111114500A CN113965510B CN 113965510 B CN113965510 B CN 113965510B CN 202111114500 A CN202111114500 A CN 202111114500A CN 113965510 B CN113965510 B CN 113965510B
- Authority
- CN
- China
- Prior art keywords
- traffic
- dyeing
- bag
- mark
- pref
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/30—Routing of multiclass traffic
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Medical Treatment And Welfare Office Work (AREA)
Abstract
本申请公开了一种流量染色方法和系统,涉及APM系统技术领域。流量染色方法包括:采集调用链;获取流量染色标记,以供代理节点根据所述调用链和所述流量染色标记分发路由以及供代理节点将所述流量染色标记对应的流量导入对应的隔离部署池。本申请能够通过基于调用链的Baggage功能为指定流量染色且流量染色标记可以在全局中透明化传输,由于调用链已经存在,这样开发成本低,用户无感知,对用户的干扰小,接入和推广方便。
Description
技术领域
本申请涉及APM系统技术领域,具体涉及一种流量染色方法和系统。
背景技术
随着分布式系统架构的普及,系统越来越复杂,常常被切分为多个独立子系统并以集群方式部署在数十甚至成百上千的机器上。为掌握系统运行状态,确保系统健康,我们需要一些手段去监控系统,以了解系统行为,分析系统的性能,或在系统出现故障时,能发现问题、记录问题并发出告警,从而达到先于运营人员发现问题、定位问题。也可以根据监控数据发现系统瓶颈,提前感知故障,预判系统负载能力等。传统的性能监控系统升级成包含从业务、运维、研发视角的全景式全链路监控系统,即为APM系统的发展方向。
流量染色是为指定流量打上标签进行染色,然后此流量标签随着trace在整个调用链中传输。从而可以对特定的流量进行追踪和路由。此流量染色技术广泛用于全链路压测场景、AB测试场景等,在链路压测过程中,为了不影响正常的业务,需要在链路压测中对压测流量打上标记进行染色,从而将压测流量隔离到压测部署池中运行(计算节点),但是现有技术中,并没有基于调用链来进行流量染色,开发成本较大,对用户的干扰较大,存在影响正常业务的情况,接入和推广也不方便。
申请内容
为了解决上述背景技术中提到的至少一个问题,本申请提供了一种流量染色方法和系统,能够通过基于调用链的Baggage功能为指定流量染色且可以在全局中透明化传输,由于调用链已经存在,这样开发成本低,用户无感知,对用户的干扰小,接入和推广方便。
本申请实施例提供的具体技术方案如下:
第一方面,提供一种流量染色方法,应用于客户端,所述方法包括:
采集调用链;
获取流量染色标记,以供代理节点根据所述调用链和所述流量染色标记分发路由以及供代理节点将所述流量染色标记对应的流量导入对应的隔离部署池。
进一步的,所述获取流量染色标记,以供代理节点根据所述调用链和所述流量染色标记分发路由以及供代理节点将所述流量染色标记对应的流量导入对应的隔离部署池,具体包括:
接收并拦截进入代理节点的用户请求,根据所述用户请求获取流量染色标记,并将所述流量染色标记放入调用链中,
以供代理节点根据所述调用链获取所述流量染色标记,以供所述代理节点根据所述流量染色标记分发路由以及供代理节点将所述流量染色标记对应的流量导入对应的隔离部署池。
进一步的,所述调用链包括baggage功能,所述流量染色标记包括baggage-pref,所述根据所述用户请求获取流量染色标记,并将所述流量染色标记放入调用链中,
以供代理节点根据所述调用链获取所述流量染色标记,以供所述代理节点根据所述流量染色标记分发路由以及供代理节点将所述流量染色标记对应的流量导入对应的隔离部署池,包括:
获取设置在所述用户请求中的流量染色标记baggage-pref,并将所述baggage-pref放入调用链中,
以供代理节点根据所述调用链中的所述baggage功能获取所述流量染色标记baggage-pref,以供所述代理节点根据所述baggage-pref分发路由以及供代理节点将所述baggage-pref对应的流量导入对应的隔离部署池。
进一步的,所述方法还包括:
将所述流量染色标记设置到span中,以供所述流量染色标记向若干下游代理节点传递。
进一步的,所述方法还包括:
获取所述隔离部署池中的流量染色标记;
将所述隔离部署池中的流量染色标记设置到路由头部中或路由上下文中,以供所述流量染色标记向若干下游代理节点传递。
进一步的,在所述流量染色标记传递至任一所述下游代理节点时,所述方法还包括:
接收并拦截进入所述下游代理节点的下游用户请求,根据所述用户请求获取所述流量染色标记,并将所述流量染色标记放入调用链中,
以供所述下游代理节点根据所述调用链获取所述流量染色标记,以供所述下游代理节点根据所述流量染色标记分发路由以及供所述下游代理节点将所述流量染色标记对应的流量导入对应的下游隔离部署池。
进一步的,所述方法还包括:
获取所述下游隔离部署池中的流量染色标记;
将所述下游隔离部署池中的流量染色标记设置到路由头部中或路由上下文中,以供所述流量染色标记继续向更下游传递。
第二方面,提供一种流量染色系统,系统包括客户端、若干代理节点和若干隔离部署池,所述客户端包括:
采集模块,用于采集调用链;
接收模块,用于获取流量染色标记,以供代理节点根据所述调用链和所述流量染色标记分发路由以及供代理节点将所述流量染色标记对应的流量导入对应的隔离部署池。
第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述流量染色方法。
第四方面,提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行所述流量染色方法。
本申请实施例具有如下有益效果:
本申请实施例提供的一种流量染色方法和系统,能够基于调用链的baggage功能对指定流量进行染色,由于调用链已经存在,因此开发成本低;因为客户端采用探针采集,用户无感知,因此不会影响到正常业务,对用户的影响/干扰小,接入和推广也方便。另外,流量染色可以用于全链路压测场景、AB测试场景以及环境治理等场景中,应用广泛;通过流量染色可以区分出各种场景的流量,并针对不同的流量做出不同的处理,互不干扰,达到流量隔离的效果;同时,基于调用链的baggage功能可以通过baggage传递全局信息,在上下文进行透传,实现不同环境间的动态路由。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本申请实施例提供的流量染色方法的流程示意图;
图2示出根据本申请一个实施例的压测流量染色的工作流程示意图;
图3示出本申请实施例提供的流量染色系统的结构示意图;
图4示出可被用于实施本申请中所述的各个实施例的示例性系统;
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,在本申请的描述中,除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
还应当理解,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
需要注意的是,术语“S1”、“S2”等仅用于步骤的描述目的,并非特别指称次序或顺位的意思,亦非用以限定本申请,其仅仅是为了方便描述本申请的方法,而不能理解为指示步骤的先后顺序。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
本申请提供了一种流量染色方法和系统,其中,流量染色是基于调用链中的baggage功能为指定流量打上标签进行染色,然后此流量标签随着trace在整个调用链中传输,从而可以对特定的流量进行追踪和路由部署。
其中,在广义上,一个调用链代表一个事务或者流程在(分布式)系统中的执行过程。在OpenTracing标准中,调用链是多个Span组成的一个有向无环图(DirectedAcyclicGraph,简称DAG),每一个Span代表调用链中被命名并计时的连续性执行片段,一个Span代表应用中的一个逻辑操作。
另外,通过Baggage(是一个键值对集合)可以为指定流量打标签并且在全局中透明化传输,baggage依附在调用链span中。需要注意的是,baggage是全局传递的,父Span里面的baggage信息会自动被所有子span继承,这就是所谓的全局性。也就是你能在调用链上任意地方读取到该信息。通过baggage可以传递一些全局信息,下游服务可以获取这些全局信息并根据这些全局信息进行环境的切换,通过上下文实现不同环境间的动态路由。基于调用链的baggage,通过全链路上下文传递,可以实现各种维度的流量身份识别,实现流量染色、测试环境治理的功能。
实施例一
本申请提供了一种流量染色方法,应用于客户端,参照图1,流量染色方法包括:
S1、采集调用链;
S2、获取流量染色标记,以供代理节点根据调用链和流量染色标记分发路由以及供代理节点将流量染色标记对应的流量导入对应的隔离部署池。
具体的,上述客户端可以包括client,具体包括一种Mercury client。调用链是通过Mercury client采集的,Mercury client可以通过探针采集,其中,探针采集是指基于Java agent技术、filter技术等采集业务技术的调用行为和指标,但业务代码中没有实现这些逻辑,探针采集是自动透明采集的,用户是无感知的,因此不会影响到正常的业务,以便于获取和管理数据以及流量。调用链的架构可以参考前述详细描述,此处不再赘述。
具体的,流量染色标记可以包括baggage-pref,是通过基于调用链中的baggage功能为指定流量打上标签,该标签即为流量染色标记,即包括baggage-pref,baggage-pref可以在全局中透明化传输。需要注意的是,流量或是指定流量可以包括压测流量、测试流量以及其他定义流量。
具体的,流量染色是指根据流量协议设置对应的流量染色规则,对指定的流量(比如压测流量)进行染色标记,并在整个调用链中携带该流量染色标记(baggage-pref)。流量染色的目的在于通过流量染色可以对特定的流量进行跟踪或是路由,因此流量染色功能常常用于灰度发布的场景中,例如A/B测试场景。在正式发布前,可以使用流量染色技术先进行小规模验证,通过收集用户使用体验的数据,对应用新版本的功能、性能以及稳定性等指标进行评判,然后再根据评判结果进行升级。即使某个新版本或某个节点出现问题,也只会影响已染色的流量,不会将问题蔓延至整个系统,以保障整个系统的正常运行。
具体的,流量染色功能还可以用于性能压测,例如全链路的压测场景等。示例性的,在线上压测的场景中,为了让压测数据和正式的线上数据(即正常流量或是正常数据)实现隔离,常用的方法是对于消息队列,缓存,数据库使用影子的方式。因此,需要流量染色技术,带入一个tag进去,以说明该请求是测试数据/流量,还是真实数据/流量。另外,流量染色功能还可以用于多测试环境的治理。示例性的,在大规模微服务场景下,不可能每个部门部署一套完整的环境,因为耗费的资源量太大,此时就需要合理地规划测试环境。可以通过建立一个基准测试环境,对应Master分支,在其中部署全量的应用。每一个分支对应有更新的模块,在测试时,不需要部署全量的应用,仅需要将修改的多个工程对应去创建一个Delta测试环境即可。在客户端进行测试时,可以通过流量染色标记不同的测试分支流量,并将该流量路由至测试版本。当这些工程对应的服务之间相互调用时,微服务框架就会选择这些服务的实例进行调用,而若需要调用这些服务之外时,微服务框架会到Master环境中,选择服务实例进行调用。通过流量染色功能的环境治理机制,测试环境数量将会大大减少。
在一些实施例中,S2具体包括:
S21、接收并拦截进入代理节点的用户请求,根据用户请求获取流量染色标记,并将流量染色标记放入调用链中,
以供代理节点根据调用链获取流量染色标记,以供代理节点根据流量染色标记分发路由以及供代理节点将流量染色标记对应的流量导入对应的隔离部署池。
具体的,代理节点可以包括代理服务器、代理软件或是一种网络访问方式。代理节点可以包括一种proxy进程,可以包括proxyA、proxyB、proxyC等等,主要实现代理转发服务功能,这些服务可以通过客户端mercury client提供的baggage功能从调用链中获取到流量染色标记baggage-pref,然后根据该流量染色标记baggage-pref将对应的指定流量导入对应的隔离部署池。
具体的,用户请求可以包括压测请求、测试请求以及其他根据用户需求定制的请求,具体根据使用场景进行区分,流量染色的适用场景可以参考前述介绍,此处不作过多赘述。流量染色标记baggage-pref是用户设置在请求中的标记,用以区分流量是指定流量还是正常流量。
在一些实施例中,S21还包括:
S211、获取设置在用户请求中的流量染色标记baggage-pref,并将baggage-pref放入调用链中,以供代理节点根据调用链中的baggage功能获取流量染色标记baggage-pref,以供代理节点根据baggage-pref分发路由以及供代理节点将baggage-pref对应的流量导入对应的隔离部署池。
示例性的,参照图2,以全链路压测场景为例,用户为压测用户,用户请求对应为压测请求,压测用户通过在压测请求中设置流量染色标记baggage-pref,baggage-pref即为压测标记,向proxyA这个代理节点发送压测标记。客户端Mercury client接收并拦截该压测请求,并从压测请求中获取到设置在请求中的流量染色标记baggage-pref,然后将该流量染色标记baggage-pref放入调用链中。proxyA从调用链中获取到这个流量染色标记(通过Mercury client提供的baggageAPI),之后再根据流量染色标记baggage-pref决定路由的分发以及将该流量染色标记baggage-pref对应的流量导入ServiceA压测部署池中,完成与正常流量/数据相隔离。而流量染色标记baggage-pref在这个过程中一直随着压测流量进行传输。与此同时,正常流量还是导入ServiceA普通部署池中,继续实施正常业务,流量染色、压测过程中不会影响到正常的业务。
在一些实施例中,S2还包括:
S22、将流量染色标记设置到span中,以供流量染色标记向若干下游代理节点传递。
具体的,调用链(Trace)通过归属于此调用链的Span来隐性地定义。一条调用链可以视为一个由多个Span组成的有向无环图(DAG图)。父Span可以包括一个或多个子Span,通过将流量染色标记设置到span中,可以让流量染色标记随着调用链的调用关系向下游透传。
在一些实施例中,流量染色方法还包括:
S3、获取隔离部署池中的流量染色标记;将隔离部署池中的流量染色标记设置到路由头部中或路由上下文中,以供流量染色标记向若干下游代理节点传递。
示例性的,参照图2,在ServiceA压测部署池中,Mercury client从调用链获取到上游传递而来的压测标记baggage-pref,并将该流量染色压测标记baggage-pref设置到header或者路由上下文中,目的是为了让流量染色标记baggage-pref继续往下游传递,供下游的代理节点proxyB或是proxyC等等获取。
在一些实施例中,在流量染色标记传递至任一其他下游代理节点时,流量染色方法还包括:
S4、接收并拦截进入下游代理节点的下游用户请求,根据用户请求获取流量染色标记,并将流量染色标记放入调用链中,
以供下游代理节点根据调用链获取流量染色标记,以供下游代理节点根据流量染色标记分发路由以及供下游代理节点将流量染色标记对应的流量导入对应的下游隔离部署池。
具体的,上述下游代理节点可以是前述代理节点的下游代理节点,可以是proxyB、proxyC、proxyD等任一下游代理节点,提供转发服务,可以通过客户端mercury client提供的baggage功能从调用链中获取到流量染色标记baggage-pref,然后根据该流量染色标记baggage-pref将对应的指定流量导入对应的下游隔离部署池(例如对应的ServiceB压测部署池、ServiceC压测部署池、ServiceD压测部署池等等)。
在一些实施例中,流量染色方法还包括:
S5、获取下游隔离部署池中的流量染色标记;将下游隔离部署池中的流量染色标记设置到路由头部中或路由上下文中,以供流量染色标记继续向更下游传递。
示例性的,参照图2,在ServiceB压测部署池中,Mercury client从调用链获取到上游传递而来的压测标记baggage-pref,并将该流量染色压测标记baggage-pref继续设置到header或者路由上下文中,目的是为了让流量染色标记baggage-pref继续往更下游传递,供其余更下游的代理节点或代理服务获取。
在本实施例中,基于调用链的baggage功能对指定流量进行染色,由于调用链已经存在,因此开发成本低;因为客户端采用探针采集,用户无感知,因此不会影响到正常业务,对用户的影响/干扰小,接入和推广也方便。另外,流量染色可以用于全链路压测场景、AB测试场景以及环境治理等场景中,应用广泛;通过流量染色可以区分出各种场景的流量,并针对不同的流量做出不同的处理,互不干扰,达到流量隔离的效果;同时,基于调用链的baggage功能可以通过baggage传递全局信息,在上下文进行透传,实现不同环境间的动态路由。
实施例二
对应上述实施例,本申请还提供了一种流量染色系统,包括客户端、若干代理节点和若干隔离部署池,参照图3,客户端可以包括采集模块、接收模块和发送模块。
其中,客户端可以包括Mercury client,代理节点可以包括proxyA、proxyB、proxyC等proxy进程,隔离部署池可以包括ServiceA隔离部署池、ServiceB隔离部署池、ServiceC隔离部署池等部署池。需要注意的是,隔离部署池与普通部署池相区分,客户端、代理节点与部署池之间的交互可以参考实施例一中的详细介绍,此处不再赘述。
具体的,采集模块用于采集调用链。其中,客户端Mercury client通过探针采集调用链,调用链的架构以及采集的具体介绍可以参考实施例一中的详细介绍,此处不再赘述。
具体的,接收模块用于获取流量染色标记,以供代理节点根据调用链和流量染色标记分发路由以及供代理节点将流量染色标记对应的流量导入对应的隔离部署池。
进一步的,接收模块还可以用于接收并拦截进入代理节点的用户请求,根据用户请求获取流量染色标记,并将流量染色标记放入调用链中,
以供代理节点根据调用链获取流量染色标记,以供代理节点根据流量染色标记分发路由以及供代理节点将流量染色标记对应的流量导入对应的隔离部署池。
进一步的,调用链包括baggage功能,流量染色标记包括baggage-pref,接收模块还用于获取设置在用户请求中的流量染色标记baggage-pref,并将baggage-pref放入调用链中,
以供代理节点根据调用链中的baggage功能获取流量染色标记baggage-pref,以供代理节点根据baggage-pref分发路由以及供代理节点将baggage-pref对应的流量导入对应的隔离部署池。
进一步的,发送模块用于将上述流量染色标记设置到span中,以供流量染色标记向若干下游代理节点传递。
进一步的,接收模块还可以用于获取隔离部署池中的流量染色标记;发送模块用于将隔离部署池中的流量染色标记设置到路由头部中或路由上下文中,以供流量染色标记向若干下游代理节点传递。
进一步的,接收模块还可以用于接收并拦截进入下游代理节点的下游用户请求,根据用户请求获取流量染色标记,并将流量染色标记放入调用链中,
以供下游代理节点根据调用链获取流量染色标记,以供下游代理节点根据流量染色标记分发路由以及供下游代理节点将流量染色标记对应的流量导入对应的下游隔离部署池。
进一步的,接收模块还可以用于获取下游隔离部署池中的流量染色标记;发送模块还可以用于将下游隔离部署池中的流量染色标记设置到路由头部中或路由上下文中,以供流量染色标记继续向更下游传递。
实施例三
对应上述实施例,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时可以实现上述流量染色方法。
如图4所示,在一些实施例中,系统能够作为各所述实施例中的任意一个用于流量染色方法的上述电子设备。在一些实施例中,系统可包括具有指令的一个或多个计算机可读介质(例如,系统存储器或NVM/存储设备)以及与该一个或多个计算机可读介质耦合并被配置为执行指令以实现模块从而执行本申请中所述的动作的一个或多个处理器(例如,(一个或多个)处理器)。
对于一个实施例,系统控制模块可包括任意适当的接口控制器,以向(一个或多个)处理器中的至少一个和/或与系统控制模块通信的任意适当的设备或组件提供任意适当的接口。
系统控制模块可包括存储器控制器模块,以向系统存储器提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。
系统存储器可被用于例如为系统加载和存储数据和/或指令。对于一个实施例,系统存储器可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,系统存储器可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM)。
对于一个实施例,系统控制模块可包括一个或多个输入/输出(I/O)控制器,以向NVM/存储设备及(一个或多个)通信接口提供接口。
例如,NVM/存储设备可被用于存储数据和/或指令。NVM/存储设备可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD)、一个或多个光盘(CD)驱动器和/或一个或多个数字通用光盘(DVD)驱动器)。
NVM/存储设备可包括在物理上作为系统被安装在其上的设备的一部分的存储资源,或者其可被该设备访问而不必作为该设备的一部分。例如,NVM/存储设备可通过网络经由(一个或多个)通信接口进行访问。
(一个或多个)通信接口可为系统提供接口以通过一个或多个网络和/或与任意其他适当的设备通信。系统可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信。
对于一个实施例,(一个或多个)处理器中的至少一个可与系统控制模块的一个或多个控制器(例如,存储器控制器模块)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器中的至少一个可与系统控制模块的一个或多个控制器的逻辑封装在一起以形成系统级封装(SiP)。对于一个实施例,(一个或多个)处理器中的至少一个可与系统控制模块的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器中的至少一个可与系统控制模块的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(SoC)。
在各个实施例中,系统可以但不限于是:服务器、工作站、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)。在各个实施例中,系统可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,系统包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
通信介质包括藉此包含例如计算机可读指令、数据结构、程序模块或其他数据的通信信号被从一个系统传送到另一系统的介质。通信介质可包括有导的传输介质(诸如电缆和线(例如,光纤、同轴等))和能传播能量波的无线(未有导的传输)介质,诸如声音、电磁、RF、微波和红外。计算机可读指令、数据结构、程序模块或其他数据可被体现为例如无线介质(诸如载波或诸如被体现为扩展频谱技术的一部分的类似机制)中的已调制数据信号。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被更改或设定的信号。调制可以是模拟的、数字的或混合调制技术。
在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
实施例四
对应上述实施例,本申请还提供了一种计算机可读存储介质,存储有计算机可执行指令,计算机可执行指令用于执行流量染色方法。
在本实施例中,计算机可读存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。例如,计算机可读存储介质包括,但不限于,易失性存储器,诸如随机存储器(RAM,DRAM,SRAM);以及非易失性存储器,诸如闪存、各种只读存储器(ROM,PROM,EPROM,EEPROM)、磁性和铁磁/铁电存储器(MRAM,FeRAM);以及磁性和光学存储设备(硬盘、磁带、CD、DVD);或其它现在已知的介质或今后开发的能够存储供计算机系统使用的计算机可读信息/数据。
尽管已描述了本申请实施例中的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例中范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (8)
1.一种流量染色方法,应用于客户端,其特征在于,所述方法包括:
采集调用链,所述调用链包括baggage功能;
接收并拦截进入代理节点的用户请求,获取设置在所述用户请求中的流量染色标记,所述流量染色标记包括baggage-pref,并将所述baggage-pref放入调用链中,
以供代理节点根据所述调用链中的所述baggage功能获取所述流量染色标记baggage-pref,以供所述代理节点根据所述baggage-pref分发路由以及供代理节点将所述baggage-pref对应的流量导入对应的隔离部署池。
2.根据权利要求1所述的流量染色方法,其特征在于,所述方法还包括:
将所述流量染色标记设置到span中,以供所述流量染色标记向若干下游代理节点传递。
3.根据权利要求1~2中任意一项所述流量染色方法,其特征在于,所述方法还包括:
获取所述隔离部署池中的流量染色标记;
将所述隔离部署池中的流量染色标记设置到路由头部中或路由上下文中,以供所述流量染色标记向若干下游代理节点传递。
4.根据权利要求3所述的流量染色方法,其特征在于,在所述流量染色标记传递至任一所述下游代理节点时,所述方法还包括:
接收并拦截进入所述下游代理节点的下游用户请求,根据所述用户请求获取所述流量染色标记,并将所述流量染色标记放入调用链中,
以供所述下游代理节点根据所述调用链获取所述流量染色标记,以供所述下游代理节点根据所述流量染色标记分发路由以及供所述下游代理节点将所述流量染色标记对应的流量导入对应的下游隔离部署池。
5.根据权利要求4所述的流量染色方法,其特征在于,所述方法还包括:
获取所述下游隔离部署池中的流量染色标记;
将所述下游隔离部署池中的流量染色标记设置到路由头部中或路由上下文中,以供所述流量染色标记继续向更下游传递。
6.一种流量染色系统,包括客户端、若干代理节点和若干隔离部署池,其特征在于,所述客户端包括:
采集模块,用于采集调用链,所述调用链包括baggage功能;
接收模块,用于接收并拦截进入代理节点的用户请求,获取设置在所述用户请求中的流量染色标记,所述流量染色标记包括baggage-pref,并将所述baggage-pref放入调用链中,
以供代理节点根据所述调用链中的所述baggage功能获取所述流量染色标记baggage-pref,以供所述代理节点根据所述baggage-pref分发路由以及供代理节点将所述baggage-pref对应的流量导入对应的隔离部署池。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~5中任意一项所述流量染色方法。
8.一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令被处理执行时以实现权利要求1~5中任意一项所述流量染色方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111114500.4A CN113965510B (zh) | 2021-09-23 | 2021-09-23 | 一种流量染色方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111114500.4A CN113965510B (zh) | 2021-09-23 | 2021-09-23 | 一种流量染色方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113965510A CN113965510A (zh) | 2022-01-21 |
CN113965510B true CN113965510B (zh) | 2023-04-18 |
Family
ID=79462419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111114500.4A Active CN113965510B (zh) | 2021-09-23 | 2021-09-23 | 一种流量染色方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113965510B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115484313A (zh) * | 2022-09-13 | 2022-12-16 | 浙江网商银行股份有限公司 | 数据处理方法以及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111245738A (zh) * | 2020-01-08 | 2020-06-05 | 深圳市英威诺科技有限公司 | 一种流量染色方法 |
CN112199218A (zh) * | 2020-10-26 | 2021-01-08 | 北京百家科技集团有限公司 | 一种压测方法、装置、电子设备及存储介质 |
CN112953830A (zh) * | 2021-01-28 | 2021-06-11 | 北京邮电大学 | 时间敏感网络中流量帧的路由规划调度方法及装置 |
CN113157548A (zh) * | 2020-01-07 | 2021-07-23 | 阿里巴巴集团控股有限公司 | 测试方法、测试装置以及应用测试器 |
CN113382051A (zh) * | 2021-06-01 | 2021-09-10 | 中国民航信息网络股份有限公司 | 一种全链路的灰度发布方法及灰度发布系统 |
CN113422794A (zh) * | 2021-02-09 | 2021-09-21 | 阿里巴巴集团控股有限公司 | 流量录制、回放处理方法、装置及电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9798855B2 (en) * | 2010-01-07 | 2017-10-24 | Affymetrix, Inc. | Differential filtering of genetic data |
US20190199626A1 (en) * | 2017-12-26 | 2019-06-27 | Cisco Technology, Inc. | Routing traffic across isolation networks |
CN111245925B (zh) * | 2020-01-09 | 2021-08-24 | 北京理工大学 | 一种用于现代分布式微服务架构的通信方法与系统 |
CN112995310B (zh) * | 2021-02-10 | 2023-02-21 | 中国工商银行股份有限公司 | 基于自定义路由的多分层调用灰度发布方法及装置 |
CN113079064A (zh) * | 2021-03-26 | 2021-07-06 | 北京京东振世信息技术有限公司 | 压力检测方法、装置与电子设备 |
-
2021
- 2021-09-23 CN CN202111114500.4A patent/CN113965510B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157548A (zh) * | 2020-01-07 | 2021-07-23 | 阿里巴巴集团控股有限公司 | 测试方法、测试装置以及应用测试器 |
CN111245738A (zh) * | 2020-01-08 | 2020-06-05 | 深圳市英威诺科技有限公司 | 一种流量染色方法 |
CN112199218A (zh) * | 2020-10-26 | 2021-01-08 | 北京百家科技集团有限公司 | 一种压测方法、装置、电子设备及存储介质 |
CN112953830A (zh) * | 2021-01-28 | 2021-06-11 | 北京邮电大学 | 时间敏感网络中流量帧的路由规划调度方法及装置 |
CN113422794A (zh) * | 2021-02-09 | 2021-09-21 | 阿里巴巴集团控股有限公司 | 流量录制、回放处理方法、装置及电子设备 |
CN113382051A (zh) * | 2021-06-01 | 2021-09-10 | 中国民航信息网络股份有限公司 | 一种全链路的灰度发布方法及灰度发布系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113965510A (zh) | 2022-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109992498B (zh) | 测试用例的生成方法及系统、计算机系统 | |
US8972942B2 (en) | Unit testing an Enterprise Javabeans (EJB) bean class | |
US10824549B1 (en) | System and method for regression testing of an application programming interface | |
CN109101430A (zh) | 测试方法、装置和设备 | |
US20220261894A1 (en) | Method and apparatus for issuing smart contract | |
US20180159724A1 (en) | Automatic task tracking | |
Ciman et al. | Evaluating Impact of Cross-platform Frameworks in Energy Consumption of Mobile Applications. | |
US20140157057A1 (en) | Code-free testing framework | |
CN113965510B (zh) | 一种流量染色方法和系统 | |
CN109558323A (zh) | 用于调试页面的系统、方法和装置 | |
US20200201984A1 (en) | Communicating trace information between security zones | |
CN110908967A (zh) | 用于存储日志的方法、装置、设备和计算机可读介质 | |
CN113505895B (zh) | 一种机器学习引擎服务系统及模型训练方法和配置方法 | |
JP7090131B2 (ja) | 情報を生成するための方法及び装置 | |
US8966455B2 (en) | Flow analysis in program execution | |
CN106776285A (zh) | 网页前端调试方法及装置 | |
CN109542775A (zh) | 一种测试脚本的生成和执行方法及装置 | |
JP2023021137A (ja) | ソフトウェア実体間のイベントの決定的再現 | |
CN112882921B (zh) | 故障模拟方法和装置 | |
CN115309657A (zh) | 一种用于提供测试用例的方法、设备、介质及程序产品 | |
CN113407229B (zh) | 用于生成离线脚本的方法及装置 | |
US20200104291A1 (en) | Performing an action within a machine-generated big data environment | |
CN113448578A (zh) | 页面数据处理方法、处理系统、电子设备和可读存储介质 | |
CN112819621A (zh) | 一种智能合约资损测试方法及系统 | |
US20190190981A1 (en) | Intelligent trace generation from compact transaction runtime data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |