一种云服务拓扑图实时更新方法、装置、设备及介质与流程

文档序号:35375370发布日期:2023-09-08 15:14阅读:84来源:国知局
一种云服务拓扑图实时更新方法、装置、设备及介质与流程

本发明涉及云计算、微服务,特别涉及一种云服务拓扑图实时更新方法、装置、设备及介质。


背景技术:

1、微服务是一种云原生架构方法,其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。微服务将单一应用程序划分成一组小的服务,服务之间相互协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务和服务之间采用轻量级的通信机制相互沟通。kubernetes(k8s,google开源的一个容器编排引擎)平台作为容器的管理平台出现,具有调度、自动恢复、水平伸缩等功能,能够方便、快速地管理容器集群。这些新技术使实时感知微服务使用状态的拓扑发现技术遇到了挑战。由于传统的服务拓扑发现使通过服务器探测,获得服务的依赖和使用情况。但是,在微服务架构中,服务的数量和实例化的规模可能会变化,导致传统的方法无法满足微服务的需求。首先,过去传统的应用基础设施需要手动升级软件包,逐个服务器调整配置文件,将新代码部署到现有服务器上,服务拓扑发现,可以转换为对服务器对应进程的拓扑发现(调用系统proc(定义子程序的伪指令)文件目录结果)。当前,微服务可以跨服务器部署在多个容器中,仅仅采集服务器的进程状态,无法获得服务相互调用的全部拓扑连接信息。其次,在通过proc采集服务器的进程调用情况后,并使用kubernetes平台的api-server的配置缓存,通过聚类和过滤计算,可以获得微服务调用信息。但是这种方法效率比较低,在服务快速变化时开销指数级增长;另外,一些服务的细粒度信息诸如网络抖动、发送瓶颈等也很难获得。然后,微服务之间具有复杂的依赖关系。服务数量通常可以是数百个或数千个。因此,服务之间的依赖关系比传统的分布式系统复杂得多。ebpf(extended berkeley packet filter,一种可以在linux内核中运行用户编写的程序,而不需要修改内核代码或加载内核模块的技术)可以从用户态切换到内核态拿取服务器的进程调用信息,比用户态获取进程调用信息更高效,而且可以获得细粒度的信息。并且ebpf程序对于微服务透明,不需要在微服务中嵌入代码。相较于传统的方法,基于ebpf的方法从内核拿到细粒度数据,并且在网络层面上实现更高效的运行。ebpf由内核事件触发,当服务注册和服务进行迁移的时候,ebpf无法实时感知节点服务的具体变化,导致服务拓扑图中无法实时的展示服务节点和服务的详细变化情况。

2、由上可见,如何实现获取kubernetes的实时数据信息,动态选择跟踪、监听节点内核,发现微服务的调用启动和停止,获取资源并发使用的具体情况,为进一步资源隔离和资源优化分配提供依据,提高云服务拓扑图实时更新的效率是本领域有待解决的问题。


技术实现思路

1、有鉴于此,本发明的目的在于提供一种云服务拓扑图实时更新方法、装置、设备及介质,能够实现获取kubernetes的实时数据信息,动态选择跟踪、监听节点内核,发现微服务的调用启动和停止,获取资源并发使用的具体情况,为进一步资源隔离和资源优化分配提供依据,提高云服务拓扑图实时更新的效率。其具体方案如下:

2、第一方面,本技术公开了一种云服务拓扑图实时更新方法,包括:

3、基于异步消息处理机制并利用本地的服务探针获取实时数据信息,利用本地的ebpf接口对所述实时数据信息进行数据过滤筛选,以得到网络数据包;

4、对所述网络数据包进行网络数据归并,以得到调用内容,对所述调用内容进行实时解析,以得到解析后消息,确定出所述解析后消息的消息类别;所述消息类别包括服务注册、服务注销、服务调用;

5、基于所述解析后消息和所述消息类别分别对本地的服务注册表和服务调用表进行相应的操作,以得到云服务拓扑图更新信息,基于所述云服务拓扑图更新信息生成新的云服务拓扑图。

6、可选的,所述基于异步消息处理机制并利用本地的服务探针获取实时数据信息,利用本地的ebpf接口对所述实时数据信息进行数据过滤筛选,以得到网络数据包,包括:

7、基于异步消息处理机制并利用本地的kubernetes nodes中的服务探针从本地的kubernetes master模块中的api-server上获取实时数据信息;

8、利用所述kubernetes nodes中的ebpf接口获取所述服务探针中的实时数据信息,然后对所述实时数据信息进行与kubernetes组件相关的动态内核网络数据过滤与筛选操作,以得到网络数据包。

9、可选的,所述对所述网络数据包进行网络数据归并,以得到调用内容,包括:

10、利用本地的kubernetes nodes中的网络数据包采集器对所述网络数据包进行网络数据归并,得到消息内容,并将所述消息内容发送至本地的处理模块;

11、利用所述处理模块对所述消息内容进行二次网络数据归并,以得到调用内容。

12、可选的,所述利用本地的kubernetes nodes中的网络数据包采集器对所述网络数据包进行网络数据归并,得到消息内容,并将所述消息内容发送至本地的处理模块,包括:

13、利用本地的kubernetes nodes中的网络数据包采集器从所述ebpf接口中获取所述网络数据包,然后对所述网络数据包中具有相同源ip地址、源端口、目的ip地址、目的端口的网络数据进行归并,以得到消息内容;

14、利用预设的守护进程将所述消息内容和所述实时数据信息发送至本地的处理模块。

15、可选的,所述利用所述处理模块对所述消息内容进行二次网络数据归并,以得到调用内容,包括:

16、利用所述处理模块中的归并模块从所述消息内容中确定出源节点调用消息和目的节点调用消息,对所述源节点调用消息、所述目的节点调用消息以及所述实时数据信息进行二次网络数据归并,以得到调用内容。

17、可选的,所述基于所述解析后消息和所述消息类别分别对本地的服务注册表和服务调用表进行相应的操作,包括:

18、若所述消息类别为服务注册,则基于所述解析后消息进行服务注册表记录增加操作;

19、若所述消息类别为服务注销,则基于所述解析后消息进行服务注册调用表记录删除操作;

20、若所述消息类别为服务调用,则对所述服务探针中与所述解析后消息相对应的节点信息进行解析,以得到服务调用端口信息,根据所述服务调用端口信息确定出服务调用类型,若所述服务调用类型为启动,则基于所述解析后消息进行服务调用表记录增加操作,若所述服务调用类型为停止,则基于所述解析后消息进行服务调用表记录删除操作。

21、可选的,所述对所述调用内容进行实时解析,包括:

22、将所述调用内容发送并保存至本地的处理模块中的数据库;

23、利用本地的处理模块中的拓扑模块中的消息处理器从所述数据库中获取所述调用内容,然后对所述调用内容进行实时解析。

24、第二方面,本技术公开了一种云服务拓扑图实时更新装置,包括:

25、数据过滤筛选模块,用于基于异步消息处理机制并利用本地的服务探针获取实时数据信息,利用本地的ebpf接口对所述实时数据信息进行数据过滤筛选,以得到网络数据包;

26、实时解析模块,用于对所述网络数据包进行网络数据归并,以得到调用内容,对所述调用内容进行实时解析,以得到解析后消息,确定出所述解析后消息的消息类别;所述消息类别包括服务注册、服务注销、服务调用;

27、云服务拓扑图更新模块,用于基于所述解析后消息和所述消息类别分别对本地的服务注册表和服务调用表进行相应的操作,以得到云服务拓扑图更新信息,基于所述云服务拓扑图更新信息生成新的云服务拓扑图。

28、第三方面,本技术公开了一种电子设备,包括:

29、存储器,用于保存计算机程序;

30、处理器,用于执行所述计算机程序,以实现前述的云服务拓扑图实时更新方法。

31、第四方面,本技术公开了一种计算机存储介质,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的云服务拓扑图实时更新方法的步骤。

32、可见,本技术提供了一种云服务拓扑图实时更新方法,包括基于异步消息处理机制并利用本地的服务探针获取实时数据信息,利用本地的ebpf接口对所述实时数据信息进行数据过滤筛选,以得到网络数据包;对所述网络数据包进行网络数据归并,以得到调用内容,对所述调用内容进行实时解析,以得到解析后消息,确定出所述解析后消息的消息类别;所述消息类别包括服务注册、服务注销、服务调用;基于所述解析后消息和所述消息类别分别对本地的服务注册表和服务调用表进行相应的操作,以得到云服务拓扑图更新信息,基于所述云服务拓扑图更新信息生成新的云服务拓扑图。本技术利用ebpf技术直接从内核层面获得数据包的网络层信息,并且根据服务探针模块获取到的kubernetes的实时数据信息,动态选择跟踪、监听节点内核,能够以一种低性能消耗的方式直接获取各节点pod以及service间的网络通信状态,实时发现微服务的调用启动和停止,拓扑上能够从毫秒级展示众多微服务的调用时机,资源占用情况,在时业务高峰期时,能够获取资源并发使用的具体情况,为进一步资源隔离和资源优化分配提供依据。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1