CN117008951A - 节点调试方法、装置及存储介质 - Google Patents

节点调试方法、装置及存储介质 Download PDF

Info

Publication number
CN117008951A
CN117008951A CN202310404755.7A CN202310404755A CN117008951A CN 117008951 A CN117008951 A CN 117008951A CN 202310404755 A CN202310404755 A CN 202310404755A CN 117008951 A CN117008951 A CN 117008951A
Authority
CN
China
Prior art keywords
node
target gray
target
service
gray
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.)
Pending
Application number
CN202310404755.7A
Other languages
English (en)
Inventor
陈小平
程铄生
尹泉
邱晓辉
黄文强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Foshan Viomi Electrical Technology Co Ltd
Original Assignee
Foshan Viomi Electrical Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Foshan Viomi Electrical Technology Co Ltd filed Critical Foshan Viomi Electrical Technology Co Ltd
Priority to CN202310404755.7A priority Critical patent/CN117008951A/zh
Publication of CN117008951A publication Critical patent/CN117008951A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供节点调试方法、装置及存储介质。本申请的技术方案中,电子设备在微服务的新版本服务节点上线运行之前,发布目标灰度节点,该目标灰度节点与新版本服务节点相匹配;然后将电子设备的正常流量加载至目标灰度节点中运行,该正常流量为使用用户的流量;最后在目标正常流量在目标灰度节点中的运行结果异常的情况下,对目标灰度节点进行在线调试;其中,目标灰度节点位于灰度环境中,灰度环境为预先根据电子设备的当前的线上生产环境创建得到的。本申请提供的方法中,首先发布目标灰度节点,在线上生产环境中对存在异常的目标灰度节点进行在线调试,从而实现在生产环境中对节点进行测试并提升新版本服务节点发布后整体***的稳定性。

Description

节点调试方法、装置及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及节点调试方法、装置及存储介质。
背景技术
随着计算机技术的发展,微服务的使用越来越广泛。微服务是细粒度的独立的服务,可以包括多个节点。通常情况下,微服务在使用的过程中,经常会需要更新版本,以更好的实现其功能和满足用户需求。
目前微服务在更新服务版本时,会先发布新版本的节点,在新版本的节点更新完成后即投入使用。其中,在微服务的版本更新过程中,通常是以滚动发布的方式发布新版本的节点,然而,滚动发布的方式通常情况下只能在测试环境中进行节点测试,无法在生产环境中进行节点测试;且基于测试流量对节点进行一次测试后,即认定该节点为可发布的新版本的节点,造成节点的测试效果不佳。
因此,如何在微服务的节点发布过程中,实现在生产环境中对节点进行测试并提升新版本服务节点发布后整体***的稳定性,是一个亟待解决的问题。
发明内容
本申请提供一种节点调试方法、装置及存储介质,可以实现在生产环境中对节点进行测试并提升新版本服务节点发布后整体***的稳定性。
第一方面,本申请提供一种节点调试方法,应用于电子设备,所述方法包括:
在微服务的新版本服务节点上线运行之前,发布目标灰度节点,所述目标灰度节点与所述新版本服务节点相匹配;
将所述电子设备的正常流量加载至所述目标灰度节点中运行,所述正常流量为使用用户的流量;
在目标正常流量在所述目标灰度节点中的运行结果异常的情况下,对所述目标灰度节点进行在线调试;
其中,所述目标灰度节点位于灰度环境中,所述灰度环境为预先根据所述电子设备的当前的线上生产环境创建得到的。
在本申请实施例中,在微服务的新版本服务节点上线运行之前,发布新版本服务节点相匹配目标灰度节点;然后将电子设备的正常流量加载至目标灰度节点中运行,该正常流量为使用用户的流量;最后在目标正常流量在目标灰度节点中的运行结果异常的情况下,对目标灰度节点进行在线调试。在该方法中,服务器在新版本服务节点正式上线运行之前,首先发布目标灰度节点,然后使用用户的流量测试该目标灰度节点是否存在异常,以在目标灰度节点存在异常的情况下,在线上生产环境中对存在异常的目标灰度节点进行在线调试,从而能够实现在生产环境中对节点进行测试并提升新版本服务节点发布后整体***的稳定性。
在一些实施例中,在所述对所述目标灰度节点进行在线调试之前,所述方法还包括:
切断加载至所述目标灰度节点的其他正常流量。
实施该实施例,可以实现排除其他流量对节点调试过程的干扰,提高调试准确度。
在一些实施例中,所述微服务还包括旧版本服务节点,所述切断加载至所述目标灰度节点的其他正常流量,包括:
将所述其他正常流量切换至所述旧版本服务节点运行。
实施该实施例,可保证切换过程的用户无感知,提升用户体验感。
在一些实施例中,在所述对所述目标灰度节点进行在线调试之前,所述方法还包括:
保持所述目标正常流量在所述目标灰度节点中的运行数据不发生变化。
实施该实施例,通过保持目标正常流量的运行数据不变,实现保留运行现场的功能,以在后期调试时可基于出现异常的运行数据进行调试,保证调试的准确性。
在一些实施例中,所述对所述目标灰度节点进行在线调试,包括:
将预设的测试流量加载至所述目标灰度节点;
通过所述预设的测试流量对所述目标灰度节点进行调试。
实施该实施例,通过测试流量对目标灰度节点进行调试,鉴于测试流量的稳定性和已知性,调试过程更可靠。
在一些实施例中,所述通过所述预设的测试流量对所述目标灰度节点进行调试,包括:
通过所述预设的测试流量在所述目标灰度节点的运行数据,对所述目标灰度节点进行调试;或,
获取与所述预设的测试流量的微服务调用链对应的所有的服务节点的运行数据,根据所述所有的服务节点的运行数据,对所述目标灰度节点进行调试,所述所有的服务节点包括所述目标灰度节点。
实施该实施例,提供不同的在线调试方法,扩宽使用场景并能够提高调试准确性。
在一些实施例中,与所述预设的测试流量对应的请求信息中包括目标灰度追踪字段,所述获取与所述预设的测试流量的微服务调用链对应的所有的服务节点的运行数据,包括:
获取包括所述目标灰度追踪字段的目标运行数据,所述目标运行数据为与所述预设的测试流量的微服务调用链对应的所有的服务节点的运行数据。
实施该实施例,提供一种查找运行数据的方法,能够简单快速地获取到运行数据,以方便后续进行调试,提高调试效率。
在一些实施例中,所述电子设备还包括灰度节点清单,所述灰度节点清单中包括所述微服务所包括的所有灰度节点的标识以及状态信息,在所述对所述目标灰度节点进行在线调试之前,所述方法还包括:
在所述灰度节点清单中将所述目标灰度节点的状态信息更新为不可用状态。
实施该实施例,通过将出现异常的目标灰度节点更新为不可用,能够避免其他的正常流量加载至该不可用的目标灰度节点上,从而提升新版本服务节点的运行稳定性。
第二方面,本申请提供一种节点调试装置,所述装置包括:
发布模块,用于在微服务的新版本服务节点上线运行之前,发布目标灰度节点,所述目标灰度节点与所述新版本服务节点相匹配;
加载模块,用于将所述电子设备的正常流量加载至所述目标灰度节点中运行,所述正常流量为使用用户的流量;
调试模块,用于在目标正常流量在所述目标灰度节点中的运行结果异常的情况下,对所述目标灰度节点进行在线调试;
其中,所述目标灰度节点位于灰度环境中,所述灰度环境为预先根据所述电子设备的当前的线上生产环境创建得到的。
在一些实施例中,所述装置还包括处理模块,所述处理模块,用于切断加载至所述目标灰度节点的其他正常流量。
在一些实施例中,所述微服务还包括旧版本服务节点,所述处理模块,具体用于将所述其他正常流量切换至所述旧版本服务节点运行。
在一些实施例中,所述处理模块,还用于保持所述目标正常流量在所述目标灰度节点中的运行数据不发生变化。
在一些实施例中,所述调试模块,具体用于将预设的测试流量加载至所述目标灰度节点;通过所述预设的测试流量对所述目标灰度节点进行调试。
在一些实施例中,所述装置还包括获取模块,所述调试模块,具体还用于通过所述预设的测试流量在所述目标灰度节点的运行数据,对所述目标灰度节点进行调试;或,所述获取模块,用于获取与所述预设的测试流量的微服务调用链对应的所有的服务节点的运行数据;所述调试模块,具体还用于根据所述所有的服务节点的运行数据,对所述目标灰度节点进行调试,所述所有的服务节点包括所述目标灰度节点。
在一些实施例中,与所述预设的测试流量对应的请求信息中包括目标灰度追踪字段,所述获取模块,具体用于获取包括所述目标灰度追踪字段的目标运行数据,所述目标运行数据为与所述预设的测试流量的微服务调用链对应的所有的服务节点的运行数据。
在一些实施例中,所述电子设备还包括灰度节点清单,所述灰度节点清单中包括所述微服务所包括的所有灰度节点的标识以及状态信息,所述装置还包括更新模块,所述更新模块,用于在所述灰度节点清单中将所述目标灰度节点的状态信息更新为不可用状态。
第三方面,本申请提供一种电子设备,包括处理器和存储器,所述存储器用于存储代码指令;所述处理器用于运行所述代码指令,以实现上述第一方面中的方法。
可选地,处理器为一个或多个,存储器为一个或多个。
可选地,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
第四方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序(也可以称为代码,或指令)当其在计算机上运行时,使得计算机执行上述第一方面中的方法。
第五方面,本申请提供一种计算机程序产品,所述计算机程序产品包括:计算机程序(也可以称为代码,或指令),当计算机程序被运行时,使得计算机执行上述第一方面中的方法。
附图说明
图1是本申请一个实施例提供的一种应用场景的示意图;
图2为本申请一个实施例提供的另一种应用场景的示意图;
图3为本申请一个实施例提供的一种节点调试方法的流程图;
图4为本申请一个实施例提供的另一节点调试方法的流程图;
图5为本申请一个实施例提供的对灰度节点进行调试的流程图;
图6为本申请一个实施例提供的节点发布方法的流程图;
图7为本申请一个实施例提供的节点调试装置的结构性示意图;
图8为本申请另一个实施例提供的节点调试装置的结构性示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一指令和第二指令是为了区分不同的用户指令,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
此外,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b和c中的至少一项(个),可以表示:a,或b,或c,或a和b,或a和c,或b和c,或a、b和c,其中a,b,c可以是单个,也可以是多个。
随着计算机技术的发展,微服务的使用越来越广泛。微服务是一种架构风格,即,一个应用应该是一组小型服务,每个服务器只负责一种服务,服务之间可以通过超文本传输协议(hyper text transfer protocol,HTTP)的方式进行互通,每一个功能元素最终都是一个可独立替换和独立升级的软件单元。通常情况下,现在的用户在互联网上会使用各种各样的微服务,例如微信的信息分享服务、视频软件的会员用户信息查询服务等,这些服务通常需要不断的升级更新,以更好的实现其功能和满足用户需求。
下面对相关技术中的微服务版本更新过程进行说明。以服务器上的微服务版本更新为例,示例性地,服务器在获取到一个微服务的新版本服务发布请求时,会获取该微服务所包括的所有节点,然后将该微服务所包括的所有节点下线,然后发布新版本的节点,以实现微服务的版本更新。
目前在微服务的版本更新过程中,通常是以滚动发布的方式发布新版本的节点,然而,滚动发布的方式通常情况下只能在测试环境中进行节点测试,无法在生产环境中进行节点测试;且基于测试流量对节点进行一次测试后,即认定该节点为可发布的新版本的节点,则会造成节点的测试效果不佳。
因此,如何在微服务的节点发布过程中,实现在生产环境中进行测试且提升新版本服务节点发布后整体***的稳定性,是一个亟待解决的问题。
有鉴于此,本申请实施例提供了一种节点调试方法、装置及存储介质。在本申请实施例中,在微服务的新版本服务节点上线运行之前,发布新版本服务节点相匹配目标灰度节点;然后将电子设备的正常流量加载至目标灰度节点中运行,该正常流量为使用用户的流量;最后在目标正常流量在目标灰度节点中的运行结果异常的情况下,对目标灰度节点进行在线调试。在该方法中,服务器在新版本服务节点正式上线运行之前,首先发布目标灰度节点,然后使用用户的流量测试该目标灰度节点是否存在异常,以在目标灰度节点存在异常的情况下,在线上生产环境中对存在异常的目标灰度节点进行在线调试,从而保证在新版本服务节点发布后整体***的稳定性。
为了使本申请的目的、技术方案更加清楚直观,下面将结合附图及实施例,对本申请实施例提供的方法、装置及存储介质进行详细说明。应理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
请参考图1,为本申请实施例提供的应用场景的一种示例的示意图。如图1所示,该应用场景100可以包括终端设备101和服务器102,其中,终端设备101和服务器102可以通过网络进行通信,以实现服务器102中的版本更新。
请参考图2,为本申请实施例提供的应用场景的另一种示例的示意图。如图2所示,该应用场景110可以包括终端设备111、平台服务器112以及后端服务器113,其中,终端设备111通过平台服务器112与后端服务器113进行通信。
这里,终端设备101或者终端设备111可以是手机(mobile phone)、平板电脑、笔记本电脑、掌上电脑、可穿戴设备、移动互联网设备(mobile internet device,MID)、虚拟现实(virtual reality,VR)设备、智慧屏、增强现实(augmented reality,AR)设备、人工智能(artificial intelligence,AI)音响、耳机、工业控制(industrial control)中的终端、无人驾驶(self driving)中的终端、远程手术(remote medical surgery)中的终端、智能电网(smart grid)中的终端、运输安全(transportation safety)中的终端、智慧城市(smartcity)中的终端、智慧家庭(smart home)中的终端、个人数字助理(personal digitalassistant,PDA)等,本申请实施例对此并不限定。
服务器102以及后端服务器113,可以用独立的服务器或者是多个服务器组成的服务器集群来实现,本申请对此不做限定。且,服务器102以及后端服务器113可以是集中式服务器也可以是分布式服务器,在此不作限制。
下面,结合应用场景,对本申请实施例提供的节点调试方法进行详细说明。请参考图3,为本申请实施例提供的节点调试方法的一种示例的流程图。该方法可以应用于如图1所示的服务器102,也可以应用于如图2所示的后端服务器113,为方便说明,下面将以该方法应用在图1所示服务器102为例,图3所示的方法中的各个步骤的描述如下:
S301,在微服务的新版本服务节点上线运行之前,发布目标灰度节点,目标灰度节点与新版本服务节点相匹配。
应理解,服务器在接收到来自终端设备或其他设备发送的微服务的新版本服务节点上线请求之后,在新版本服务节点上线运行之前,可先发布目标灰度节点,该目标灰度节点与即将发布的新版本服务节点相匹配,可以实现新版本服务节点的相关功能。
所谓目标灰度节点与即将发布的新版本服务节点相匹配,可为将各测试后可用的目标灰度节点即确定为新版本服务节点投入使用;也可为对各目标灰度节点进行测试,基于各测试后可用的目标灰度节点重新创建对应的新版本服务节点,该新版本服务节点至少具备目标灰度节点的全部功能。
在本申请实施例中,对于目标灰度节点的具体数量不作限定,如目标灰度节点可以为一个,也可以为多个。
S302,将电子设备的正常流量加载至目标灰度节点中运行,正常流量为使用用户的流量。
在一可行的实施例中,在微服务的新版本服务节点上线运行之前,服务器先发布目标灰度节点,并基于测试流量对该目标灰度节点的流量承载能力进行测试。
进一步地,在另一可行的实施例中,在确定目标灰度节点的流量承载能力满足条件后,为进一步确定目标灰度节点是否可承载使用用户的流量,则模拟真实使用环境,使用正常流量确定目标灰度节点的可用性。
应理解,在测试流量是否可在目标灰度节点中正常运行时,是基于正常流量,也即使用用户的流量来测试的。
还应理解,将正常流量加载至目标灰度节点的过程中,还可以基于正常流量的数量,考虑是否对目标灰度节点的数量进行调整,以更好的满足测试需求。
S303,在目标正常流量在目标灰度节点中的运行结果异常的情况下,对目标灰度节点进行在线调试。
应理解,当确定目标正常流量在目标灰度节点中的运行结果异常时,则可确定该目标灰度节点不能够承载目标正常流程的正常使用,也即目标灰度节点不可用,此时则需对目标灰度节点进行在线调试。
需要说明的是,目标灰度节点位于灰度环境中,灰度环境为预先根据电子设备的当前的线上生产环境创建得到的。基于此,在本申请实施例中,对目标灰度节点进行调试,是在线上生产环境中进行调试的。也就是说,不需要另外在测试环境中对目标灰度节点进行调试,而是能够实现线上调试。
在该实施例中,服务器在新版本服务节点正式上线运行之前,首先发布目标灰度节点,然后使用用户的流量测试该目标灰度节点是否存在异常,以在目标灰度节点存在异常的情况下,在线上生产环境中对存在异常的目标灰度节点进行在线调试,从而能够实现在生产环境中对节点进行测试并提升新版本服务节点发布后整体***的稳定性。
基于上述实施例,图4为本申请另一个实施例提供的节点调试方法的流程图,图4所示的方法中的各个步骤的描述如下:
S401,在微服务的新版本服务节点上线运行之前,发布目标灰度节点,目标灰度节点与新版本服务节点相匹配。
该步骤和图3所示的实施例中的步骤S301相似,在此不再赘述。
S402,将电子设备的正常流量加载至目标灰度节点中运行,正常流量为使用用户的流量。
该步骤和图3所示的实施例中的步骤S302相似,在此不再赘述。
S403,在目标正常流量在目标灰度节点中的运行结果异常的情况下,切断加载至目标灰度节点的其他正常流量。
应理解,在当确定目标正常流量在目标灰度节点中的运行结果异常时,则可确定该目标灰度节点不能够承载目标正常流程的正常使用,因此可切断加载至目标灰度节点的其他正常流量。这样,一方面可以实现排除其他流量对节点调试过程的干扰,提高调试准确度;另一方面,还可保证其他正常流量的正常使用。
需要说明的是,这里在切断加载至目标灰度节点的其他正常流量时,可为切断已加载至目标灰度节点但还未运行的其他正常流量,也可为即将加载至该目标灰度节点的其他正常流量,本申请实施例对此不作限定。
在本申请实施例中,对于切断加载至目标灰度节点的其他正常流量的具体方式不作限定。如在一可行的实施例中,可直接丢弃加载至目标灰度节点的其他正常流量,以实现对其他正常流量的切断。
在另一种可行的实施例中,微服务还包括旧版本服务节点,切断加载至目标灰度节点的其他正常流量,可为将其他正常流量切换至旧版本服务节点运行。
实施该实施例,可保证切换过程的用户无感知,提升用户体验感。
S404,保持目标正常流量在目标灰度节点中的运行数据不发生变化。
应理解,保持目标正常流量在目标灰度节点中的运行数据不发生变化,即为在目标正常流量在目标灰度节点中运行时,对于运行数据和运行出现异常的结果等参数均保持其不发生变化。
实施该实施例,通过保持目标正常流量的运行数据不变,实现保留运行现场的功能,以在后期调试时可基于出现异常的运行数据进行调试,保证调试的准确性。
S405,在灰度节点清单中将目标灰度节点的状态信息更新为不可用状态。
应理解,电子设备还包括灰度节点清单,灰度节点清单中包括微服务所包括的所有灰度节点的标识以及状态信息。
在确定目标正常流量在目标灰度节点中的运行结果异常时,即可将灰度节点清单中的目标灰度节点的状态信息更新为不可用状态,这样,后续服务器就不会继续调用其他正常流量至该不可用的目标灰度节点上。
实施该实施例,通过将出现异常的目标灰度节点更新为不可用,能够避免其他的正常流量加载至该不可用的目标灰度节点上,从而提升新版本服务节点的运行稳定性。
S406,将预设的测试流量加载至目标灰度节点,通过预设的测试流量对目标灰度节点进行调试。
应理解,在对目标灰度节点进行调试时,可使用预设的测试流量对目标灰度节点进行调试。鉴于测试流量的可控性和已知性,可使得调试结果更为稳定可靠,并可把控。
在本申请实施例中,对于通过预设的测试流量对目标灰度节点进行调试的具体方式不作限定。
如在一种可能的实施方式中,通过预设的测试流量对目标灰度节点进行调试,可为通过预设的测试流量在目标灰度节点的运行数据,对目标灰度节点进行调试。
应理解,在该实施方式中,仅基于预设的测试流量在目标灰度节点上的运行数据来对目标灰度节点进行调试。
在另一种可能的实施方式中,通过预设的测试流量对目标灰度节点进行调试,可执行如图5所示的步骤:
S501,获取与预设的测试流量的微服务调用链对应的所有的服务节点的运行数据。
应理解,在该实施方式中,是基于预设的测试流量在其所对应的所有的服务节点上的运行数据,来对目标灰度节点进行调试的。
因此,如何获取预设的测试流量对应的所有的服务节点是一个待解决的问题。
基于此,在一种可能的实施方式中,与预设的测试流量对应的请求信息中包括目标灰度追踪字段。在此基础上,实施步骤S501,可为获取包括目标灰度追踪字段的目标运行数据,该目标运行数据为与预设的测试流量的微服务调用链对应的所有的服务节点的运行数据。
这样,通过获取包括目标灰度追踪字段的目标运行数据,即可认定已获取到预设的测试流量所对应的所有的服务节点的运行数据。
为方便理解,进行如下解释。由于微服务中需要发布目标灰度节点,则相应的微服务需要接入灰度组件和配置链路追踪信息,该链路追踪信息用于追踪灰度某些信息,如该链路追踪信息可为追踪字段。
基于不同的测试流量对应的追踪字段的不同,则可在所有的运行数据中查找出携带有预设的测试流量所对应的目标灰度追踪字段的运行数据,将其作为目标运行数据。
示例性地,在微服务架构中,接口的调用通常是服务消费方按照某种负载均衡策略去选择服务实例(即服务节点),但这无法满足线上更特殊化的一些路由逻辑,比如根据一次请求携带的请求头中的信息路由到某一个服务实例上,因此创建了灰度组件架构“Spring Cloud Gray”,以及在灰度组件中配置相应的链路追踪信息。
在“Spring Cloud Gray”中定义了几个角色,包括灰度客户端(gray-client)、灰度管控端(gray-admin)和注册中心。其中,注册中心负责服务的注册和发现;灰度客户端是指依赖了灰度路由策略(spring-cloud-gray-client)的服务,一般是指服务消费方;灰度管控端负责灰度信息的管理、持久化等维护工作。
相应的,注册中心、灰度客户端和灰度管控端之间的关系如图6所示,灰度客户端中包括灰度路由策略,灰度客户端会从灰度管控端拉取一份灰度信息的清单,并在内存中维护这份灰度清单信息,该清单中包含服务,服务实例,灰度策略,灰度追踪字段等。灰度管控端中会维护实例的灰度状态以及实例的灰度策略,同时还会向灰度客户端发送更新的灰度信息,灰度客户端也会主动向灰度管控端获取依赖服务的灰度信息。注册中心中包括服务发现组件和服务注册组件,用于执行发现和注册服务,例如灰度客户端会向注册中心注册服务,灰度管控端也会向注册中心注册服务以及获取所有服务的实例信息。
示例性地,当请求达到网关时,网关就会在灰度客户端的灰度追踪中根据配置的链路追踪信息将需要透传的信息记录下来,并将传递给转发的服务实例,后面的接口调用也会按照同样的逻辑将追踪信息透传下去,从而保证所有一个请求在微服务调用链中的灰度路由。
需要说明的是,一个目标灰度节点相当于一个实例。
实施该实施例,提供一种查找运行数据的方法,能够简单快速地获取到运行数据,以方便后续进行调试,提高调试效率。
S502,根据所有的服务节点的运行数据,对目标灰度节点进行调试,所有的服务节点包括目标灰度节点。
应理解,所述所有的服务节点,可为包括各灰度节点和各旧版本服务节点在内的所有节点,也可为仅包括各灰度节点在内的所有节点,本申请实施例对此不作限定。
实施该实施例,可综合预设的测试流量所对应的所有服务节点上的运行数据共同对目标灰度节点进行调试,从而能够提高调试准确性。
实施上述实施例,可提供不同的在线调试方法,扩宽使用场景并能够提高调试准确性。
该实施例中,服务器在新版本服务节点正式上线运行之前,首先发布目标灰度节点,然后使用正常流量测试该目标灰度节点是否存在异常,以在目标灰度节点存在异常的情况下,在线上生产环境中及时对存在异常的目标灰度节点进行在线调试,从而能够在新版本服务节点发布之前,及时在生产环境中对节点进行测试,从而提升新版本服务节点发布后整体***的稳定性。
还应理解,上述各个实施例之间也可以相互耦合,本申请对此不作限定。且上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上文中结合图1至图6,详细描述了本申请实施例的节点调试方法,下面将结合图7和图8,详细描述本申请实施例的装置。
图7为本申请一个实施例提供的节点调试装置700的结构性示意图,该装置700包括:发布模块701、加载模块802和调试模块703。
其中,发布模块701,用于在微服务的新版本服务节点上线运行之前,发布目标灰度节点,所述目标灰度节点与所述新版本服务节点相匹配;加载模块802,用于将所述电子设备的正常流量加载至所述目标灰度节点中运行,所述正常流量为使用用户的流量;调试模块703,用于在目标正常流量在所述目标灰度节点中的运行结果异常的情况下,对所述目标灰度节点进行在线调试;其中,所述目标灰度节点位于灰度环境中,所述灰度环境为预先根据所述电子设备的当前的线上生产环境创建得到的。
在一些实施例中,所述装置还包括处理模块,所述处理模块,用于切断加载至所述目标灰度节点的其他正常流量。
在一些实施例中,所述微服务还包括旧版本服务节点,所述处理模块,具体用于将所述其他正常流量切换至所述旧版本服务节点运行。
在一些实施例中,所述处理模块,还用于保持所述目标正常流量在所述目标灰度节点中的运行数据不发生变化。
在一些实施例中,所述调试模块,具体用于将预设的测试流量加载至所述目标灰度节点;通过所述预设的测试流量对所述目标灰度节点进行调试。
在一些实施例中,所述装置还包括获取模块,所述调试模块,具体还用于通过所述预设的测试流量在所述目标灰度节点的运行数据,对所述目标灰度节点进行调试;或,所述获取模块,用于获取与所述预设的测试流量的微服务调用链对应的所有的服务节点的运行数据;所述调试模块,具体还用于根据所述所有的服务节点的运行数据,对所述目标灰度节点进行调试,所述所有的服务节点包括所述目标灰度节点。
在一些实施例中,与所述预设的测试流量对应的请求信息中包括目标灰度追踪字段,所述获取模块,具体用于获取包括所述目标灰度追踪字段的目标运行数据,所述目标运行数据为与所述预设的测试流量的微服务调用链对应的所有的服务节点的运行数据。
在一些实施例中,所述电子设备还包括灰度节点清单,所述灰度节点清单中包括所述微服务所包括的所有灰度节点的标识以及状态信息,所述装置还包括更新模块,所述更新模块,用于在所述灰度节点清单中将所述目标灰度节点的状态信息更新为不可用状态。
应理解,这里的装置700以功能模块的形式体现。这里的术语“模块”可以指应用特有集成电路(application specific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。在一个可选例子中,本领域技术人员可以理解,装置700可以具体为上述实施例中的电子设备,或者,上述实施例中电子设备的功能可以集成在装置700中,装置700可以用于执行上述方法实施例中与电子设备对应的各个流程和/或步骤,为避免重复,在此不再赘述。
上述装置700具有实现上述方法中电子设备执行的相应步骤的功能;上述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
图8为本申请另一个实施例提供的节点调试装置的结构性示意图。图7所示的节点调试装置可以用于执行前述任意一个实施例的方法。
如图8所示,本实施例的装置800包括:存储器801、处理器802、通信接口803以及总线804。其中,存储器801、处理器802、通信接口803通过总线804实现彼此之间的通信连接。
其中,处理器802用于:在微服务的新版本服务节点上线运行之前,发布目标灰度节点,所述目标灰度节点与所述新版本服务节点相匹配;将所述电子设备的正常流量加载至所述目标灰度节点中运行,所述正常流量为使用用户的流量;在目标正常流量在所述目标灰度节点中的运行结果异常的情况下,对所述目标灰度节点进行在线调试;其中,所述目标灰度节点位于灰度环境中,所述灰度环境为预先根据所述电子设备的当前的线上生产环境创建得到的。
在一些实施例中,处理器802用于:切断加载至所述目标灰度节点的其他正常流量。
在一些实施例中,处理器802用于:将所述其他正常流量切换至旧版本服务节点运行。
在一些实施例中,处理器802用于:保持所述目标正常流量在所述目标灰度节点中的运行数据不发生变化。
在一些实施例中,处理器802用于:将预设的测试流量加载至所述目标灰度节点;通过所述预设的测试流量对所述目标灰度节点进行调试。
在一些实施例中,处理器802用于:通过所述预设的测试流量在所述目标灰度节点的运行数据,对所述目标灰度节点进行调试;或,获取与所述预设的测试流量的微服务调用链对应的所有的服务节点的运行数据,根据所述所有的服务节点的运行数据,对所述目标灰度节点进行调试,所述所有的服务节点包括所述目标灰度节点。
在一些实施例中,处理器802用于:获取包括目标灰度追踪字段的目标运行数据,所述目标运行数据为与所述预设的测试流量的微服务调用链对应的所有的服务节点的运行数据。
在一些实施例中,处理器802用于:在灰度节点清单中将所述目标灰度节点的状态信息更新为不可用状态。
存储器801可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器801可以存储程序,当存储器801中存储的程序被处理器802执行时,处理器802用于执行上述实施例中所示的方法的各个步骤。
处理器802可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例中所示的各个方法。
处理器802还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请实施例的方法的各个步骤可以通过处理器802中的硬件的集成逻辑电路或者软件形式的指令完成。
上述处理器802还可以是通用处理器、数字信号处理器(digital signalprocessing,DSP)、ASIC、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器801,处理器802读取存储器801中的信息,结合其硬件完成本申请装置包括的单元所需执行的功能。
通信接口803可以使用但不限于收发器一类的收发装置,来实现装置800与其他设备或通信网络之间的通信。
总线804可以包括在装置800各个部件(例如,存储器801、处理器802、通信接口803)之间传送信息的通路。
应理解,本申请实施例所示的装置800可以是电子设备,或者,也可以是配置于电子设备中的芯片。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (11)

1.一种节点调试方法,其特征在于,应用于电子设备,所述方法包括:
在微服务的新版本服务节点上线运行之前,发布目标灰度节点,所述目标灰度节点与所述新版本服务节点相匹配;
将所述电子设备的正常流量加载至所述目标灰度节点中运行,所述正常流量为使用用户的流量;
在目标正常流量在所述目标灰度节点中的运行结果异常的情况下,对所述目标灰度节点进行在线调试;
其中,所述目标灰度节点位于灰度环境中,所述灰度环境为预先根据所述电子设备的当前的线上生产环境创建得到的。
2.根据权利要求1所述的方法,其特征在于,在所述对所述目标灰度节点进行在线调试之前,所述方法还包括:
切断加载至所述目标灰度节点的其他正常流量。
3.根据权利要求2所述的方法,其特征在于,所述微服务还包括旧版本服务节点,所述切断加载至所述目标灰度节点的其他正常流量,包括:
将所述其他正常流量切换至所述旧版本服务节点运行。
4.根据权利要求1所述的方法,其特征在于,在所述对所述目标灰度节点进行在线调试之前,所述方法还包括:
保持所述目标正常流量在所述目标灰度节点中的运行数据不发生变化。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述对所述目标灰度节点进行在线调试,包括:
将预设的测试流量加载至所述目标灰度节点;
通过所述预设的测试流量对所述目标灰度节点进行调试。
6.根据权利要求5所述的方法,其特征在于,所述通过所述预设的测试流量对所述目标灰度节点进行调试,包括:
通过所述预设的测试流量在所述目标灰度节点的运行数据,对所述目标灰度节点进行调试;或,
获取与所述预设的测试流量的微服务调用链对应的所有的服务节点的运行数据,根据所述所有的服务节点的运行数据,对所述目标灰度节点进行调试,所述所有的服务节点包括所述目标灰度节点。
7.根据权利要求6所述的方法,其特征在于,与所述预设的测试流量对应的请求信息中包括目标灰度追踪字段,所述获取与所述预设的测试流量的微服务调用链对应的所有的服务节点的运行数据,包括:
获取包括所述目标灰度追踪字段的目标运行数据,所述目标运行数据为与所述预设的测试流量的微服务调用链对应的所有的服务节点的运行数据。
8.根据权利要求1所述的方法,其特征在于,所述电子设备还包括灰度节点清单,所述灰度节点清单中包括所述微服务所包括的所有灰度节点的标识以及状态信息,在所述对所述目标灰度节点进行在线调试之前,所述方法还包括:
在所述灰度节点清单中将所述目标灰度节点的状态信息更新为不可用状态。
9.一种节点调试装置,其特征在于,所述装置包括:
发布模块,用于在微服务的新版本服务节点上线运行之前,发布目标灰度节点,所述目标灰度节点与所述新版本服务节点相匹配;
加载模块,用于将所述电子设备的正常流量加载至所述目标灰度节点中运行,所述正常流量为使用用户的流量;
调试模块,用于在目标正常流量在所述目标灰度节点中的运行结果异常的情况下,对所述目标灰度节点进行在线调试;
其中,所述目标灰度节点位于灰度环境中,所述灰度环境为预先根据所述电子设备的当前的线上生产环境创建得到的。
10.一种计算机设备,其特征在于,包括处理器和存储器,所述存储器用于存储代码指令;所述处理器用于运行所述代码指令,以执行如权利要求1至8中任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序包括用于实现如权利要求1至8中任一项所述的方法的指令。
CN202310404755.7A 2023-04-14 2023-04-14 节点调试方法、装置及存储介质 Pending CN117008951A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310404755.7A CN117008951A (zh) 2023-04-14 2023-04-14 节点调试方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310404755.7A CN117008951A (zh) 2023-04-14 2023-04-14 节点调试方法、装置及存储介质

Publications (1)

Publication Number Publication Date
CN117008951A true CN117008951A (zh) 2023-11-07

Family

ID=88566205

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310404755.7A Pending CN117008951A (zh) 2023-04-14 2023-04-14 节点调试方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN117008951A (zh)

Similar Documents

Publication Publication Date Title
EP3353952B1 (en) Managing groups of servers
CN104025070A (zh) 用于管理工业过程的***和方法
CN106911648B (zh) 一种环境隔离方法及设备
GB2407887A (en) Automatically modifying fail-over configuration of back-up devices
CN108696581A (zh) 分布式信息的缓存方法、装置、计算机设备以及存储介质
CN106605213B (zh) 用于在断续的连通性的情况下进行支持的***、相应的本地设备以及相应的云端计算平台
CN112685287B (zh) 产品数据的测试方法、装置、存储介质及电子装置
CN111683139A (zh) 用于均衡负载的方法和装置
CN104283780A (zh) 建立数据传输路径的方法和装置
US10798164B2 (en) Techniques for intelligent device collaboration
CN112671914B (zh) 一种基于actor模型的物联网设备通讯方法和***
US8520503B2 (en) Supporting application effectiveness in a network environment
US11595471B1 (en) Method and system for electing a master in a cloud based distributed system using a serverless framework
CN117008951A (zh) 节点调试方法、装置及存储介质
CN114615320B (zh) 服务治理方法、装置、电子设备及计算机可读存储介质
Yassein et al. Combining software-defined networking with Internet of Things: Survey on security and performance aspects
EP3719646B1 (en) Method for communicating in a network-distributed process control system and network-distributed process control system
KR20150088462A (ko) 클라우드 환경에서 네트워크 장치의 연동 방법 및 장치
CN114938396A (zh) 服务调用请求的路由方法、创建服务的方法及装置
CN107743079A (zh) 线路探测方法、设备及计算机可读存储介质
CN107743152B (zh) 一种OpenStack云平台中负载均衡器的高可用的实现方法
US20070294573A1 (en) Method and system for improving the availability of software processes utilizing configurable finite state tables
CN116466985A (zh) 节点发布方法、装置及存储介质
CN101170544A (zh) 一种高可用群集***采用单一实ip地址的通讯方法
CN112688984A (zh) 一种向网络节点下发及执行指令的方法、设备及介质

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