消息的处理方法及装置与流程

allin2022-12-29  94



1.本发明涉及计算机技术领域,尤其涉及一种消息的处理方法及装置。


背景技术:

2.现有的it(internet technology,互联网技术)企业的系统架构中,一般采用消息存储系统实现对消息的写入、存储、读取以及查询。
3.现有的消息存储系统在使用时需要消耗巨大cpu(central processing unit,中央处理器)资源以及内存资源。但对于消息服务来说,只在每天固定的时间段内使用,而在其他大部分时间段内都没有流量。这就对企业的运营成本以及资源造成了巨大的浪费。


技术实现要素:

4.本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种消息的处理方法,使得只在有消息写入时,才创建基础容器进行消息存储,在没有消息写入需求时,无需消耗固定的消息存储资源,从而避免了浪费固定的服务资源成本,节约了系统资源。
5.本发明还提出一种消息的处理装置。
6.本发明还提出一种电子设备。
7.本发明还提出一种非暂态计算机可读存储介质。
8.本发明还提出一种计算机程序产品。
9.根据本发明第一方面实施例的消息的处理方法,包括:接收目标消息的写入请求;根据容器编排系统中各物理节点的节点信息以及所述目标消息的存储信息,确定所述各物理节点中用于存储所述目标消息的目标物理节点;在所述目标物理节点上创建基础容器,并根据所述基础容器,将所述目标消息存储到所述目标物理节点。
10.根据本发明实施例的消息的处理方法,通过确定容器编排系统的各物理节点中用于存储目标消息的目标物理节点,并在目标物理节点上创建基础容器,根据创建的基础容器,将目标消息存储到目标物理节点,实现了目标消息的存储。与此同时,通过只在有消息写入时,才创建基础容器进行消息存储,在没有消息写入需求时,无需消耗固定的消息存储资源,实现了对目标消息的动态存储,从而避免了浪费固定的服务资源成本,节约了系统资源。
11.根据本发明的一个实施例,所述根据所述基础容器,将所述目标消息存储到所述目标物理节点,包括:根据所述基础容器,调用函数即服务faas服务中的消息写入faas函数,将所述目标消息存储到所述目标物理节点。通过faas服务中的消息写入faas函数,将所述目标消息存储到所述目标物理节点中,实现了对目标消息的存储。与此同时,通过faas服务,调用消息写入faas函数进行消息存储,实现了在有消息写入的时候调用消息写入faas函数存储消息,在没有消息写入需求时,无需消耗固定的消息存储资源,节约了系统资源。
12.根据本发明的一个实施例,在所述目标物理节点上创建基础容器,包括:在所述目
标物理节点上创建第一容器组,并在所述第一容器组中创建所述基础容器。通过在目标物理节点上创建第一容器组,并在第一容器组中创建基础容器,为后续实现在目标物理节点中目标消息的存储提供了基础。
13.根据本发明的一个实施例,根据容器编排系统各物理节点的节点信息以及所述目标消息的存储信息,确定所述各物理节点中用于存储所述目标消息的目标物理节点,包括:基于哈希一致性算法,确定容器编排系统中各物理节点的节点信息的哈希值以及所述目标消息的存储信息的哈希键值;根据所述各物理节点的节点信息的哈希值以及所述哈希键值,确定所述各物理节点中用于存储所述目标消息的目标物理节点。通过哈希一致性算法,确定容器编排系统中各物理节点的节点信息的哈希值以及所述目标消息的存储信息的哈希键值,从而最终确定各物理节点中用于存储目标消息的目标物理节点,为后续实现目标消息的存储提供了基础。
14.根据本发明的一个实施例,确定所述各物理节点中用于存储所述目标消息的目标物理节点之后,还包括:将所述哈希键值存储到所述目标物理节点。通过将所述目标消息的存储信息的哈希键值存储到所述目标物理节点中,方便了后续对存储的目标消息的查询与读取。
15.根据本发明的一个实施例,将所述目标消息存储到所述目标物理节点之后,还包括:接收目标消息的获取请求;根据所述哈希键值,确定存储所述目标消息的目标物理节点,并从所述目标物理节点中获取所述目标消息。通过存储的目标消息的存储信息的哈希键值,确定存储目标消息的目标物理节点,在存储目标消息的目标物理节点获取目标消息,实现了目标消息的获取。
16.根据本发明的一个实施例,所述从所述目标物理节点中获取所述目标消息,包括:根据faas服务的调度器,在所述目标物理节点上创建第二容器组,并在所述第二容器组中创建看门狗容器;根据所述看门狗容器,调用消息读取faas函数,获取所述目标消息。通过faas服务中的消息读取faas函数,获取目标消息,实现了对目标消息的获取。与此同时,通过faas服务,调用消息读取faas函数进行消息获取,实现了在有消息读取的时候调用消息读取faas函数存储消息,在没有消息读取需求时,无需消耗固定的消息存储资源,节约了系统资源。
17.根据本发明的一个实施例,所述将所述目标消息存储到所述目标物理节点之后,还包括:获取所述容器编排系统中各物理节点的地址,根据流行病协议gossip协议,同步所述容器编排系统中各物理节点的存储状态信息。通过在完成目标消息的存储之后,获取容器编排系统中各物理节点的地址,根据gossip协议,同步容器编排系统中各物理节点的存储状态信息,方便了后续接收到消息写入时,根据容器编排系统各物理节点的节点信息,确定消息的存储节点。
18.根据本发明第二方面实施例的消息的处理装置,包括:消息接收模块,用于接收目标消息的写入请求;存储节点确定模块,用于根据容器编排系统中各物理节点的节点信息以及所述目标消息的存储信息,确定所述各物理节点中用于存储所述目标消息的目标物理节点;消息存储模块,用于在所述目标物理节点上创建基础容器,并根据所述基础容器,将所述目标消息存储到所述目标物理节点。
19.根据本发明实施例的消息的处理装置,通过确定容器编排系统的各物理节点中用
于存储目标消息的目标物理节点,并在目标物理节点上创建基础容器,根据创建的基础容器,将目标消息存储到目标物理节点,实现了目标消息的存储。与此同时,通过只在有消息写入时,才创建基础容器进行消息存储,在没有消息写入需求时,无需消耗固定的消息存储资源,实现了对目标消息的动态存储,从而避免了浪费固定的服务资源成本,节约了系统资源。
20.根据本发明第三方面实施例的电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述消息的处理方法。
21.根据本发明第四方面实施例的非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述消息的处理方法。
22.根据本发明第五方面实施例的计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述消息的处理方法。
23.本发明实施例中的上述一个或多个技术方案,至少具有如下技术效果之一:
24.通过确定容器编排系统的各物理节点中用于存储目标消息的目标物理节点,并在目标物理节点上创建基础容器,根据创建的基础容器,将目标消息存储到目标物理节点,实现了目标消息的存储。与此同时,通过只在有消息写入时,才创建基础容器进行消息存储,在没有消息写入需求时,无需消耗固定的消息存储资源,实现了对目标消息的动态存储,从而避免了浪费固定的服务资源成本,节约了系统资源。
25.本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
26.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
27.图1是本发明实施例提供的消息的处理方法的流程示意图;
28.图2是本发明实施例提供的消息写入流程示意图;
29.图3是本发明实施例提供的消息状态元数据的结构示意图;
30.图4是本发明实施例提供的消息获取流程示意图;
31.图5是本发明实施例提供的消息的处理装置的结构示意图;
32.图6是本发明实施例提供的电子设备的结构示意图。
具体实施方式
33.下面结合附图和实施例对本发明的实施方式作进一步详细描述。以下实施例用于说明本发明,但不能用来限制本发明的范围。
34.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性
表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
35.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
36.图1为本发明实施例提供的消息的处理方法的流程示意图。参照图1,本发明实施例提供的消息的处理方法可以包括:
37.步骤110,接收目标消息的写入请求;
38.步骤120,根据容器编排系统中各物理节点的节点信息以及所述目标消息的存储信息,确定所述各物理节点中用于存储所述目标消息的目标物理节点;
39.步骤130,在所述目标物理节点上创建基础容器,并根据所述基础容器,将所述目标消息存储到所述目标物理节点。
40.本发明实施例提供的消息的处理方法的执行主体可以是部署在容器编排系统中的faas服务,下面以faas服务执行本发明实施例提供的消息的处理方法为例,详细说明本发明的技术方案。
41.需要说明的是,容器编排系统为用于管理云平台中多个节点的容器化的应用,kubernetes集群是其中的一种。kubernetes集群的目标是让部署容器化的应用简单并且高效,kubernetes集群提供了应用部署,规划,更新,维护的机制。faas(函数即服务)服务依托于kubernetes集群,提供了一种动态创建函数运行时,并调用函数执行的能力。faas服务中所有的函数运行时不需要固定分配的服务器资源,只在有函数调用需求时才会动态分配并销毁。通过faas服务可以实现计算资源的按需动态调度,从而为企业节省巨大的服务资源及运维成本。
42.在步骤110中,根据部署在容器编排系统中的faas服务的网关,接收外部的目标消息的写入请求。
43.其中,faas服务的网关会持续监听外部的目标消息的写入请求。
44.在步骤120中,faas服务的网关根据写入的目标消息的存储信息,以及容器编排系统中各物理节点的节点信息,确定各物理节点中用于存储目标消息的目标物理节点。
45.可选的,对于要写入的目标消息,faas服务的网关可以通过容器编排系统如kubernetes集群中的etcd组件查询当前集群中的物理节点数量以及各物理节点的节点信息。在获取kubernetes集群中各物理节点的节点信息以及目标消息的存储信息,可以通过一致性哈希算法,计算各物理节点的节点信息的哈希值以及目标消息的存储信息的哈希键值,根据计算各物理节点的节点信息的哈希值以及哈希键值,确定目标消息具体存储到各物理节点中的哪个物理节点。
46.在步骤130中,在确定存储目标消息的目标物理节点后,faas服务的网关会在目标物理节点上创建一个基础容器。根据创建的基础容器,将目标消息存储到目标物理节点中。
47.可选的,基础容器可以通过读取目标物理节点的本地存储卷host-path中的
index.json文件,查询得到“目标物理节点的最新写入消息所在的文件名”,并打开该chunk文件,随后通过“目标物理节点最新写入消息所在chunk文件中的字节偏移量”,定位到文件写入指针的偏移位置,并在该位置处写入目标消息的数据。如果该chunk文件的大小超过了64kb,则会创建一个新的chunk文件。随后,更新index.json文件的内容,实现目标消息的存储。
48.在完成目标消息的本地存储后,基础容器会持续监听faas服务的网关的消息写入请求。在监听时间达到预设时间,且没有新的消息写入请求后,会自动释放基础容器,以减小系统资源的消耗。
49.本发明实施例提供的消息的处理方法,通过确定容器编排系统的各物理节点中用于存储目标消息的目标物理节点,并在目标物理节点上创建基础容器,根据创建的基础容器,将目标消息存储到目标物理节点,实现了目标消息的存储。与此同时,通过只在有消息写入时,才创建基础容器进行消息存储,在没有消息写入需求时,无需消耗固定的消息存储资源,实现了对目标消息的动态存储,从而避免了浪费固定的服务资源成本,节约了系统资源。
50.在一个实施例中,根据所述基础容器,将所述目标消息存储到所述目标物理节点中,包括:根据所述基础容器,调用函数即服务faas服务中的消息写入faas函数,将所述目标消息存储到所述目标物理节点。
51.在确定目标消息存储的目标物理节点后,根据基础容器,调用faas服务中的消息写入faas函数,通过消息写入faas函数将目标消息存储到目标物理节点中。
52.可以理解的是,通过faas服务,根据目标消息写入的需要,调用faas函数进行消息存储,可以实现动态创建函数并调用函数执行的能力。因为faas服务中所有的函数运行时不需要固定分配的服务器资源,只在有函数调用需求时才会动态分配并销毁。在有消息写入的时候调用函数存储消息,在没有消息写入需求时,无需消耗固定的消息存储资源,避免了企业浪费固定的服务资源成本,节约了系统资源。
53.本发明实施例提供的消息的处理方法,通过faas服务中的消息写入faas函数,将所述目标消息存储到所述目标物理节点中,实现了对目标消息的存储。与此同时,通过faas服务,调用消息写入faas函数进行消息存储,实现了在有消息写入的时候调用消息写入faas函数存储消息,在没有消息写入需求时,无需消耗固定的消息存储资源,节约了系统资源。
54.在一个实施例中,在所述目标物理节点上创建基础容器,包括:在所述目标物理节点上创建第一容器组,并在所述第一容器组中创建所述基础容器。
55.容器组为容器编排系统中的pod。pod是容器编排系统中能够创建和部署的最小单元,是容器编排系统中的一个应用实例。pod中包含了一个或多个容器,还包括了存储、网络等各个容器共享的资源。pod还支持多种容器环境。
56.在确定目标消息存储的目标物理节点后,首先在目标物理节点上创建第一容器组pod。在创建第一容器组pod后,在第一容器组pod中创建基础容器,即infra容器。通过infra容器执行后续的目标消息存储操作。
57.本发明实施例提供的消息的处理方法,通过在目标物理节点上创建第一容器组,并在第一容器组中创建基础容器,为后续实现在目标物理节点中目标消息的存储提供了基
础。
58.在一个实施例中,根据容器编排系统中各物理节点的节点信息以及所述目标消息的存储信息,确定所述各物理节点中用于存储所述目标消息的目标物理节点,包括:基于哈希一致性算法,确定容器编排系统中各物理节点的节点信息的哈希值以及所述目标消息的存储信息的哈希键值;根据所述各物理节点的节点信息的哈希值以及所述哈希键值,确定所述各物理节点中用于存储所述目标消息的目标物理节点。
59.在获取容器编排系统中各物理节点的节点信息以及目标消息的存储信息后,根据哈希一致性算法,确定各物理节点中用于存储目标消息的目标物理节点。具体地,根据哈希一致性算法,计算各物理节点的节点信息的哈希值以及目标信息的哈希键值,根据计算的各物理节点的节点信息的哈希值以及哈希键值,确定各物理节点中用于存储目标消息的目标物理节点。
60.本发明实施例提供的消息的处理方法,通过哈希一致性算法,确定容器编排系统中各物理节点的节点信息的哈希值以及所述目标消息的存储信息的哈希键值,从而最终确定各物理节点中用于存储目标消息的目标物理节点,为后续实现目标消息的存储提供了基础。
61.在一个实施例中,确定所述各物理节点中用于存储所述目标消息的目标物理节点之后,还包括:将所述哈希键值存储到所述目标物理节点。
62.在基于哈希一致性算法,确定目标消息的存储信息的哈希键值后,将目标消息的存储信息的哈希键值存储到目标物理节点中,用于后续查询或者读取目标消息。
63.本发明实施例提供的消息的处理方法,通过将所述目标消息的存储信息的哈希键值存储到所述目标物理节点中,方便了后续对存储的目标消息的查询与读取。
64.在一个实施例中,将所述目标消息存储到所述目标物理节点之后,还包括:接收目标消息的获取请求;根据所述哈希键值,确定存储所述目标消息的目标物理节点,并从所述目标物理节点中获取所述目标消息。
65.根据faas服务的网关,接收目标消息的获取请求。其中,获取可以包括目标消息的读取或者目标消息的查询。在接收到目标消息的获取请求后,根据存储的目标消息的存储信息的哈希键值,确定存储目标消息的目标物理节点,在存储目标消息的目标物理节点获取目标消息。
66.本发明实施例提供的消息的处理方法,通过存储的目标消息的存储信息的哈希键值,确定存储目标消息的目标物理节点,在存储目标消息的目标物理节点获取目标消息,实现了目标消息的获取。
67.在一个实施例中,从所述目标物理节点中获取所述目标消息,包括:根据faas服务的调度器,在所述目标物理节点上创建第二容器组,并在所述第二容器组中创建看门狗容器;根据所述看门狗容器,调用消息读取faas函数,获取所述目标消息。
68.容器组为容器编排系统中的pod。pod是容器编排系统中能够创建和部署的最小单元,是容器编排系统中的一个应用实例。pod中包含了一个或多个容器,还包括了存储、网络等各个容器共享的资源。pod还支持多种容器环境。
69.可选的,faas服务的调度器在存储所述目标消息的目标物理节点上创建第二容器组pod,并在该pod上创建一个看门狗watch-dog容器,该容器会从镜像仓库拉取消息读取
faas函数的镜像,并加载到当前watch-dog容器,在其中执行消息读取faas函数,获取目标消息。
70.通过调用消息读取faas函数进行消息读取,实现了在有消息读取的时候调用消息读取faas函数获取消息,在没有消息读取需求时,无需消耗固定的消息存储资源,节约了系统资源。
71.本发明实施例提供的消息的处理方法,通过faas服务中的消息读取faas函数,获取目标消息,实现了对目标消息的获取。与此同时,通过faas服务,调用消息读取faas函数进行消息获取,实现了在有消息读取的时候调用消息读取faas函数存储消息,在没有消息读取需求时,无需消耗固定的消息存储资源,节约了系统资源。
72.在一个实施例中,将所述目标消息存储到所述目标物理节点之后,还包括:获取所述容器编排系统中各物理节点的地址,根据流行病协议gossip协议,同步所述容器编排系统中各物理节点的存储状态信息。
73.可选的,基础容器在完成在将目标消息存储到目标物理节点的操作后,对于容器编排系统中的kubernetes集群,可以查询kubernetes集群的etcd组件,获取得到kubernetes集群中其他物理节点的地址。随后采用gossip协议,与kubernetes集群中其他物理节点进行通信,进行存储状态信息的同步。在完成目标消息存储和集群存储状态信息的同步之后,基础容器会持续监听faas服务的网关的消息写入请求,以及kubernetes集群中其他物理节点的存储状态信息同步。
74.本发明实施例提供的消息的处理方法,通过在完成目标消息的存储之后,获取容器编排系统中各物理节点的地址,根据gossip协议,同步容器编排系统中各物理节点的存储状态信息,方便了后续接收到消息写入时,根据容器编排系统各物理节点的节点信息,确定消息的存储节点。
75.下面以一应用本发明实施例提供的消息的处理方法为例,说明本发明实施例提供的技术方案:
76.其中,应用本发明实施例提供的消息的处理方法包括目标消息的写入和目标消息的获取。
77.目标消息的写入过程如图2本发明实施例提供的消息写入流程示意图所示。当有目标消息写入请求时,消息数据会首先到达集群的faas服务的gateway网关,faas服务的gateway会为该消息生成一个全局唯一的自增标识,并动态查询容器编排系统kubernetes集群中当前可用的物理节点数量。采用一致性哈希算法,以计算得到当前接收到的目标消息应当存入的目标物理节点,以及目标消息的存储信息的哈希键值。
78.faas服务的网关在目标物理节点中创建一个容器组pod,并在pod中创建一个infra基础容器。infra容器会将目标消息写入到目标物理节点的本地存储卷host-path中的消息日志文件里,并更新目标物理节点上的消息状态元数据。其中,消息状态元数据的及结构示意图如图3本发明实施例提供的消息状态元数据的结构示意图所示。消息状态元数据包括meta.json数据,index.jason数据以及chunk文件数据。meta.json数据存储的是各个物理节点的消息存储信息,包括各物理节点中存储的消息的hash key的范围,哪些消息是最新写入的,哪些消息是已读的。index.jason数据存储的是本物理节点消息的存储信息,包括本物理节点消息的hash key范围,最新写入消息具体存在哪个chunk文件的具体位
置,最新已读消息具体存在哪个chunk文件的具体位置。chunk文件数据是存储的本物理节点中消息存储的各chunk文件的相关数据。
79.在目标消息完成存储后,infra容器会通过kubernetes集群的管理api(application programming interface,应用程序编程接口)查询当前集群中其他物理节点如物理节点1和物理节点2的ip地址,并采用gossip协议与集群中物理节点1和物理节点2进行目标物理节点消息状态元数据的同步。
80.具体地,目标物理节点的infra容器会读取目标物理节点的host-path中的index.json文件,查询得到“目标物理节点最新写入消息所在的文件名”,并打开该文件名对应的chunk文件,随后通过“目标物理节点最新写入消息所在chunk文件中的字节偏移量”,定位到文件写入指针的偏移位置,并在该位置处写入目标消息的数据。
81.如果该chunk文件的大小超过了64kb,则会创建一个新的chunk文件。随后,更新index.json文件的内容。
82.在完成本机消息状态元数据的更新之后,infra容器会将目标物理节点的index.json数据,采用gossip协议的格式,与kubernetes集群中其他物理节点如物理节点1和物理节点2进行同步。
83.目标消息的获取过程如图4本发明实施例提供的消息获取流程示意图所示。当有目标消息的获取请求时,会通过faas服务的调度器,在kubernetes集群中创建一个容器组pod,并在该pod中创建一个看门狗容器watchdog进程,该进程会从镜像仓库中获取消息读取faas函数的镜像文件,随后watchdog进行会创建一个子进程启动基础容器,将调用的消息读取faas函数执行。
84.消息读取faas函数的函数执行首先会检查本物理节点的host-path,根据消息状态元数据中的内容,读取index.json文件,以判定当前物理节点上是否有最新的未被读取的消息日志。
85.如果没有,则该函数会查询meta.json文件,寻找有“未读取消息”的物理节点,随后将该读取请求重定向给其他物理节点。
86.如果当前物理节点上存在有最新的未被读取的消息日志,则查询函数会读取index.json文件中“本节点最新已读消息所在的文件名”,打开该文件名对应的chunk文件后,再通过“本节点最新已读消息所在chunk文件中的字节偏移量”,定位到文件读取指针的偏移位置,读取到该位置的消息日志。
87.在完成消息读取faas函数的执行后,该函数会对本节点的消息状态元数据进行更新。
88.图5为本发明实施例提供的消息的处理装置的结构示意图,如图5所示,该装置包括:
89.消息接收模块510,用于接收目标消息的写入请求;
90.存储节点确定模块520,用于根据容器编排系统中各物理节点的节点信息以及所述目标消息的存储信息,确定所述各物理节点中用于存储所述目标消息的目标物理节点;
91.消息存储模块530,用于在所述目标物理节点上创建基础容器,并根据所述基础容器,将所述目标消息存储到所述目标物理节点。
92.本发明实施例提供的消息的处理装置,通过确定容器编排系统的各物理节点中用
于存储目标消息的目标物理节点,并在目标物理节点上创建基础容器,根据创建的基础容器,将目标消息存储到所述目标物理节点,实现了目标消息的存储。与此同时,通过只在有消息写入时,才创建基础容器进行消息存储,在没有消息写入需求时,无需消耗固定的消息存储资源,实现了对目标消息的动态存储,从而避免了浪费固定的服务资源成本,节约了系统资源。
93.在一个实施例中,消息存储模块530具体用于:
94.所述根据所述基础容器,将所述目标消息存储到所述目标物理节点,包括:
95.根据所述基础容器,调用函数即服务faas服务中的消息写入faas函数,将所述目标消息存储到所述目标物理节点。
96.在一个实施例中,消息存储模块530还具体用于:
97.在所述目标物理节点上创建基础容器,包括:
98.在所述目标物理节点上创建第一容器组,并在所述第一容器组中创建所述基础容器。
99.在一个实施例中,存储节点确定模块520具体用于:
100.根据容器编排系统中各物理节点的节点信息以及所述目标消息的存储信息,确定所述各物理节点中用于存储所述目标消息的目标物理节点,包括:
101.基于哈希一致性算法,确定容器编排系统中各物理节点的节点信息的哈希值以及所述目标消息的存储信息的哈希键值;
102.根据所述各物理节点的节点信息的哈希值以及所述哈希键值,确定所述各物理节点中用于存储所述目标消息的目标物理节点。
103.在一个实施例中,存储节点确定模块520还具体用于:
104.确定所述各物理节点中用于存储所述目标消息的目标物理节点之后,还包括:
105.将所述哈希键值存储到所述目标物理节点。
106.在一个实施例中,存储节点确定模块520还具体用于:
107.将所述目标消息存储到所述目标物理节点之后,还包括:
108.接收目标消息的获取请求;
109.根据所述哈希键值,确定存储所述目标消息的目标物理节点,并从所述目标物理节点中获取所述目标消息。
110.在一个实施例中,存储节点确定模块520还具体用于:
111.从所述目标物理节点中获取所述目标消息,包括:
112.根据faas服务的调度器,在所述存目标物理节点上创建第二容器组,并在所述第二容器组中创建看门狗容器;
113.根据所述看门狗容器,调用消息读取faas函数,获取所述目标消息。
114.在一个实施例中,消息存储模块530还具体用于:
115.将所述目标消息存储到所述目标物理节点之后,还包括:
116.获取所述容器编排系统中各物理节点的地址,根据流行病协议gossip协议,同步所述容器编排系统中各物理节点的存储状态信息。
117.图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(communications interface)620、存储器(memory)630和
通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行如下方法:
118.接收目标消息的写入请求;
119.根据容器编排系统中各物理节点的节点信息以及所述目标消息的存储信息,确定所述各物理节点中用于存储所述目标消息的目标物理节点;
120.在所述目标物理节点上创建基础容器,并根据所述基础容器,将所述目标消息存储到所述目标物理节点。
121.此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
122.进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的消息的处理方法,例如包括:
123.接收目标消息的写入请求;
124.根据容器编排系统中各物理节点的节点信息以及所述目标消息的存储信息,确定所述各物理节点中用于存储所述目标消息的目标物理节点;
125.在所述目标物理节点上创建基础容器,并根据所述基础容器,将所述目标消息存储到所述目标物理节点。
126.另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的消息的处理方法,例如包括:
127.接收目标消息的写入请求;
128.根据容器编排系统中各物理节点的节点信息以及所述目标消息的存储信息,确定所述各物理节点中用于存储所述目标消息的目标物理节点;
129.在所述目标物理节点上创建基础容器,并根据所述基础容器,将所述目标消息存储到所述目标物理节点。
130.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
131.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上
述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
132.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
133.以上实施方式仅用于说明本发明,而非对本发明的限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行各种组合、修改或者等同替换,都不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围中。

技术特征:
1.一种消息的处理方法,其特征在于,包括:接收目标消息的写入请求;根据容器编排系统中各物理节点的节点信息以及所述目标消息的存储信息,确定所述各物理节点中用于存储所述目标消息的目标物理节点;在所述目标物理节点上创建基础容器,并根据所述基础容器,将所述目标消息存储到所述目标物理节点。2.根据权利要求1所述的消息的处理方法,其特征在于,所述根据所述基础容器,将所述目标消息存储到所述目标物理节点,包括:根据所述基础容器,调用函数即服务faas服务中的消息写入faas函数,将所述目标消息存储到所述目标物理节点。3.根据权利要求1所述的消息的处理方法,其特征在于,所述在所述目标物理节点上创建基础容器,包括:在所述目标物理节点上创建第一容器组,并在所述第一容器组中创建所述基础容器。4.根据权利要求1所述的消息的处理方法,其特征在于,所述根据容器编排系统中各物理节点的节点信息以及所述目标消息的存储信息,确定所述各物理节点中用于存储所述目标消息的目标物理节点,包括:基于哈希一致性算法,确定容器编排系统中各物理节点的节点信息的哈希值以及所述目标消息的存储信息的哈希键值;根据所述各物理节点的节点信息的哈希值以及所述哈希键值,确定所述各物理节点中用于存储所述目标消息的目标物理节点。5.根据权利要求4所述的消息的处理方法,其特征在于,所述确定所述各物理节点中用于存储所述目标消息的目标物理节点之后,还包括:将所述哈希键值存储到所述目标物理节点。6.根据权利要求5所述的消息的处理方法,其特征在于,所述将所述目标消息存储到所述目标物理节点之后,还包括:接收目标消息的获取请求;根据所述哈希键值,确定存储所述目标消息的目标物理节点,并从所述目标物理节点中获取所述目标消息。7.根据权利要求6所述的消息的处理方法,其特征在于,所述从所述目标物理节点中获取所述目标消息,包括:根据faas服务的调度器,在所述目标物理节点上创建第二容器组,并在所述第二容器组中创建看门狗容器;根据所述看门狗容器,调用消息读取faas函数,获取所述目标消息。8.根据权利要求1所述的消息的处理方法,其特征在于,所述将所述目标消息存储到所述目标物理节点之后,还包括:获取所述容器编排系统中各物理节点的地址,根据流行病协议gossip协议,同步所述容器编排系统中各物理节点的存储状态信息。9.一种消息的处理装置,其特征在于,包括:消息接收模块,用于接收目标消息的写入请求;
存储节点确定模块,用于根据容器编排系统中各物理节点的节点信息以及所述目标消息的存储信息,确定所述各物理节点中用于存储所述目标消息的目标物理节点;消息存储模块,用于在所述目标物理节点上创建基础容器,并根据所述基础容器,将所述目标消息存储到所述目标物理节点。10.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8任一项所述消息的处理方法。11.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述消息的处理方法。12.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述消息的处理方法。

技术总结
本发明涉及计算机技术领域,提供一种消息的处理方法及装置。该方法包括:接收目标消息的写入请求;根据容器编排系统各物理节点的节点信息以及目标消息的存储信息,确定各物理节点中用于存储目标消息的目标物理节点;在目标物理节点上创建基础容器,并根据基础容器,将目标消息存储到目标物理节点。本发明提供的消息的处理方法及装置,通过确定存储目标消息的目标物理节点,并在目标物理节点上创建基础容器,根据创建的基础容器,将目标消息存储到目标物理节点,实现了目标消息的存储,与此同时,通过只在有消息写入时,才创建基础容器进行消息存储,在没有消息写入需求时,无需消耗固定的消息存储资源,节约了系统资源。节约了系统资源。节约了系统资源。


技术研发人员:许守明 蔡少东 韩旭 冯家浩
受保护的技术使用者:美的集团股份有限公司
技术研发日:2022.04.22
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-4691.html

最新回复(0)