CN116016679A - 一种云原生服务通信方法、装置、设备及存储介质 - Google Patents
一种云原生服务通信方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116016679A CN116016679A CN202211732497.7A CN202211732497A CN116016679A CN 116016679 A CN116016679 A CN 116016679A CN 202211732497 A CN202211732497 A CN 202211732497A CN 116016679 A CN116016679 A CN 116016679A
- Authority
- CN
- China
- Prior art keywords
- service
- service container
- point
- channel
- container
- 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
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种云原生服务通信方法、装置、设备及存储介质,涉及云计算技术领域。该方法包括:接收来自于第一服务容器的注册消息,并根据所述注册消息更新服务注册表,所述注册消息包括所述第一服务容器的注册信息,所述服务注册表用于记录注册的服务容器的注册信息;响应于第二服务容器根据所述服务注册表选择所述第一服务容器的订阅操作,为所述第一服务容器和所述第二服务容器之间建立点对点通道;其中,所述点对点通道用于所述第一服务容器向所述第二服务容器发送消息指针,使得所述第二服务容器根据所述消息指针从共享内存中获取所述第一服务容器的信息数据。
Description
技术领域
本申请涉及云计算技术领域,尤其涉及一种云原生服务通信方法、装置、设备及存储介质。
背景技术
随着数字化信息的到来,云计算技术的持续突破,“软件云化”成为确定性的发展趋势。在云化时代,服务上云,安全服务也要上云,而云原生是加速企业数字化转型的新引擎,基于云原生的技术、架构和服务来构建企业应用,充分利用云的优势来助力企业应用和业务发展,将企业的数字化建设、业务智能升级带入新阶段。
云原生是基于分布部署和统一运管的分布式云,以容器、微服务、DevOps等技术为基础建立的一套云技术产品体系。微服务是一种软件开发技术,面向服务的体系结构架构样式的一种变体,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值,每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通。
目前,在不同的微服务容器集(Pod)中服务之间进行通信主要采用以下两种方式:
其一,是使用linux内核协议栈进行数据转发的服务网格,其以TCP/IP协议作为承载,需要额外封装Eth头、IP头等信息,同时在转发数据前,需要进行选路操作,过程繁杂,无法满足云原生场景下低延迟地转发大量报文的性能要求,导致信息数据传输效率低下。
其二,使用高性能转发程序,如VPP、OVS等程序实现数据转发,但是受限于通用性,微服务容器集与转发程序之间存在报文拷贝,导致信息数据传输效率低下。
因此,如何提高信息数据传输的效率,是目前急需解决的问题。
发明内容
本申请提供一种云原生服务通信方法,用以提高信息数据传输的效率。
第一方面,提供一种云原生服务通信方法,包括:
接收来自于第一服务容器的注册消息,并根据所述注册消息更新服务注册表;其中,所述注册消息包括所述第一服务容器的注册信息,所述服务注册表用于记录注册的服务容器的注册信息;响应于第二服务容器根据所述服务注册表选择所述第一服务容器的订阅操作,为所述第一服务容器和所述第二服务容器之间建立点对点通道;其中,所述点对点通道用于所述第一服务容器向所述第二服务容器发送消息指针,使得所述第二服务容器根据所述消息指针从共享内存中获取所述第一服务容器的信息数据。
在一种可能实现的方式中,所述响应于第二服务容器根据所述服务注册表中选择所述第一服务容器的订阅操作,为所述第一服务容器和所述第二服务容器之间建立点对点通道,包括:
接收来自于所述第二服务容器的订阅请求,将所述服务注册表发送给所述第二服务容器;接收来自于所述第二服务容器的订阅消息,所述订阅消息包括所述第一服务容器的注册信息;根据所述订阅消息,为所述第一服务容器和所述第二服务容器之间建立点对点通道。
在一种可能实现的方式中,所述为所述第一服务容器和所述第二服务容器之间建立点对点通道之后,还包括:
监控所述第一服务容器和所述第二服务容器的运行状态;根据所述运行状态,对所述点对点通道进行清除处理。
在一种可能实现的方式中,所述根据所述运行状态,对所述点对点通道进行清除处理,包括:
若所述第一服务容器和/或所述第二服务容器的运行状态为离线状态,则对所述点对点通道进行清除处理;或者若所述第一服务容器和/或所述第二服务容器的运行状态为异常状态,则对所述点对点通道进行清除处理。
在一种可能实现的方式中,所述为所述第一服务容器和所述第二服务容器之间建立点对点通道之后,还包括:
向所述第一服务容器和所述第二服务容器发送通道消息;其中,所述通道消息用于表征所述点对点通道建立成功,且包括所述点对点通道的通道标识。
第二方面,提供一种云原生服务通信装置,包括:服务注册中心模块、通道建立模块;所述服务注册中心模块,用于接收来自于第一服务容器的注册消息,并根据所述注册消息更新服务注册表;以及,用于响应于第二服务容器根据所述服务注册表选择所述第一服务容器的订阅操作,指示所述通道建立模块为所述第一服务容器和所述第二服务容器之间建立点对点通道;其中,所述注册消息包括所述第一服务容器的注册信息,所述服务注册表用于记录注册的服务容器的注册信息;所述通道建立模块,用于根据所述服务注册中心模块的指示,为所述第一服务容器和所述第二服务容器之间建立点对点通道;其中,所述点对点通道用于所述第一服务容器向所述第二服务容器发送消息指针,使得所述第二服务容器根据所述消息指针从共享内存中获取所述第一服务容器缓存的信息数据。
在一种可能实现的方式中,所述服务注册中心模块,具体用于:
接收来自于所述第二服务容器的订阅请求,将所述服务注册表发送给所述第二服务容器;接收来自于所述第二服务容器的订阅消息,所述订阅消息包括所述第一服务容器的注册信息;根据所述订阅消息,指示所述通道建立模块为所述第一服务容器和所述第二服务容器之间建立点对点通道。
在一种可能实现的方式中,所述服务注册中心模块,还用于:
监控所述第一服务容器和所述第二服务容器的运行状态;根据所述运行状态,对所述点对点通道进行清除处理。
在一种可能实现的方式中,所述服务注册中心模块,还用于:
若所述第一服务容器和/或所述第二服务容器的运行状态为离线状态,则对所述点对点通道进行清除处理;或者若所述第一服务容器和/或所述第二服务容器的运行状态为异常状态,则对所述点对点通道进行清除处理。
在一种可能实现的方式中,所述服务注册中心模块,还用于:
向所述第一服务容器和所述第二服务容器发送通道消息;其中,所述通道消息用于表征所述点对点通道建立成功,且包括所述点对点通道的通道标识。
第三方面,提供一种电子设备,包括:
存储器,用于存放计算机程序或计算过程信息;处理器,用于执行所述存储器上所存放的计算机程序时,实现第一方面中任一项所述的方法步骤。
第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序或信息,所述计算机程序被处理器执行时实现第一方面中任一项所述的方法步骤。
本申请实施例中,由于接收来自于第一服务容器的注册消息,并根据注册消息更新服务注册表,因此可以实时记录注册的服务容器的注册信息,便于后续供其他服务容器(第二服务容器)的使用;再由于响应于第二服务容器根据服务注册表选择第一服务容器的订阅操作,为第一服务容器和第二服务容器之间建立点对点通道,该点对点通道用于第一服务容器向第二服务容器发送消息指针,使得第二服务容器根据该消息指针从共享内存中获取第一服务容器的信息数据,因此通过搭建的点对点通道可以实现服务容器之间的直接通信,相较于经过协议头封装、复杂的选路操作、拷贝操作等进行信息数据的传输,减少了信息数据传输的时延,提高了信息数据的传输效率。
上述第二方面至第四方面中的各个方面以及各个方面可能达到的技术效果请参照上述针对第一方面或第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。
附图说明
图1为目前进行信息数据传输的逻辑示意图;
图2为本申请实施例提供的一种云原生服务通信方法的流程图;
图3为本申请实施例提供的一种进行信息数据传输的逻辑示意图;
图4为本申请实施例提供的一种云原生服务通信装置的结构示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。需要说明的是,在本申请的描述中“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。A与B连接,可以表示:A与B直接连接和A与B通过C连接这两种情况。另外,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
为了更好地理解本申请实施例,下面首先对本申请实施例中涉及的技术术语进行说明。
(1)云安全服务指用于保护云计算基础设施及其上业务系统和数据的信息安全服务。
(2)云服务是基于互联网的相关服务的增加、使用和交互模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源,简单来说,云服务可以将企业所需的软硬件、资料都放到网络上,在任何时间、地点,使用不同的IT设备互相连接,实现数据存取、运算等目的。
(3)云原生应用也就是面向“云”而设计的应用,在使用云原生技术后,开发者无需考虑底层的技术实现,可以充分发挥云平台的弹性和分布式优势,实现快速部署、按需伸缩、不停机交付,简单来说,就是利用云的弹性易扩展等优秀技术体系构建的软件,是由多个相互依赖的微服务组成的软件程序。
(4)服务网格(Service Mesh)是处理服务间通信的基础设施层。它负责构成现代云原生应用程序的复杂服务拓扑来可靠地交付请求。
(5)容器集群管理系统(Kubernetes),常简称为K8s,是用来管理容器集群的,由一个Master节点和多个Node节点组成。Master作为管理者,包括API Server、Scheduler、Controller Manager等。Node作为副本部署的载体,包含多个Pod,每个Pod又包含多个容器(container)。k8s已经成为容器编排调度领域的事实标准,是云原生组织CNCF主推的头号项目,容器化时代的操作系统,k8s将成为我们打开云原生时代大门的钥匙。
(6)容器集(Pod)是K8s的基本调度单位,代表了应用的单个实例。
(7)容器(containers)也称服务容器,是一种标准的软件单元,它包含了程序和对应的依赖库,以便能在不同环境下快速运行。
(8)点对点(point to point,P2P)是无中心服务器、依靠用户群交换信息的互联网体系。
(9)数据平面开发套件(Data Plane Development Kit,DPDK)主要基于Linux系统运行,用于快速数据包处理的函数库与驱动集合,可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。
目前,在云原生场景下,同一节点上不同的服务容器之间进行信息通信,一般会对传输的消息(信息)进行封装、拷贝、选路等操作,传输过程繁杂。
图1示例性示出了目前进行信息数据传输的逻辑示意图。以微服务Pod1中不同的服务容器为例,如图1所示,首先服务容器1在原始信息数据前封装额外的Eth和IP头,得到封装后的原始报文,并将该原始报文拷贝到报文转发器中;报文转发器接收到拷贝的原始报文后,根据配置的转发规则,将拷贝的原始报文转发到服务容器2的接口,服务容器2从该接口获取到该拷贝的原始报文后,将额外的Eth和IP头去掉,最后得到该服务容器1的原始信息数据。
上述图1所示的操作过程,由于传输过程繁杂,因此降低了服务容器之间的通信效率,增加了通信时延,从而影响用户体验。
鉴于此,本申请实施例提供了一种云原生服务通信方法,将安全服务以容器的形式部署在微服务Pod中,搭建服务注册中心以实现服务上下线感知、服务注册和服务发现,在对应服务容器之间建立专用于进行通信的点对点通道(也称服务容器之间的共享链路),从而省去封装、选路等操作,并结合共享内存进行信息数据的缓存,可直接从共享内存中获取相应的信息数据,避免了在服务容器之间、服务容器与转发器之间进行报文拷贝操作,引起的性能损失。
为进一步说明本申请实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。所述方法在实际的处理过程中或者装置执行时,可按照实施例或者附图所示的方法顺序执行或者并执行。
图2为本申请实施例提供的一种云原生服务通信方法的流程图,该流程可由云原生服务通信装置所执行,该装置可通过软件的方式实现,也可通过硬件的方式实现,还可通过软件和硬件相结合的方式实现。如图2所示,该流程包括如下步骤:
本申请实施例中,第一服务容器、第二服务容器仅出于描述方便的目的,并不特指某一个或某些服务容器。
201:接收来自于第一服务容器的注册消息,并根据注册消息更新服务注册表。
其中,注册消息包括第一服务容器的注册信息,服务注册表用于记录注册的服务容器的注册信息。
可选的,该注册信息可包括第一服务容器的服务名(例如,Service1)、第一服务容器的标识、所属类型、版本、地址等。
该步骤中,具体过程可以是:当第一服务容器上线时,向搭建的服务注册中心发送注册消息,该注册消息包括第一服务容器的服务名Service1,服务注册中心接收到该注册消息后,根据该注册消息中的注册信息更新到服务注册表中,从而便于后续其他的服务容器以此为依据选择性的订阅所需的信息数据,提高了灵活性。
在一些实施例中,当用于记录服务容器的服务注册表更新后,还可按照设定周期,实时将该更新的服务注册表分发各服务容器,以便各服务容器以此为依据选择性的订阅所需的信息数据,提高了灵活性。
202:响应于第二服务容器根据服务注册表选择第一服务容器的订阅操作,为第一服务容器和第二服务容器之间建立点对点通道。
该点对点通道用于第一服务容器向第二服务容器发送消息指针,使得第二服务容器根据消息指针从共享内存中获取第一服务容器缓存的信息数据。
举例来说,第一服务容器和第二服务容器基于该点对点通道进行信息交互,具体可以是:第一服务容器将信息数据基于DPDK写入共享内存中后,将该信息数据映射的消息指针(mbuf),经由该点对点通道发送给第二服务容器,第二服务容器接收到该消息指针后,根据该消息指针从共享内存中直接获取该信息数据,可省去信息数据拷贝过程,也无需封装和解封过程,从而提高了信息数据传输的效率。
可选的,为第一服务容器和第二服务容器建立点对点通道可通过以下方式:接收来自于第二服务容器的订阅请求,将上述服务注册表发送给第二服务容器,以供第二服务容器选择性订阅,接收来自于第二服务容器的订阅消息,该订阅消息包括第一服务容器的注册信息;根据该订阅消息,为第一服务容器和第二服务容器之间建立点对点通道。
可选的,该订阅消息还可包括第二服务容器的标识、所属类型、版本、地址等,以便于服务注册中心为第一服务容器和第二服务容器之间建立专用的点对点通道。
在一些实施例中,为第一服务容器和第二服务容器建立点对点通道也可以是第二服务容器直接将携带有第一服务容器的标识的订阅请求发送给服务注册中心,服务注册中心接收到该订阅请求后,根据该服务注册表获取第一服务容器相关的注册信息,并为第一服务容器和第二服务容器之间建立点对点通道。
在一些实施例中,为第一服务容器和第二服务容器之间建立点对点通道后,还可向第一服务容器和第二服务容器发送通道消息,用于通知第一服务容器和第二服务容器点对点通道建立成功,该通道消息可包括该点对点通道的通道标识,还可包括点对点通道的通道地址、通道名称等,以便于第一服务容器和第二服务容器找到该点对点通道。
在另一些实施例中,为第一服务容器和第二服务容器之间建立点对点通道后,还可监控第一服务容器和第二服务容器的运行状态;根据运行状态,对点对点通道进行清除(销毁)处理,实现服务链的资源回收,从而保证信息数据传输的安全性,也减少资源的占用,具体可以包括以下几种情况:
情况1:当监控到第一服务容器和第二服务容器中任意一个的运行状态为离线状态时,点对点通道进行清除处理。
情况2:当监控到第一服务容器和第二服务容器中的运行状态都为离线状态时,对点对点通道进行清除处理。
情况3:当监控到第一服务容器和第二服务容器中任意一个的运行状态为异常状态时,点对点通道进行清除处理。
情况4:当监控到第一服务容器和第二服务容器中的运行状态都为异常状态时,点对点通道进行清除处理。
本申请实施例中,所有服务容器在进行通信时,均可基于服务注册中心,搭建两者之间独有的临时通信通道(点对点通道),自动编排形成服务链,组成服务网格,提高通信效率。
本申请实施例中,由于接收来自于第一服务容器的注册消息,并根据注册消息更新服务注册表,因此可以实时记录注册的服务容器的注册信息,便于后续供其他服务容器(第二服务容器)的使用;再由于响应于第二服务容器根据服务注册表选择第一服务容器的订阅操作,为第一服务容器和第二服务容器之间建立点对点通道,该点对点通道用于第一服务容器向第二服务容器发送消息指针,使得第二服务容器根据该消息指针从共享内存中获取第一服务容器的信息数据,因此通过搭建的点对点通道可以实现服务容器之间的直接通信,相较于经过协议头封装、复杂的选路操作、拷贝操作等进行信息数据的传输,减少了信息数据传输的时延,提高了信息数据的传输效率。
基于图2所示的流程图,以微服务Pod1中的服务容器1和服务容器2为例,图3为本申请实施例中提供的一种进行信息数据传输的逻辑示意图。如图3所示:
301:服务容器1上线时,向服务注册中心发送注册消息,服务注册中心将上述注册消息中的注册信息记录在服务注册表中。
302:服务容器2上线时,向服务注册中心发送订阅请求。
该订阅请求中可包括服务容器1的标识。
303:服务注册中心接收到该订阅请求后,在服务容器1与服务容器2之间建立通道A(点对点通道),并将该通道A的相关通道信息分别发送给服务容器1和服务容器2。
304:服务容器1将信息数据1直接写入共享内存中,并将该信息数据1映射的消息指针1发到通道A中,经由该通道A发送给服务容器2。
305:服务容器2根据该消息指针1,从共享内存中获取信息数据1。
基于相同的技术构思,本申请实施例还提供了一种云原生服务通信装置,该装置可实现本申请实施例中上述云原生服务通信方法的流程。
图4为本申请实施例提供的一种云原生服务通信装置的结构示意图。如图4所示,该装置包括服务注册中心模块401、通道建立模块402。
服务注册中心模块401,用于接收来自于第一服务容器的注册消息,并根据所述注册消息更新服务注册表;以及,用于响应于第二服务容器根据所述服务注册表选择所述第一服务容器的订阅操作,指示所述通道建立模块为所述第一服务容器和所述第二服务容器之间建立点对点通道;其中,所述注册消息包括所述第一服务容器的注册信息,所述服务注册表用于记录注册的服务容器的注册信息。
通道建立模块402,用于根据所述服务注册中心模块的指示,为所述第一服务容器和所述第二服务容器之间建立点对点通道;其中,所述点对点通道用于所述第一服务容器向所述第二服务容器发送消息指针,使得所述第二服务容器根据所述消息指针从共享内存中获取所述第一服务容器缓存的信息数据。
在一种可能实现的方式中,所述服务注册中心模块401,具体用于:
接收来自于所述第二服务容器的订阅请求,将所述服务注册表发送给所述第二服务容器;接收来自于所述第二服务容器的订阅消息,所述订阅消息包括所述第一服务容器的注册信息;根据所述订阅消息,指示所述通道建立模块为所述第一服务容器和所述第二服务容器之间建立点对点通道。
在一种可能实现的方式中,所述服务注册中心模块401,还用于:
监控所述第一服务容器和所述第二服务容器的运行状态;根据所述运行状态,对所述点对点通道进行清除处理。
在一种可能实现的方式中,所述服务注册中心模块401,还用于:
若所述第一服务容器和/或所述第二服务容器的运行状态为离线状态,则对所述点对点通道进行清除处理;或者若所述第一服务容器和/或所述第二服务容器的运行状态为异常状态,则对所述点对点通道进行清除处理。
在一种可能实现的方式中,所述服务注册中心模块401,还用于:
向所述第一服务容器和所述第二服务容器发送通道消息;其中,所述通道消息用于表征所述点对点通道建立成功,且包括所述点对点通道的通道标识。
在此需要说明的是,本申请实施例提供的上述装置,能够实现上述云原生服务通信方法实施例中的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
基于相同的技术构思,本申请实施例中还提供了一种电子设备,所述电子设备可以实现前述一种云原生服务通信装置的功能。
图5为本申请实施例提供的电子设备的结构示意图。
至少一个处理器501,以及与至少一个处理器501连接的存储器502,本申请实施例中不限定处理器501与存储器502之间的具体连接介质,图5中是以处理器501和存储器502之间通过总线500连接为例。总线500在图5中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线500可以分为地址总线、数据总线、控制总线等,为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器501也可以称为控制器,对于名称不做限制。
在本申请实施例中,存储器502存储有可被至少一个处理器501执行的指令,至少一个处理器501通过执行存储器502存储的指令,可以执行前文论述的一种云原生服务通信方法。处理器501可以实现图4所示的装置中各个模块的功能。
其中,处理器501是该装置的控制中心,可以利用各种接口和线路连接整个该控制设备的各个部分,通过运行或执行存储在存储器502内的指令以及调用存储在存储器502内的数据,该装置的各种功能和处理数据,从而对该装置进行整体监控。
在一种可能的设计中,处理器501可包括一个或多个处理单元,处理器501可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器501中。在一些实施例中,处理器501和存储器502可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器501可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的一种云原生服务通信方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器502可作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,还可作为一种易失性计算机可读存储介质,可用于存储易失性软件程序、易失性计算机可执行程序以及模块。存储器502可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(ReadOnly Memory,ROM)、带电可擦除可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器502是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器502还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
通过对处理器501进行设计编程,可以将前述实施例中介绍的一种云原生服务通信方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图2所示的实施例的一种云原生服务通信方法。如何对处理器501进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
在此需要说明的是,本申请实施例提供的上述通电子设备,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使计算机执行上述实施例中的一种云原生服务通信方法。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品在被计算机调用时,使得所述计算机执行上述实施例中的一种云原生服务通信方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种云原生服务通信方法,其特征在于,包括:
接收来自于第一服务容器的注册消息,并根据所述注册消息更新服务注册表;其中,所述注册消息包括所述第一服务容器的注册信息,所述服务注册表用于记录注册的服务容器的注册信息;
响应于第二服务容器根据所述服务注册表选择所述第一服务容器的订阅操作,为所述第一服务容器和所述第二服务容器之间建立点对点通道;
其中,所述点对点通道用于所述第一服务容器向所述第二服务容器发送消息指针,使得所述第二服务容器根据所述消息指针从共享内存中获取所述第一服务容器的信息数据。
2.如权利要求1所述的方法,其特征在于,所述响应于第二服务容器根据所述服务注册表中选择所述第一服务容器的订阅操作,为所述第一服务容器和所述第二服务容器之间建立点对点通道,包括:
接收来自于所述第二服务容器的订阅请求,将所述服务注册表发送给所述第二服务容器;
接收来自于所述第二服务容器的订阅消息,所述订阅消息包括所述第一服务容器的注册信息;
根据所述订阅消息,为所述第一服务容器和所述第二服务容器之间建立点对点通道。
3.如权利要求1所述的方法,其特征在于,所述为所述第一服务容器和所述第二服务容器之间建立点对点通道之后,还包括:
监控所述第一服务容器和所述第二服务容器的运行状态;
根据所述运行状态,对所述点对点通道进行清除处理。
4.如权利要求3所述的方法,其特征在于,所述根据所述运行状态,对所述点对点通道进行清除处理,包括:
若所述第一服务容器和/或所述第二服务容器的运行状态为离线状态,则对所述点对点通道进行清除处理;或者
若所述第一服务容器和/或所述第二服务容器的运行状态为异常状态,则对所述点对点通道进行清除处理。
5.如权利要求1-4任一项所述的方法,其特征在于,所述为所述第一服务容器和所述第二服务容器之间建立点对点通道之后,还包括:
向所述第一服务容器和所述第二服务容器发送通道消息;其中,所述通道消息用于表征所述点对点通道建立成功,且包括所述点对点通道的通道标识。
6.一种云原生服务通信装置,其特征在于,包括:服务注册中心模块、通道建立模块;
所述服务注册中心模块,用于接收来自于第一服务容器的注册消息,并根据所述注册消息更新服务注册表;以及,用于响应于第二服务容器根据所述服务注册表选择所述第一服务容器的订阅操作,指示所述通道建立模块为所述第一服务容器和所述第二服务容器之间建立点对点通道;其中,所述注册消息包括所述第一服务容器的注册信息,所述服务注册表用于记录注册的服务容器的注册信息;
所述通道建立模块,用于根据所述服务注册中心模块的指示,为所述第一服务容器和所述第二服务容器之间建立点对点通道;
其中,所述点对点通道用于所述第一服务容器向所述第二服务容器发送消息指针,使得所述第二服务容器根据所述消息指针从共享内存中获取所述第一服务容器的信息数据。
7.如权利要求6所述的装置,其特征在于,所述服务注册中心模块,具体用于:
接收来自于所述第二服务容器的订阅请求,将所述服务注册表发送给所述第二服务容器;
接收来自于所述第二服务容器的订阅消息,所述订阅消息包括所述第一服务容器的注册信息;
根据所述订阅消息,指示所述通道建立模块为所述第一服务容器和所述第二服务容器之间建立点对点通道。
8.如权利要求6所述的装置,其特征在于,所述服务注册中心模块,还用于:
监控所述第一服务容器和所述第二服务容器的运行状态;
根据所述运行状态,对所述点对点通道进行清除处理。
9.如权利要求8所述的装置,其特征在于,所述服务注册中心模块,还用于:
若所述第一服务容器和/或所述第二服务容器的运行状态为离线状态,则对所述点对点通道进行清除处理;或者
若所述第一服务容器和/或所述第二服务容器的运行状态为异常状态,则对所述点对点通道进行清除处理。
10.如权利要求6-9任一项所述的装置,其特征在于,所述服务注册中心模块,还用于:
向所述第一服务容器和所述第二服务容器发送通道消息;其中,所述通道消息用于表征所述点对点通道建立成功,且包括所述点对点通道的通道标识。
11.一种电子设备,其特征在于,包括:
存储器,用于存放计算机程序或计算过程信息;
处理器,用于执行所述存储器上所存放的计算机程序时,实现权利要求1-5中任一项所述的方法步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序或信息,所述计算机程序被处理器执行时实现权利要求1-5中任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211732497.7A CN116016679A (zh) | 2022-12-30 | 2022-12-30 | 一种云原生服务通信方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211732497.7A CN116016679A (zh) | 2022-12-30 | 2022-12-30 | 一种云原生服务通信方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116016679A true CN116016679A (zh) | 2023-04-25 |
Family
ID=86026453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211732497.7A Pending CN116016679A (zh) | 2022-12-30 | 2022-12-30 | 一种云原生服务通信方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116016679A (zh) |
-
2022
- 2022-12-30 CN CN202211732497.7A patent/CN116016679A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11853816B2 (en) | Extending the Kubernetes API in-process | |
CN107590072B (zh) | 一种应用开发和测试的方法和装置 | |
US8555242B2 (en) | Decentralized system services | |
CN115328663B (zh) | 基于PaaS平台进行资源调度的方法、装置、设备和存储介质 | |
CN106663033B (zh) | 在事务中间件机器环境支持绕域和代理模型并更新服务信息以跨域消息传送的系统和方法 | |
CN102868736B (zh) | 一种云计算监控框架设计及实现方法及云计算处理设备 | |
CN110352401B (zh) | 具有按需代码执行能力的本地装置协调器 | |
US20110321011A1 (en) | Application server with a protocol-neutral programming model for developing telecommunications-based applications | |
CN106713469B (zh) | 用于分布式容器的动态加载方法、装置及系统 | |
CN112698838B (zh) | 多云容器部署系统及其容器部署方法 | |
CN112882792B (zh) | 信息加载方法、计算机设备及存储介质 | |
CN115103012B (zh) | 一种地理空间信息微服务集成系统及方法 | |
WO2021043124A1 (zh) | 一种kbroker分布式操作系统、存储介质和电子设备 | |
CN114640610B (zh) | 基于云原生的服务治理方法、装置及存储介质 | |
US11755297B2 (en) | Compiling monoglot function compositions into a single entity | |
CN116016679A (zh) | 一种云原生服务通信方法、装置、设备及存储介质 | |
CN112015515B (zh) | 一种虚拟网络功能的实例化方法及装置 | |
CN114816651A (zh) | 一种通信方法、装置以及系统 | |
CN112073449B (zh) | 基于Kubernetes的环境切换处理方法和设备 | |
CN113973049B (zh) | 一种fpga集群管理与部署比特流的方法 | |
CN116820430B (zh) | 异步读写方法、装置、计算机设备及存储介质 | |
CN112073358B (zh) | 基于Kubernetes的协议转换处理方法和设备 | |
WO2023066224A1 (zh) | 一种部署容器服务的方法及装置 | |
Kail et al. | Dynamic execution of scientific workflows in cloud | |
CN118140211A (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 |