CN117176796A - 消息推送方法、装置、计算机设备和存储介质 - Google Patents
消息推送方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN117176796A CN117176796A CN202311234660.1A CN202311234660A CN117176796A CN 117176796 A CN117176796 A CN 117176796A CN 202311234660 A CN202311234660 A CN 202311234660A CN 117176796 A CN117176796 A CN 117176796A
- Authority
- CN
- China
- Prior art keywords
- hash
- physical server
- virtual node
- terminal
- target
- 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
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000004891 communication Methods 0.000 claims abstract description 84
- 238000004364 calculation method Methods 0.000 claims abstract description 51
- 238000004590 computer program Methods 0.000 claims abstract description 27
- 230000006870 function Effects 0.000 claims description 56
- 230000002159 abnormal effect Effects 0.000 claims description 23
- 238000013507 mapping Methods 0.000 claims description 14
- 230000008859 change Effects 0.000 claims description 7
- 239000002699 waste material Substances 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Landscapes
- Computer And Data Communications (AREA)
Abstract
本申请涉及大数据技术领域,提供一种消息推送方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:接收终端发送的携带终端的身份标识的消息推送请求,调用预设的一致性哈希函数对身份标识进行哈希计算,得到目标哈希值,在预构建的哈希环中查找出与目标哈希值最接近的目标虚拟节点,将消息推送请求转发至目标虚拟节点对应的目标物理服务器,以使目标物理服务器推送消息至终端,其中,预构建的哈希环包括多个均匀分布的虚拟节点,一个物理服务器对应多个虚拟节点。采用上述方法可通过一致性哈希函数明确知道与终端建立通信连接的服务器,无需转发给所有的服务器并让所有服务器遍历session表,从而减少服务器资源的浪费。
Description
技术领域
本申请涉及大数据技术领域,特别是涉及一种消息推送方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
在分布式场景下,基于session(会话)广播的消息推送方案,由于不知道客户端与哪台服务器建立了链接,需要通过网关将消息推送请求转发到所有的服务器。其中,每台服务器保存有客户端和session的映射表,通过遍历映射表可以判断当前服务器是否有跟客户端相关的session,如果有,则推送消息,如果没有则忽略此次请求。
然而,上述方案虽然简单,但是,当某台服务器没有建立和相关客户端的session或只有一台服务器与客户端建立了链接,若采用上述方案通过遍历所有服务器的方式确定推送消息的服务器,会存在服务器计算力资源浪费的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够节约服务器资源的消息推送方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种消息推送方法。所述方法包括:
接收终端发送的消息推送请求,消息推送请求携带终端的身份标识;
调用预设的一致性哈希函数对身份标识进行哈希计算,得到目标哈希值;
在预构建的哈希环中查找出与目标哈希值最接近的目标虚拟节点;
将消息推送请求转发至目标虚拟节点对应的目标物理服务器,以使目标物理服务器推送消息至终端;
其中,预构建的哈希环包括多个均匀分布的虚拟节点,一个物理服务器对应多个虚拟节点。
在其中一个实施例中,在预构建的哈希环中查找出与目标哈希值最接近的目标虚拟节点之前,还包括:
针对服务器集群中每一物理服务器,创建多个虚拟节点,并确定各虚拟节点的身份标识;
调用预设的一致性哈希函数对各虚拟节点的身份标识进行哈希计算,并将计算得到的第一哈希值分别映射至预构建的哈希环;
获取待连接的终端的身份标识;
调用预设的一致性哈希函数对待连接的终端的身份标识进行哈希计算,得到第二哈希值;
在预构建的哈希环中查找出与第二哈希值最接近的虚拟节点,建立查找出的虚拟节点对应的物理服务器与待连接的终端的通信连接。
在其中一个实施例中,针对服务器集群中每一物理服务器,创建多个虚拟节点,确定各虚拟节点的身份标识包括:
获取服务器集群中物理服务器的数量和性能参数;
根据物理服务器的数量和性能参数,确定每一物理服务器对应的虚拟节点的数量;
基于每一物理服务器对应的虚拟节点的数量,为每一物理服务器创建多个虚拟节点;
根据物理服务器的身份标识,确定与物理服务器对应的虚拟节点的身份标识。
在其中一个实施例中,在预构建的哈希环中查找出与目标哈希值最接近的目标虚拟节点包括:
若在预构建的哈希环中查找出与目标哈希值最接近的虚拟节点,检测查找出的虚拟节点对应的物理服务器是否与终端建立通信连接、以及虚拟节点对应的物理服务器是否处于可用状态;
若查找出的虚拟节点对应的物理服务器与终端建立有通信连接、且虚拟节点对应的物理服务器处于可用状态,则将查找出的虚拟节点确定为目标虚拟节点。
在其中一个实施例中,还包括:
若存在待新增物理服务器,则针对待新增物理服务器,创建多个待新增虚拟节点,并确定每一待新增虚拟节点的身份标识;
调用预设的一致性哈希函数对各待新增虚拟节点的身份标识进行哈希计算,并将计算得到的哈希值分别映射至预构建的哈希环;
若监测到需要变更通信连接的待重连终端,则调用预设的一致性哈希函数对待重连终端的身份标识进行哈希计算,得到第三哈希值;
在预构建的哈希环中,查找出与第三哈希值最接近的待重连虚拟节点,建立待重连终端与待重连虚拟节点对应的物理服务器的通信连接。
在其中一个实施例中,方法还包括:
若监测到发生故障或下线的异常物理服务器,则从预构建的哈希环中删除与异常物理服务器对应的虚拟节点,并断开异常物理服务器与终端的通信连接;
调用预设的一致性哈希函数,对断开通信连接的终端的身份标识进行哈希计算,得到第四哈希值;
在预构建的哈希环中,查找出与第四哈希值最接近的虚拟节点,建立断开通信连接的终端与虚拟节点对应的物理服务器的通信连接。
在其中一个实施例中,哈希环的数据结构包括二叉树或链表。
第二方面,本申请提供了一种消息推送装置。所述装置包括:
请求接收模块,用于接收终端发送的消息推送请求,消息推送请求携带终端的身份标识;
哈希计算模块,用于调用预设的一致性哈希函数对身份标识进行哈希计算,得到目标哈希值;
节点查找模块,用于在预构建的哈希环中查找出与目标哈希值最接近的目标虚拟节点;
请求转发模块,用于将消息推送请求转发至目标虚拟节点对应的目标物理服务器,以使目标物理服务器推送消息至终端;
其中,预构建的哈希环包括多个均匀分布的虚拟节点,一个物理服务器对应多个虚拟节点。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收终端发送的消息推送请求,消息推送请求携带终端的身份标识;
调用预设的一致性哈希函数对身份标识进行哈希计算,得到目标哈希值;
在预构建的哈希环中查找出与目标哈希值最接近的目标虚拟节点;
将消息推送请求转发至目标虚拟节点对应的目标物理服务器,以使目标物理服务器推送消息至终端;
其中,预构建的哈希环包括多个均匀分布的虚拟节点,一个物理服务器对应多个虚拟节点。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收终端发送的消息推送请求,消息推送请求携带终端的身份标识;
调用预设的一致性哈希函数对身份标识进行哈希计算,得到目标哈希值;
在预构建的哈希环中查找出与目标哈希值最接近的目标虚拟节点;
将消息推送请求转发至目标虚拟节点对应的目标物理服务器,以使目标物理服务器推送消息至终端;
其中,预构建的哈希环包括多个均匀分布的虚拟节点,一个物理服务器对应多个虚拟节点。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
接收终端发送的消息推送请求,消息推送请求携带终端的身份标识;
调用预设的一致性哈希函数对身份标识进行哈希计算,得到目标哈希值;
在预构建的哈希环中查找出与目标哈希值最接近的目标虚拟节点;
将消息推送请求转发至目标虚拟节点对应的目标物理服务器,以使目标物理服务器推送消息至终端;
其中,预构建的哈希环包括多个均匀分布的虚拟节点,一个物理服务器对应多个虚拟节点。
上述消息推送方法、装置、计算机设备、存储介质和计算机程序产品,接收到终端发送的携带身份标识的消息推送请求后,调用预设的一致性哈希函数对身份标识进行哈希计算,得到目标哈希值,然后,在预构建的哈希环中查找出与目标哈希值最接近的目标虚拟节点,将消息推送请求转发至目标虚拟节点对应的目标物理服务器,以使目标物理服务器推送消息至终端,其中,预构建的哈希环包括多个均匀分布的虚拟节点,一个物理服务器对应多个虚拟节点。整个方案,通过将终端和服务器映射至哈希环上,在哈希环中设置各物理服务器节点对应的多个虚拟节点,并将多个虚拟节点均匀分布在哈希环,能够在分布式系统中提高较好的负载均衡和容错能力,并且,当添加或删除物理服务器时,只会影响到哈希环上的少量虚拟节点,而不会导致大量数据重新分布,能够很大程度上降低消息重发的几率,在消息推送过程中,通过一致性哈希算法进行计算,当需要给客户端推送消息时,可以通过一致性哈希函数明确知道终端与哪些服务器建立了通信连接,且通过查找出离终端最近的服务器,将消息推送请求转发至查找出的服务器,能够减少延迟和网络传输开销,无需将请求转发给所有的服务器,且无需使所有服务器遍历session表,从而减少服务器资源的浪费。
附图说明
图1为一个实施例中消息推送方法的应用环境图;
图2为一个实施例中消息推送方法的流程示意图;
图3为一个实施例中建立终端与物理服务器的通信连接的步骤的流程示意图;
图4为另一个实施例中建立终端与物理服务器的通信连接的步骤的流程示意图;
图5为一个实施例中消息推送方法的详细流程示意图;
图6为一个实施例中哈希环上新增物理服务器节点的示意图;
图7为另一个实施例中消息推送方法的详细流程示意图;
图8为一个实施例中消息推送装置的结构框图;
图9为另一个实施例中消息推送装置的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
需要说明的是,本申请所涉及的用户信息(包括但不限于服务器设备信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要符合相关规定。
本申请实施例提供的消息推送方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与物理服务器104(以下简称服务器104)进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。具体地,可以是预先构建哈希环,针对每一台物理服务器,构建多个虚拟节点,并将多个虚拟节点映射至哈希环上,使其均匀分布在哈希环上。终端102发送携带身份标识的消息推送请求至服务器104,服务器104接收该消息推送请求,调用预设的一致性哈希函数对身份标识进行哈希计算,得到终端102的哈希值,在预构建的哈希环中查找出与目标哈希值最接近的目标虚拟节点,将消息推送请求转发至目标虚拟节点对应的目标物理服务器106,以使目标物理服务器106推送消息至终端102,完成消息推送。
其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种消息推送方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
S200,接收终端发送的消息推送请求,消息推送请求携带终端的身份标识。
终端的身份标识包括但不限于IP(Internet Protocol,网际协议)地址、设备序列和设备唯一标识等数据。本实施例中,以身份标识为IP地址为例进行说明。
在实际应用中,可以是预先根据预设的一致性哈希函数的函数值,构建初始的哈希环,一般为采用一致性哈希算法对服务器的身份标识进行哈希计算,得到哈希值,再将哈希值按照大小顺序依次插入至哈希环对应的位置中,以将服务器映射到哈希环上。当某一用户终端需要推送消息至另一用户终端时,可发送携带自身的身份标识的消息推送请求至服务器。具体的,一致性哈希函数可以包括但不限于CRC32_HASH、FNV1_32_HASH、KETAMA_HASH等。
S400,调用预设的一致性哈希函数对身份标识进行哈希计算,得到目标哈希值。
承接上一实施例,当获取终端的IP地址后,可以是采用预设的一致性哈希函数对IP地址进行哈希计算,得到目标哈希值。具体地,哈希计算过程即是指将终端的IP地址作为输入,调用预设的一致性哈希函数,将终端的IP地址转换成一个固定长度的哈希值,得到目标哈希值。可以理解的是,本申请关于一致性哈希计算过程,采用的均是同一种一致性哈希函数。
S600,在预构建的哈希环中查找出与目标哈希值最接近的目标虚拟节点,其中,预构建的哈希环包括多个均匀分布的虚拟节点,一个物理服务器对应多个虚拟节点。
哈希环可以是一个固定范围的整数,也可以是一个连续的圆环。在实际应用中,构建哈希环的过程可以是:确定参与一致性哈希算法的物理服务器节点数量,选择一个适当的一致性哈希函数,用于将节点的标识转换成哈希值,创建一个环形结构,表示哈希环。具体的,可将一致性哈希函数的哈希值映射到一个环形空间,通常是一个范围在0到2^32-1(或其他固定范围)之间的整数环,可以使用一个数组或链表来表示这个环。
然后,对于每个物理服务器节点,构建多个虚拟节点,通过哈希计算,将虚拟节点均匀分布在哈希环,并将物理服务器节点与哈希环上的虚拟节点进行关联。接着,对哈希环上的虚拟节点进行排序,按照哈希值的大小顺序排列,得到哈希环。构建哈希环的过程完成后,物理服务器节点就与哈希环上的虚拟节点建立了映射关系。
具体实施时,当得到目标哈希值后,可在哈希环上按照顺时针方向或逆时针方向查找,直到找到第一个哈希值大于等于该哈希值的虚拟节点出,将查找出的虚拟节点确定为离终端最近的目标虚拟节点。
S800,将消息推送请求转发至目标虚拟节点对应的目标物理服务器,以使目标物理服务器推送消息至终端。
当确定目标虚拟节点后,可以是将消息推送请求转发至目标虚拟节点相关联的目标物理服务器上。具体地,可以通过维护一个虚拟节点到物理服务器的映射表来实现,从映射表中获取目标虚拟节点对应的物理服务器,然后将消息推送请求发送给该目标物理服务器。目标物理服务器接收到消息推送请求后,根据终端的IP地址,将消息推送给终端。
上述消息推送方法、装置、计算机设备、存储介质和计算机程序产品,接收到终端发送的携带身份标识的消息推送请求后,调用预设的一致性哈希函数对身份标识进行哈希计算,得到目标哈希值,然后,在预构建的哈希环中查找出与目标哈希值最接近的目标虚拟节点,将消息推送请求转发至目标虚拟节点对应的目标物理服务器,以使目标物理服务器推送消息至终端,其中,预构建的哈希环包括多个均匀分布的虚拟节点,一个物理服务器对应多个虚拟节点。整个方案,通过将终端和服务器映射至哈希环上,在哈希环中设置各物理服务器节点对应的多个虚拟节点,并将多个虚拟节点均匀分布在哈希环,能够在分布式系统中提高较好的负载均衡和容错能力,并且,当添加或删除物理服务器时,只会影响到哈希环上的少量虚拟节点,而不会导致大量数据重新分布,能够很大程度上降低消息重发的几率,在消息推送过程中,通过一致性哈希算法进行计算,当需要给客户端推送消息时,可以通过一致性哈希函数明确知道终端与哪些服务器建立了通信连接,且通过查找出离终端最近的服务器,将消息推送请求转发至查找出的服务器,能够减少延迟和网络传输开销,无需将请求转发给所有的服务器,且无需使所有服务器遍历session表,从而减少服务器资源的浪费。
如图3所示,在其中一个实施例中,S600之前,还包括:
S100,针对服务器集群中每一物理服务器,创建多个虚拟节点,并确定各虚拟节点的身份标识。
S120,调用预设的一致性哈希函数对各虚拟节点的身份标识进行哈希计算,并将计算得到的第一哈希值分别映射至预构建的哈希环。
S140,获取待连接的终端的身份标识。
S160,调用预设的一致性哈希函数对待连接的终端的身份标识进行哈希计算,得到第二哈希值。
S180,在预构建的哈希环中查找出与第二哈希值最接近的虚拟节点,建立查找出的虚拟节点对应的物理服务器与待连接的终端的通信连接。
本实施例是对基于哈希环建立终端与服务器的通信连接的过程的具体说明。具体地,可以是获取服务器集群中待新增物理服务器列表,对于每个物理服务器节点,构建多个虚拟节点,为每个虚拟节点分配一个唯一的身份标识。身份标识可以是字符串、数字或其他形式的标识符,用于在哈希环上定位虚拟节点的位置。具体地,虚拟节点的身份标识可以是在对应的物理服务器的身份标识后面拼接相应的字符串。
然后,调用预设的一致性哈希函数对各虚拟节点的身份标识进行哈希计算,得到每一虚拟节点对应的第一哈希值,再分别将第一哈希值插入至哈希环中,以将虚拟节点均匀分布在哈希环。此过程中,可以使用相应的数据结构(如映射表)来存储虚拟节点的哈希值和对应的物理服务器节点,以将每个虚拟节点的哈希值与目标物理服务器节点建立映射关系。
同样地,获取待连接的终端的身份标识,调用预设的一致性哈希函数对待连接的终端的身份标识进行哈希计算,得到第二哈希值。然后,在预构建的哈希环中,沿着顺时针方向或逆时针方向进行查找,直至找到第一个哈希值大于或等于第二哈希值的虚拟节点,即查找出的虚拟节点为与待连接终端最接近的虚拟节点,同时,建立待连接的终端与查找出的虚拟节点对应的物理服务器的通信连接,实现了将终端添加到服务器集群中的目标物理服务器上。本实施例中,通过将终端与离终端最近的物理服务器建立通信连接,能够减少延迟和网络传输的耗时,提升数据交互效率。
如图4所示,在其中一个实施例中,S100包括:S102,获取服务器集群中物理服务器的数量和性能参数,根据物理服务器的数量和性能参数,确定每一物理服务器对应的虚拟节点的数量,基于每一物理服务器对应的虚拟节点的数量,为每一物理服务器创建多个虚拟节点,根据物理服务器的身份标识,确定与物理服务器对应的虚拟节点的身份标识。
物理服务器的性能参数包括物理服务器的处理能力、内存容量和网络带宽等,上述性能参数可用于确定每个物理服务器可以承载的负载量。
具体实施时,可以是获取服务器集群列表,该列表中可包括已经存在的服务器以及计划添加的物理服务器,还包括每一服务器的性能参数。通过统计分析上述列表中的物理服务器的数量,确定服务器集群中物理服务器的数量和性能参数。然后,根据集群中物理服务器的数量和性能参数,确定每个物理服务器对应的虚拟节点数量。例如,集群中物理服务器的数量不多,物理服务器的性能参数较好,虚拟节点的数量可以设置得多一些。还可以根据性能参数的比例来分配虚拟节点数量,例如,如果一个物理服务器的处理能力是另一个物理服务器的两倍,可以分配两倍的虚拟节点数量给前者。
然后,基于每一物理服务器对应的虚拟节点的数量,为每一物理服务器创建多个虚拟节点,将确定的虚拟节点数量均匀地分配给每个物理服务器,确保每个物理服务器都有相同数量的虚拟节点,以实现负载均衡的效果。例如,若确定每一物理服务器的虚拟节点的数量为3,则针对每一物理服务器构建3个虚拟节点。接着,根据物理服务器的身份标识,确定与物理服务器对应的虚拟节点的身份标识。可以是在每一物理服务器的IP地址后面添加数字编号后缀,以作为虚拟节点的身份标识。例如,若某一物理服务器的IP地址为:128.X.X.1,每一物理服务器的虚拟节点的数量为3,则该物理服务器的虚拟节点的身份标识可以分别是128.X.X.1&&001,128.X.X.1&&002以及128.X.X.1&&003。本实施例中,根据物理服务器的数量和性能参数,确定每一物理服务器对应的虚拟节点的数量,能够给服务器集群提供更好的负载均衡能力和容错能力。
如图5所示,在其中一个实施例中,S600包括:
S620,若在预构建的哈希环中查找出与目标哈希值最接近的虚拟节点,则检测查找出的虚拟节点对应的物理服务器是否与终端建立通信连接、以及虚拟节点对应的物理服务器是否处于可用状态。
S640,若查找出的虚拟节点对应的物理服务器与终端建立有通信连接、且虚拟节点对应的物理服务器处于可用状态,则将查找出的虚拟节点确定为目标虚拟节点。
在实际查找目标虚拟节点过程中,可以是:若在哈希环中查找出第一个大于或等于目标哈希值的虚拟节点的哈希值,则检测查找出的虚拟节点对应的物理服务器是否与终端建立了通信连接,且物理服务器是否处于可用状态。若该物理服务器与终端建立了通信连接,且该物理服务器处于可用状态,能够正常运行并处理请求,那么说明该物理服务器可以作为目标服务器与终端进行交互,则将该查找出的虚拟节点确定为目标虚拟节点,将该目标虚拟节点对应的物理服务器确定为推送消息的目标物理服务器。若该虚拟节点对应的物理服务器是否未与终端建立通信连接,或者,物理服务器处于不可用状态,则将继续查找下一个哈希值大于或等于该目标哈希值的虚拟节点,直至确定查找出的虚拟节点对应的物理服务器与终端建立了通信连接,且物理服务器处于可用状态,将该虚拟节点对应的物理服务器确定为推送消息的目标物理服务器。本实施例中,通过判断查找出的虚拟节点对应的物理服务器是否与终端建立了通信连接,且物理服务器是否处于可用状态,能够确保终端与物理服务器的正常通信,从而实现负载均衡和数据分片的效果。
在其中一个实施例中,还包括:
若存在待新增物理服务器,则针对待新增物理服务器,创建多个待新增虚拟节点,并确定每一待新增虚拟节点的身份标识。
调用预设的一致性哈希函数对各待新增虚拟节点的身份标识进行哈希计算,并将计算得到的哈希值分别映射至预构建的哈希环。
若监测到需要变更通信连接的待重连终端,则调用预设的一致性哈希函数对待重连终端的身份标识进行哈希计算,得到第三哈希值。
在预构建的哈希环中,查找出与第三哈希值最接近的待重连虚拟节点,建立待重连终端与待重连虚拟节点对应的物理服务器的通信连接。
在实际应用中,通常需要根据需求和实际情况,是对哈希环上的物理服务器进行动态上线(添加)操作和下线(删除)操作。具体地,当需要动态新增物理服务器时,可以是针对待新增物理服务器,按照预先确定的每一物理服务器对应的虚拟节点的分配数量,创建多个待新增虚拟节点,然后,按照在物理服务器的IP地址后面添加数字编号后缀的方式,确定每一待新增虚拟节点的身份标识,再调用一致性哈希函数,对待新增物理服务器进行哈希计算,并将计算得到的哈希值分别映射至预构建的哈希环,以将虚拟节点插入至哈希环中对应的位置,至此,实现物理服务器的动态增加。
在添加物理服务器的过程中,可能会影响其他客户端的通信连接,因此,需要检测是否存在通信受到影响,需要变更通信连接的终端,若监测到需要变更通信连接的待重连终端,则调用预设的一致性哈希函数对待重连终端的身份标识进行哈希计算,得到第三哈希值,然后,在预构建的哈希环中,查找出与第三哈希值最接近的待重连虚拟节点,建立待重连终端与待重连虚拟节点对应的物理服务器的通信连接。
举例说明,如图6所示,若哈希环的查找方向为顺时针方向,在服务器集群中,服务器节点(以下简称节点)1与节点2之间上线了服务器节点3,该节点3刚好被映射到客户端1和节点1之间。那么,那么所有映射在节点2与节点3之间的用户会收到影响。当需要给客户端1推送消息时,消息推送请求会转发到服务器节点3,但是,客户端1实际上是与节点1建立websocket连接,由于节点3中并没有客户端1对应的session,所以使得消息无法正确地推送给客户端1。此时,可以是使节点1断开与节点2至节点3之间的客户端建立的session,然后,按照上述方式,将节点2至节点3之间的客户端与最近的服务器节点建立通信连接。
本实施例中,通过在动态增加服务器的过程中,检测是否存在通信连接需变更的终端,并重新建立待重连的终端的通信连接,能够很大程度上降低消息重发的几率。
在其中一个实施例中,方法还包括:
若监测到发生故障或下线的异常物理服务器,则从预构建的哈希环中删除与异常物理服务器对应的虚拟节点,并断开异常物理服务器与终端的通信连接。
调用预设的一致性哈希函数,对断开通信连接的终端的身份标识进行哈希计算,得到第四哈希值。
在预构建的哈希环中,查找出与第四哈希值最接近的虚拟节点,建立断开通信连接的终端与虚拟节点对应的物理服务器的通信连接。
在实际应用中,如果某个物理服务器发生故障或下线,需要从哈希环中移除该服务器,并将与物理服务器通信连接的客户端节点重新映射到离其最近的可用的物理服务器上。
具体地,可以是若监测到发生故障或下线的异常物理服务器,则从预构建的哈希环中删除与异常物理服务器对应的虚拟节点,并断开异常物理服务器与其相连接的终端的通信连接,即关闭该异常物理服务器所拥有的websocket session。然后,调用预设的一致性哈希函数,对断开通信连接的终端的身份标识进行哈希计算,得到第四哈希值,接着,在预构建的哈希环中,查找出与第四哈希值最接近的虚拟节点,建立断开通信连接的终端与虚拟节点对应的物理服务器的通信连接。本实施例中,在监听到有物理服务器发生故障或下线时,通过删除哈希环上与异常物理服务器对应的虚拟节点,并断开异常物理服务器与终端的通信连接,能够避免使网关将消息推送请求转发到已下线或出现故障的异常服务器上,影响消息的正常推送,通过将断开通信连接的终端重新与最近的其他可用物理服务器建立通信连接,能够保证终端与服务器的正常通信。
在其中一个实施例中,哈希环的数据结构包括二叉树或链表。
本实施例中,哈希环的数据结构可以采用二叉树或链表。具体地,若哈希环的数据结构为二叉树,则具体可以红黑二叉树的方式构建哈希环。本实施例中,采用红黑二叉树的方式构建哈希环,可以提供快速查找、平衡性、高效的插入和删除操作,以及简单易用的优点,有助于实现高效的负载均衡和数据分片机制。
在另一个实施例中,可以是采用list链表的方式构建哈希环,具体地,可用是将计算出所有待加入的虚拟节点的哈希值放入一个数组中,然后使用某种排序算法将其从小到大进行排序,最后将排序后的数据放入List中。还可以是对计算出的虚拟节点的哈希值不排序,直接存入List中,后续采用遍历的方式查找与终端最近的虚拟节点。
本实施例中,采用List的方式构建哈希环,能够减少性能消耗,同样能实现哈希值的快速查找。
为了对本申请提供的消息推送方法做出更为清楚的说明,下面结合附图7和一个具体实施例进行说明,该具体实施例包括以下步骤:
S122,基于预构建的哈希环,建立终端与物理服务器的通信连接。
具体地,可以是获取服务器集群中物理服务器的数量和性能参数,根据物理服务器的数量和性能参数,确定每一物理服务器对应的虚拟节点的数量,基于每一物理服务器对应的虚拟节点的数量,为每一物理服务器创建多个虚拟节点。根据物理服务器的身份标识,确定与物理服务器对应的虚拟节点的身份标识。调用预设的一致性哈希函数对各虚拟节点的身份标识进行哈希计算,并将计算得到的第一哈希值分别映射至预构建的哈希环。获取待连接的终端的身份标识。调用预设的一致性哈希函数对待连接的终端的身份标识进行哈希计算,得到第二哈希值。在预构建的哈希环中查找出与第二哈希值最接近的虚拟节点,建立查找出的虚拟节点对应的物理服务器与待连接的终端的通信连接。
S200,接收终端发送的消息推送请求,消息推送请求携带终端的身份标识。
S400,调用预设的一致性哈希函数对身份标识进行哈希计算,得到目标哈希值。
S620,若在预构建的哈希环中查找出与目标哈希值最接近的虚拟节点,检测查找出的虚拟节点对应的物理服务器是否与终端建立通信连接、以及虚拟节点对应的物理服务器是否处于可用状态。
S640,若查找出的虚拟节点对应的物理服务器与终端建立有通信连接、且虚拟节点对应的物理服务器处于可用状态,则将查找出的虚拟节点确定为目标虚拟节点。
其中,预构建的哈希环包括多个均匀分布的虚拟节点,一个物理服务器对应多个虚拟节点。
S800,将消息推送请求转发至目标虚拟节点对应的目标物理服务器,以使目标物理服务器推送消息至终端。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的消息推送方法的消息推送装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个消息推送装置实施例中的具体限定可以参见上文中对于消息推送方法的限定,在此不再赘述。
在一个实施例中,如图8所示,提供了一种消息推送装置800,包括:请求接收模块810、哈希计算模块820、节点查找模块830和请求转发模块840,其中:
请求接收模块810,用于接收终端发送的消息推送请求,消息推送请求携带终端的身份标识。
哈希计算模块820,用于调用预设的一致性哈希函数对身份标识进行哈希计算,得到目标哈希值。
节点查找模块830,用于在预构建的哈希环中查找出与目标哈希值最接近的目标虚拟节点。
请求转发模块840,用于将消息推送请求转发至目标虚拟节点对应的目标物理服务器,以使目标物理服务器推送消息至终端。
其中,预构建的哈希环包括多个均匀分布的虚拟节点,一个物理服务器对应多个虚拟节点。
上述消息推送装置,接收到终端发送的携带身份标识的消息推送请求后,调用预设的一致性哈希函数对身份标识进行哈希计算,得到目标哈希值,然后,在预构建的哈希环中查找出与目标哈希值最接近的目标虚拟节点,将消息推送请求转发至目标虚拟节点对应的目标物理服务器,以使目标物理服务器推送消息至终端,其中,预构建的哈希环包括多个均匀分布的虚拟节点,一个物理服务器对应多个虚拟节点。整个方案,通过将终端和服务器映射至哈希环上,在哈希环中设置各物理服务器节点对应的多个虚拟节点,并将多个虚拟节点均匀分布在哈希环,能够在分布式系统中提高较好的负载均衡和容错能力,并且,当添加或删除物理服务器时,只会影响到哈希环上的少量虚拟节点,而不会导致大量数据重新分布,能够很大程度上降低消息重发的几率,在消息推送过程中,通过一致性哈希算法进行计算,当需要给客户端推送消息时,可以通过一致性哈希函数明确知道终端与哪些服务器建立了通信连接,且通过查找出离终端最近的服务器,将消息推送请求转发至查找出的服务器,能够减少延迟和网络传输开销,无需将请求转发给所有的服务器,且无需使所有服务器遍历session表,从而减少服务器资源的浪费。
如图9所示,在其中一个实施例中,装置还包括通信连接模块802,用于针对服务器集群中每一物理服务器,创建多个虚拟节点,确定各虚拟节点的身份标识,调用预设的一致性哈希函数对各虚拟节点的身份标识进行哈希计算,并将计算得到的第一哈希值分别映射至预构建的哈希环,获取待连接的终端的身份标识,调用预设的一致性哈希函数对待连接的终端的身份标识进行哈希计算,得到第二哈希值,在预构建的哈希环中查找出与第二哈希值最接近的虚拟节点,建立查找出的虚拟节点对应的物理服务器与待连接的终端的通信连接。
在其中一个实施例中,通信连接模块802,还用于获取服务器集群中物理服务器的数量和性能参数,根据物理服务器的数量和性能参数,确定每一物理服务器对应的虚拟节点的数量,基于每一物理服务器对应的虚拟节点的数量,为每一物理服务器创建多个虚拟节点,根据物理服务器的身份标识,确定与物理服务器对应的虚拟节点的身份标识。
在其中一个实施例中,节点查找模块830,还用于若在预构建的哈希环中查找出与目标哈希值最接近的虚拟节点,则检测查找出的虚拟节点对应的物理服务器是否与终端建立通信连接、以及虚拟节点对应的物理服务器是否处于可用状态;若查找出的虚拟节点对应的物理服务器与终端建立有通信连接、且虚拟节点对应的物理服务器处于可用状态,则将查找出的虚拟节点确定为目标虚拟节点。
如图9所示,在其中一个实施例中,装置还包括设备新增模块850,用于若存在待新增物理服务器,则针对待新增物理服务器,创建多个待新增虚拟节点,并确定每一待新增虚拟节点的身份标识,调用预设的一致性哈希函数对各待新增虚拟节点的身份标识进行哈希计算,并将计算得到的哈希值分别映射至预构建的哈希环,若监测到需要变更通信连接的待重连终端,则调用预设的一致性哈希函数对待重连终端的身份标识进行哈希计算,得到第三哈希值,在预构建的哈希环中,查找出与第三哈希值最接近的待重连虚拟节点,建立待重连终端与待重连虚拟节点对应的物理服务器的通信连接。
如图9所述,在其中一个实施例中,装置还包括异常处理模块860,用于若监测到发生故障或下线的异常物理服务器,则从预构建的哈希环中删除与异常物理服务器对应的虚拟节点,并断开异常物理服务器与终端的通信连接;调用预设的一致性哈希函数,对断开通信连接的终端的身份标识进行哈希计算,得到第四哈希值,在预构建的哈希环中,查找出与第四目标哈希值最接近的虚拟节点,建立断开通信连接的终端与虚拟节点对应的物理服务器的通信连接。
上述消息推送装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储服务器集群列表数据、以及哈希环等数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种消息推送方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各消息推送方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各消息推送方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各消息推送方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (16)
1.一种消息推送方法,其特征在于,所述方法包括:
接收终端发送的消息推送请求,所述消息推送请求携带所述终端的身份标识;
调用预设的一致性哈希函数对所述身份标识进行哈希计算,得到目标哈希值;
在预构建的哈希环中查找出与所述目标哈希值最接近的目标虚拟节点;
将所述消息推送请求转发至所述目标虚拟节点对应的目标物理服务器,以使所述目标物理服务器推送消息至所述终端;
其中,所述预构建的哈希环包括多个均匀分布的虚拟节点,一个物理服务器对应多个所述虚拟节点。
2.根据权利要求1所述的方法,其特征在于,所述在预构建的哈希环中查找出与所述目标哈希值最接近的目标虚拟节点之前,还包括:
针对服务器集群中每一物理服务器,创建多个虚拟节点,并确定各虚拟节点的身份标识;
调用所述预设的一致性哈希函数对各虚拟节点的身份标识进行哈希计算,并将计算得到的第一哈希值分别映射至预构建的哈希环;
获取待连接的终端的身份标识;
调用所述预设的一致性哈希函数对所述待连接的终端的身份标识进行哈希计算,得到第二哈希值;
在预构建的哈希环中查找出与所述第二哈希值最接近的虚拟节点,建立查找出的虚拟节点对应的物理服务器与所述待连接的终端的通信连接。
3.根据权利要求2所述的方法,其特征在于,所述针对服务器集群中每一物理服务器,创建多个虚拟节点,确定各虚拟节点的身份标识包括:
获取服务器集群中物理服务器的数量和性能参数;
根据所述物理服务器的数量和性能参数,确定每一物理服务器对应的虚拟节点的数量;
基于所述每一物理服务器对应的虚拟节点的数量,为每一物理服务器创建多个虚拟节点;
根据物理服务器的身份标识,确定与所述物理服务器对应的虚拟节点的身份标识。
4.根据权利要求1所述的方法,其特征在于,所述在预构建的哈希环中查找出与所述目标哈希值最接近的目标虚拟节点包括:
若在预构建的哈希环中查找出与所述目标哈希值最接近的虚拟节点,则检测查找出的虚拟节点对应的物理服务器是否与所述终端建立通信连接、以及所述虚拟节点对应的物理服务器是否处于可用状态;
若所述查找出的虚拟节点对应的物理服务器与所述终端建立有通信连接、且所述虚拟节点对应的物理服务器处于可用状态,则将查找出的虚拟节点确定为目标虚拟节点。
5.根据权利要求1至4任意一项所述的方法,其特征在于,还包括:
若存在待新增物理服务器,则针对所述待新增物理服务器,创建多个待新增虚拟节点,并确定每一待新增虚拟节点的身份标识;
调用所述预设的一致性哈希函数对各待新增虚拟节点的身份标识进行哈希计算,并将计算得到的哈希值分别映射至预构建的哈希环;
若监测到需要变更通信连接的待重连终端,则调用所述预设的一致性哈希函数对所述待重连终端的身份标识进行哈希计算,得到第三哈希值;
在所述预构建的哈希环中,查找出与所述第三哈希值最接近的待重连虚拟节点,建立所述待重连终端与所述待重连虚拟节点对应的物理服务器的通信连接。
6.根据权利要求1至4任意一项所述的方法,其特征在于,所述方法还包括:
若监测到发生故障或下线的异常物理服务器,则从所述预构建的哈希环中删除与所述异常物理服务器对应的虚拟节点,并断开所述异常物理服务器与终端的通信连接;
调用所述预设的一致性哈希函数,对断开通信连接的终端的身份标识进行哈希计算,得到第四哈希值;
在所述预构建的哈希环中,查找出与所述第四哈希值最接近的虚拟节点,建立所述断开通信连接的终端与所述虚拟节点对应的物理服务器的通信连接。
7.根据权利要求1至4任意一项所述的方法,其特征在于,所述哈希环的数据结构包括二叉树或链表。
8.一种消息推送装置,其特征在于,所述装置包括:
请求接收模块,用于接收终端发送的消息推送请求,所述消息推送请求携带所述终端的身份标识;
哈希计算模块,用于调用预设的一致性哈希函数对所述身份标识进行哈希计算,得到所述目标哈希值;
节点查找模块,用于在预构建的哈希环中查找出与所述目标哈希值最接近的目标虚拟节点;
请求转发模块,用于将所述消息推送请求转发至所述目标虚拟节点对应的目标物理服务器,以使所述目标物理服务器推送消息至所述终端;
其中,所述预构建的哈希环包括多个均匀分布的虚拟节点,一个物理服务器对应多个所述虚拟节点。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括通信连接模块,用于针对服务器集群中每一物理服务器,创建多个虚拟节点,确定各虚拟节点的身份标识,调用预设的一致性哈希函数对各虚拟节点的身份标识进行哈希计算,并将计算得到的第一哈希值分别映射至预构建的哈希环,获取待连接的终端的身份标识,调用所述预设的一致性哈希函数对所述待连接的终端的身份标识进行哈希计算,得到第二哈希值,在预构建的哈希环中查找出与所述第二哈希值最接近的虚拟节点,建立查找出的虚拟节点对应的物理服务器与所述待连接的终端的通信连接。
10.根据权利要求9所述的装置,其特征在于,所述通信连接模块,还用于获取服务器集群中物理服务器的数量和性能参数,根据所述物理服务器的数量和性能参数,确定每一物理服务器对应的虚拟节点的数量,基于所述每一物理服务器对应的虚拟节点的数量,为每一物理服务器创建多个虚拟节点,根据物理服务器的身份标识,确定与所述物理服务器对应的虚拟节点的身份标识。
11.根据权利要求8所述的装置,其特征在于,所述节点查找模块,还用于若在预构建的哈希环中查找出与所述目标哈希值最接近的虚拟节点,则检测查找出的虚拟节点对应的物理服务器是否与所述终端建立通信连接、以及所述虚拟节点对应的物理服务器是否处于可用状态;若所述查找出的虚拟节点对应的物理服务器与所述终端建立有通信连接、且所述虚拟节点对应的物理服务器处于可用状态,则将查找出的虚拟节点确定为目标虚拟节点。
12.根据权利要求8至11任意一项所述的装置,其特征在于,所述装置还包括设备新增模块,用于若存在待新增物理服务器,则针对所述待新增物理服务器,创建多个待新增虚拟节点,并确定每一待新增虚拟节点的身份标识,调用所述预设的一致性哈希函数对各待新增虚拟节点的身份标识进行哈希计算,并将计算得到的哈希值分别映射至预构建的哈希环,若监测到需要变更通信连接的待重连终端,则调用所述预设的一致性哈希函数对所述待重连终端的身份标识进行哈希计算,得到第三哈希值,在所述预构建的哈希环中,查找出与所述第三哈希值最接近的待重连虚拟节点,建立所述待重连终端与所述待重连虚拟节点对应的物理服务器的通信连接。
13.根据权利要求8至11任意一项所述的装置,其特征在于,所述装置还包括异常处理模块,用于若监测到发生故障或下线的异常物理服务器,则从所述预构建的哈希环中删除与所述异常物理服务器对应的虚拟节点,并断开所述异常物理服务器与终端的通信连接;调用所述预设的一致性哈希函数,对断开通信连接的终端的身份标识进行哈希计算,得到第四哈希值,在所述预构建的哈希环中,查找出与所述第四目标哈希值最接近的虚拟节点,建立所述断开通信连接的终端与所述虚拟节点对应的物理服务器的通信连接。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
16.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311234660.1A CN117176796A (zh) | 2023-09-22 | 2023-09-22 | 消息推送方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311234660.1A CN117176796A (zh) | 2023-09-22 | 2023-09-22 | 消息推送方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117176796A true CN117176796A (zh) | 2023-12-05 |
Family
ID=88933599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311234660.1A Pending CN117176796A (zh) | 2023-09-22 | 2023-09-22 | 消息推送方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117176796A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117914783A (zh) * | 2024-03-20 | 2024-04-19 | 鹏城实验室 | 流量数据的实时处理方法、装置、设备及存储介质 |
-
2023
- 2023-09-22 CN CN202311234660.1A patent/CN117176796A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117914783A (zh) * | 2024-03-20 | 2024-04-19 | 鹏城实验室 | 流量数据的实时处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019200714A1 (zh) | 服务器连接方法、计算机可读存储介质、终端设备及装置 | |
CN107332876B (zh) | 区块链状态的同步方法及装置 | |
US9665428B2 (en) | Distributing erasure-coded fragments in a geo-distributed storage system | |
Zhao et al. | Tapestry: A resilient global-scale overlay for service deployment | |
JP4806203B2 (ja) | ピアツーピアネットワークにおけるルーティング | |
US8914457B2 (en) | Caching of nodes in cache cluster | |
JP5599943B2 (ja) | サーバクラスター | |
US10728335B2 (en) | Data processing method, storage system, and switching device | |
US20150088995A1 (en) | Method and apparatus for sharing contents using information of group change in content oriented network environment | |
US11563805B2 (en) | Method, apparatus, client terminal, and server for data processing | |
CN112953982B (zh) | 一种服务处理的方法、服务配置的方法以及相关装置 | |
CN117176796A (zh) | 消息推送方法、装置、计算机设备和存储介质 | |
CN111083179A (zh) | 物联网云平台、基于物联网云平台的设备交互方法及装置 | |
JP2022111013A (ja) | 通信ネットワークにおけるコンシステントハッシングの実現方法 | |
Shen et al. | A proximity-aware interest-clustered P2P file sharing system | |
CN116578746A (zh) | 对象去重方法及装置 | |
Medrano-Chávez et al. | A performance comparison of Chord and Kademlia DHTs in high churn scenarios | |
Guirat et al. | An efficient data replication approach for structured peer-to-peer systems | |
CN109462642B (zh) | 数据处理方法及装置 | |
US20200341968A1 (en) | Differential Update of Local Cache from Central Database | |
CN112817980B (zh) | 一种数据索引处理方法、装置、设备及存储介质 | |
CN116781706A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN115134424B (zh) | 负载均衡方法、装置、计算机设备、存储介质和程序产品 | |
Lin et al. | A P2P framework for developing bioinformatics applications in dynamic cloud environments | |
Liu et al. | Double‐layer P2P networks supporting semantic search and keeping scalability |
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 |