一种服务消息的推送方法、装置、电子设备及存储介质与流程

文档序号:29627948发布日期:2022-04-13 15:00阅读:95来源:国知局
一种服务消息的推送方法、装置、电子设备及存储介质与流程

1.本技术涉及计算机技术领域,尤其涉及一种服务消息的推送方法、装置、电子设备及存储介质。


背景技术:

2.云计算是继互联网、计算机之后的有一次信息技术革命。与传统的网络应用相比,云计算具有的资源虚拟化、动态可扩展、性价比高等特点,使云平台成为政府、企业等机构构建办公平台的首选,“云上办公”新的发展趋势。随之而来的,各种类型的云被快速搭建,如阿里云、腾讯云等公有云、各级政府搭建的政务云、企业搭建的私有云。
3.尽管有使用场景和网络安全隔离等级的不同,各种类型的云平台都有较为复杂的多部门、多租户体系,而类似于部门通知、公司新闻等消息,就需要按照用户的部门从属关系,准确、实时的投递到用户浏览页面。当前现有的技术没有实现基于用户部门架构的消息隔离,或者没有保证消息的实时性、可靠性。


技术实现要素:

4.为了解决上述技术问题或者至少部分地解决上述技术问题,本技术提供了一种服务消息的推送方法、装置、电子设备及存储介质。
5.根据本技术实施例的一个方面,提供了一种服务消息的推送方法,应用于部署在目标集群中的容器,所述方法包括:
6.获取发送设备的消息推送请求,其中,所述消息推送请求携带待处理的目标服务消息,以及所述目标服务消息对应的目标需求信息;
7.查询满足所述目标需求信息的目标接收设备;
8.检测所述目标接收设备与当前容器之间目标长连接链路的建立结果;
9.根据所述建立结果确定用于推送所述目标服务消息的目标容器,通过所述目标容器将所述目标服务消息推送至所述目标接收设备。
10.进一步的,所述查询满足所述目标需求信息的目标接收设备,包括:
11.获取所述发送设备对应的目标标识;
12.根据所述目标标识从权限树中获取所述请求方对应的权限信息;
13.基于所述权限信息确定所述目标标识对应的接收设备集合;
14.从所述接收设备集合中选择满足所述目标需求信息的目标接收设备。
15.进一步的,所述检测所述目标接收设备与当前容器之间目标长连接链路的建立结果,包括:
16.从数据库中查询所述当前容器对应的长连接链路集合,其中,所述长连接链路集合中包括:所述当前容器与目标集群的外部设备连接的至少一个长连接链路;
17.从所述长连接链路集合中获取所述目标接收设备与当前容器之间目标长连接链路的建立结果。
18.进一步的,所述根据所述建立结果确定用于推送所述目标服务消息的目标容器,通过所述目标容器将所述目标服务消息推送至所述目标接收设备,包括:
19.在所述建立结果用于指示所述长连接链路集合中存在所述目标接收设备与当前容器之间的目标长连接链路时,将所述当前容器确定为目标容器,并通过所述目标长连接链路将所述目标服务消息推送至所述目标接收设备。
20.进一步的,所述根据所述建立结果确定用于推送所述目标服务消息的目标容器,通过所述目标容器将所述目标服务消息推送至所述目标接收设备,包括:
21.在所述建立结果用于指示所述长连接链路集合中不存在所述目标接收设备与当前容器之间的目标长连接链路时,获取与所述当前容器绑定的交换机;
22.将所述目标服务消息存储至所述交换机中的消息队列,以使部署在所述目标集群中的目标容器从所述消息队列中监听所述目标服务消息,并将所述目标服务消息推送至所述目标接收设备。
23.进一步的,在获取与所述当前容器绑定的交换机之前,所述方法还包括:
24.在监听所述当前容器启动的情况下,创建所当前容器对应的消息队列;
25.建立所述当前容器与所述消息队列之间的对应关系;
26.将所述对应关系以及所述消息队列存储至所述交换机。
27.进一步的,所述方法还包括:
28.监听所述消息队列;
29.在确定所述消息队列中存在来自于目标集群内其他容器发送的待处理服务消息时,从所述消息队列中查询提取所述待处理服务消息;
30.查询所述待处理服务消息对应的接收设备;
31.调用所述当前容器与所述接收设备之间的长连接通信链路发送所述待处理服务消息。
32.根据本技术实施例的另一个方面,还提供了一种服务消息的推送装置,包括:
33.获取模块,用于获取发送设备的消息推送请求,其中,所述消息推送请求携带待处理的目标服务消息,以及所述目标服务消息对应的目标需求信息;
34.查询模块,用于查询满足所述目标需求信息的目标接收设备;
35.检测模块,用于检测所述目标接收设备与当前容器之间长连接链路的建立结果;
36.处理模块,用于根据所述建立结果确定用于推送所述目标服务消息的目标容器,通过所述目标容器将所述目标服务消息推送至所述目标接收设备。
37.根据本技术实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的步骤。
38.根据本技术实施例的另一方面,还提供了一种电子装置,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;其中:存储器,用于存放计算机程序;处理器,用于通过运行存储器上所存放的程序来执行上述方法中的步骤。
39.本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法中的步骤。
40.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:本技术提供的
方法通过查询满足目标需求信息的目标接收设备,能够实现消息隔离,同时基于接收设备与容器之间目标长连接链路的建立结果确定用于推送目标服务消息的目标容器,确保了消息能够精准投送。
附图说明
41.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
42.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
43.图1为本技术实施例提供的一种服务消息的推送方法的流程图;
44.图2为本技术另一实施例提供的一种服务消息的推送方法的流程图;
45.图3为本技术另一实施例提供的一种服务消息的推送方法的流程图;
46.图4为本技术实施例提供的一种服务消息的推送装置的框图;
47.图5为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
48.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
49.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个类似的实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
50.本技术实施例提供了一种服务消息的推送方法、装置、电子设备及存储介质。本发明实施例所提供的方法可以应用于任意需要的电子设备,例如,可以为服务器、终端等电子设备,在此不做具体限定,为描述方便,后续简称为电子设备。
51.根据本技术实施例的一方面,提供了一种服务消息的推送方法的方法实施例。图1为本技术实施例提供的一种服务消息的推送方法的流程图,如图1所示,该方法包括:
52.步骤s11,获取发送设备的消息推送请求,其中,消息推送请求携带待处理的目标服务消息,以及目标服务消息对应的目标需求信息。
53.本技术实施例提供的方法应用于部署在目标集群中的容器,当管理员需要向部门内部的用户推送消息时,会将待推送的目标服务消息,以及目标服务消息对应的目标需求信息携带在消息推送请求中,然后通过发送设备向目标集群中的容器发送所述消息推送请
求。
54.需要说明的是,目标需求信息中可以包括:目标服务信息的信息等级,或者是目标服务信息对应的查阅权限等等。
55.步骤s12,查询满足目标需求信息的目标接收设备。
56.在本技术实施例中,步骤s12,查询满足目标需求信息的目标接收设备,包括以下步骤a1-a4:
57.步骤a1,获取发送设备对应的目标标识。
58.步骤a2,根据目标标识从权限树中获取请求方对应的权限信息。
59.步骤a3,基于权限信息确定目标标识对应的接收设备集合。
60.步骤a4,从接收设备集合中选择满足目标需求信息的目标接收设备。
61.在本技术实施例中,容器在接收到发送设备传输的消息推送请求后,会获取发送设备对应的目标标识,其中,目标标识可以是发送设备的设备编码,或者是发送设备所属部门的编码等等。然后基于容器中存储的权限树中查询目标标识对应的权限信息,其中,权限信息为:目标标识对应的接收设备集合,接收设备集合中包括至少一个接收设备标识。
62.需要说明的是,权限树中包括多个标识,以及每个标识对应的权限信息,权限信息可以是每个标识对应的接收设备集合,接收设备集合中包括至少一个设备标识,可以理解为:接收设备集合中存储的设备标识是当前发送设备能够进行消息推送的设备的设备标识。例如:权限树中包括:标识a,标识a对应接收设备集合中包括:设备标识v1,v2,v3等等。标识b,标识b对应接收设备集合中包括:设备标识v2,v4,v5等等。标识c,标识b对应接收设备集合中包括:设备标识v7,v8,v9等等。
63.在本技术实施例中,在确定目标标识对应的接收设备集合后,会从接收设备集合中选择满足目标需求信息的目标接收设备标识,并将接收设备标识对应的接收设备确定为目标接收设备。
64.作为一个示例,目标服务消息对应的目标需求信息可以是目标服务消息的接收权限,接收权限中包括预设设备等级,然后查询接收设备集合中各个接收设备标识对应的等级,然后将等级满足预设设备等级的接收设备标识确定为目标接收设备标识,并将目标接收设备标识对应的设备确定为目标接收设备。
65.步骤s13,检测目标接收设备与当前容器之间目标长连接链路的建立结果。
66.在本技术实施例中,步骤s13,检测目标接收设备与当前容器之间目标长连接链路的建立结果,包括以下步骤b1-b2:
67.步骤b1,从数据库中查询当前容器对应的长连接链路集合,其中,长连接链路集合中包括:当前容器与目标集群的外部设备连接的至少一个长连接链路。
68.步骤b2,从长连接链路集合中获取目标接收设备与当前容器之间目标长连接链路的建立结果。
69.在本技术实施例中,当容器确定目标接收设备后,会从数据库中查询容器当前对应的长连接链路集合,长连接链路集合中包括:当前容器与目标集群的外部设备连接的至少一个长连接链路。可以理解的,长连接链路是用于连接容器与外部设备的通信链路,长链接链路是容器和接收设备利用websocket协议构建的通信链路。
70.当查询到容器对应的长连接链路集合后,会从长连接链路集合中查询是否存在该
容器与目标接收设备之间的目标长连接链路,最终得到建立结果。建立结果可以是,长连接链路集合中不存在该容器与目标接收设备之间的目标长连接链路。或者,长连接链路集合中存在该容器与目标接收设备之间的目标长连接链路。
71.步骤s14,根据建立结果确定用于推送目标服务消息的目标容器,通过目标容器将目标服务消息推送至目标接收设备。
72.在本技术实施例中,步骤s14,根据建立结果确定用于推送目标服务消息的目标容器,通过目标容器将目标服务消息推送至目标接收设备,包括:
73.在建立结果用于指示长连接链路集合中存在目标接收设备与当前容器之间的目标长连接链路时,将当前容器确定为目标容器,并通过目标长连接链路将目标服务消息推送至目标接收设备。
74.在本技术实施例中,当长连接链路集合中存在目标接收设备与当前容器之间的目标长连接链路时,则确定当前容器与目标容器之间已经建立连接关系,因此可以直接将当前容器确定为目标容器,然后通过目标目标长连接链路将目标服务消息推送至目标接收设备。
75.在本技术实施例中,步骤s14,根据建立结果确定用于推送目标服务消息的目标容器,通过目标容器将目标服务消息推送至目标接收设备,包括以下步骤c1-c2:
76.步骤c1,在建立结果用于指示长连接链路集合中不存在目标接收设备与当前容器之间的目标长连接链路时,获取与当前容器绑定的交换机。
77.步骤c2,将目标服务消息存储至交换机中的消息队列,以使部署在目标集群中的目标容器从消息队列中监听目标服务消息,并将目标服务消息推送至目标接收设备。
78.在本技术实施例中,当长连接链路集合中不存在目标接收设备与当前容器之间的目标长连接链路时,当前容器会将目标服务消息存储至与该容器绑定的交换机,将目标服务消息存储至交换机中的消息队列,由于交换机绑定有多个容器,因此与交换机绑定的其他容器会从消息队列中监听到该目标服务消息,并对目标服务消息进行解析,当其他容器中存在与该目标服务消息关联的接收设备的长连接链路时,将该容器确定为目标容器,并通过该目标容器将目标服务消息推送至目标接收设备。
79.本技术提供的方法通过查询满足目标需求信息的目标接收设备,能够实现消息隔离,同时基于接收设备与容器之间目标长连接链路的建立结果确定用于推送目标服务消息的目标容器,确保了消息能够精准投送。图2为本技术另一实施例提供的一种服务消息的推送方法的流程图,如图2所示,在获取与当前容器绑定的交换机之前,方法还包括:
80.步骤s21,在监听当前容器启动的情况下,创建所当前容器对应的消息队列。
81.步骤s22,建立当前容器与消息队列之间的对应关系。
82.步骤s23,将对应关系以及消息队列存储至交换机。
83.本技术实施例的场景基于k8s部署后端服务,由多个容器构成服务集群,集群内的每个容器可提供相同的功能,并提供高可用服务,请求发送到后端服务时,由k8s自动完成在多个容器之间的负载均衡。因此本技术实施例通过在每个容器启动时,使容器自动连接rabbitmq服务,创建并维护一个消息队列,并基于binding key绑定到direct类型交换机上,之后发送到该交换机且routing key=binding key的消息,都会路由到当前容器维护的队列中;同时消息队列被监听,路由到队列的消息,都会被当前容器进一步处理。
84.在本技术实施例中,用户登录系统时,由web端向后端服务发送请求,与后端服务的任意容器建立长链接,并且后端服务将当前长链接的信息(如用户session、容器路由信息)保存到数据库。用户登出系统时,web端发送下线请求,后端服务关闭长链接,并从数据库中移除连接信息。
85.后台服务同时有系统定时任务,定期向数据库集群注册当前容器的信息(容器路由信息、本次注册时间),并检测其他节点的注册信息,当发现有某一容器节点在规定时间间隔(如2倍的任务周期)内,未更新注册信息,系统则认为该容器已经下线,并从数据库中删除该容器注册信息,以及保存的该容器上的长链接信息。
86.图3为本技术另一实施例提供的一种服务消息的推送方法的流程图,如图3所示,方法还包括:
87.步骤s31,监听消息队列。
88.步骤s32,在确定消息队列中存在来自于目标集群内其他容器发送的待处理服务消息时,从消息队列中查询提取待处理服务消息。
89.步骤s33,查询待处理服务消息对应的接收设备。
90.步骤s34,调用当前容器与接收设备之间的长连接通信链路发送待处理服务消息。
91.图4为本技术实施例提供的一种服务消息的推送装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图4所示,该装置包括:
92.获取模块41,用于获取发送设备的消息推送请求,其中,消息推送请求携带待处理的目标服务消息,以及目标服务消息对应的目标需求信息;
93.查询模块42,用于查询满足目标需求信息的目标接收设备;
94.检测模块43,用于检测目标接收设备与当前容器之间长连接链路的建立结果;
95.处理模块44,用于根据建立结果确定用于推送目标服务消息的目标容器,通过目标容器将目标服务消息推送至目标接收设备。
96.在本技术实施例中,查询模块42,用于获取发送设备对应的目标标识。根据目标标识从权限树中获取请求方对应的权限信息。基于权限信息确定目标标识对应的接收设备集合。从接收设备集合中选择满足目标需求信息的目标接收设备。
97.在本技术实施例中,检测模块43,用于从数据库中查询当前容器对应的长连接链路集合,其中,长连接链路集合中包括:当前容器与目标集群的外部设备连接的至少一个长连接链路;从长连接链路集合中获取目标接收设备与当前容器之间目标长连接链路的建立结果。
98.在本技术实施例中,处理模块44,用于在建立结果用于指示长连接链路集合中存在目标接收设备与当前容器之间的目标长连接链路时,将当前容器确定为目标容器,并通过目标长连接链路将目标服务消息推送至目标接收设备。
99.在本技术实施例中,处理模块44,用于在建立结果用于指示长连接链路集合中不存在目标接收设备与当前容器之间的目标长连接链路时,获取与当前容器绑定的交换机;将目标服务消息存储至交换机中的消息队列,以使部署在目标集群中的目标容器从消息队列中监听目标服务消息,并将目标服务消息推送至目标接收设备。
100.在本技术实施例中,服务消息的推送装置还包括:监听模块,用于在监听当前容器启动的情况下,创建所当前容器对应的消息队列;建立当前容器与消息队列之间的对应关
系;将对应关系以及消息队列存储至交换机。
101.在本技术实施例中,服务消息的推送装置还包括:发送模块,用于监听消息队列;在确定消息队列中存在来自于目标集群内其他容器发送的待处理服务消息时,从消息队列中查询提取待处理服务消息;查询待处理服务消息对应的接收设备;调用当前容器与接收设备之间的长连接通信链路发送待处理服务消息。
102.本技术实施例还提供一种电子设备,如图5所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
103.存储器1503,用于存放计算机程序;
104.处理器1501,用于执行存储器1503上所存放的计算机程序时,实现上述实施例的步骤。
105.上述终端提到的通信总线可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
106.通信接口用于上述终端与其他设备之间的通信。
107.存储器可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
108.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
109.在本技术提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的xxxx方法。
110.在本技术提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的xxxx方法。
111.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性
介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk)等。
112.以上所述仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本技术的保护范围内。
113.以上所述仅是本技术的具体实施方式,使本领域技术人员能够理解或实现本技术。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1