CN115086292A - 分布式即时服务器推送方案架构设计方法、装置、存储介质 - Google Patents
分布式即时服务器推送方案架构设计方法、装置、存储介质 Download PDFInfo
- Publication number
- CN115086292A CN115086292A CN202210679314.3A CN202210679314A CN115086292A CN 115086292 A CN115086292 A CN 115086292A CN 202210679314 A CN202210679314 A CN 202210679314A CN 115086292 A CN115086292 A CN 115086292A
- Authority
- CN
- China
- Prior art keywords
- user side
- target user
- server
- architecture design
- design method
- 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 39
- 238000004590 computer program Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种分布式即时服务器推送方案架构设计方法、装置、存储介质,属于服务器技术领域。现有技术无法实现集群部属。步骤S1:服务器接收起始用户端的消息以及需发送到的目标用户集,目标用户集包含至少一个目标用户端;步骤S2:服务器在zookeeper集群上找到目标用户端的地址;步骤S3:判断目标用户端与起始用户端是否位于同一服务器:‑当目标用户端与起始用户端位于同一服务器时,执行步骤S5;‑当目标用户端与起始用户端位于不同服务器时,执行步骤S4;步骤S4:调用目标用户端所在服务器的消息转发接口,消息转发接口在目标用户端所在服务器的连接列表中寻找目标用户端,执行步骤S5;步骤S5:向目标用户端转发消息。本发明能够实现集群部属。
Description
技术领域
本发明属于服务器技术领域,涉及一种分布式即时服务器推送方案架构设计方法、装置、存储介质,特别涉及一种基于Websocket+zookeeper分布式即时服务器推送方案架构设计方法、装置、存储介质。
背景技术
WebSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通讯的协议。
WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
在WebSocket API中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。
现在,很多网站为了实现推送技术,所用的技术都是Ajax轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。
HTML5定义的WebSocket协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。
HTTP协议有一个缺陷:通信只能由客户端发起,做不到服务器主动向客户端推送信息。
WebSocket协议它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种
WebSocket的弊端:由于是长连接多机之间的用户无法通信,无法实现集群部属。
发明内容
本发明的目的是针对现有技术中存在的上述问题,提供了一种基于 Websocket+zookeeper分布式即时服务器推送方案架构设计方法、装置、存储介质。
本发明的第一个目的可通过下列技术方案来实现:一种分布式即时服务器推送方案架构设计方法,其特征在于,用户端包括起始用户端和目标用户端,包括以下步骤:
步骤S1:服务器接收起始用户端的消息以及需发送到的目标用户集,所述的目标用户集包含至少一个目标用户端;
步骤S2:服务器在zookeeper集群上找到目标用户端的地址;
步骤S3:判断目标用户端与起始用户端是否位于同一服务器:
-当目标用户端与起始用户端位于同一服务器时,执行步骤S5;
-当目标用户端与起始用户端位于不同服务器时,执行步骤S4;
步骤S4:调用目标用户端所在服务器的消息转发接口,消息转发接口在目标用户端所在服务器的连接列表中寻找目标用户端,执行步骤S5;
步骤S5:向目标用户端转发消息。
本发明的工作原理:用户之间相互发消息时找到对方的服务器并发送就可解决长连接多机之间的用户通信问题,实现集群部属。
在上述的分布式即时服务器推送方案架构设计方法中,所述的目标用户端数量大于一时,每一需发送到的目标用户端分别执行步骤S2至步骤5。
在上述的分布式即时服务器推送方案架构设计方法中,所述的目标用户集预包括预先存储的目标用户集,输入预先存储的目标用户集编号能够获取目标用户端。
在上述的分布式即时服务器推送方案架构设计方法中,所述的用户端以用户唯一标识hash进行存储。
在上述的分布式即时服务器推送方案架构设计方法中,所述的zookeeper 集群包含zookeeper节点,所述的zookeeper节点按省市县划分。
在上述的分布式即时服务器推送方案架构设计方法中,当所述的用户端与服务器连接时,zookeeper集群记录用户端的地址。
在上述的分布式即时服务器推送方案架构设计方法中,还设置有连接时长阈值,当用户端的连接时长大于连接时长阈值时,zookeeper集群记录用户端的地址。
本发明的第二个目的可通过下列技术方案来实现:一种分布式即时服务器推送方案架构设计装置,包括输入端、输出端、服务器、一个或多个处理器、存储器以及一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行上述的分布式即时服务器推送方案架构设计方法。
本发明的第三个目的可通过下列技术方案来实现:一种计算机可读存储介质,存储有计算机程序,所述计算机程序可被处理器执行以完成上述的分布式即时服务器推送方案架构设计方法。
与现有技术相比,本发明具有解决长连接多机之间的用户通信问题,实现集群部属优点。
附图说明
图1是本发明的逻辑流程示意图。
图2是本发明中WebSocket协议结构示意图。
图3是本发明中服务器与zookeeper集群连接结构示意图。
具体实施方式
以下是本发明的具体实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
如图1-图3所示,本分布式即时服务器推送方案架构设计方法,用户端包括起始用户端和目标用户端,包括以下步骤:
步骤S1:服务器接收起始用户端的消息以及需发送到的目标用户集,所述的目标用户集包含至少一个目标用户端;
步骤S2:服务器在zookeeper集群上找到目标用户端的地址;
步骤S3:判断目标用户端与起始用户端是否位于同一服务器:
-当目标用户端与起始用户端位于同一服务器时,执行步骤S5;
-当目标用户端与起始用户端位于不同服务器时,执行步骤S4;
步骤S4:调用目标用户端所在服务器的消息转发接口,消息转发接口在目标用户端所在服务器的连接列表中寻找目标用户端,执行步骤S5;
步骤S5:向目标用户端转发消息。
在上述的分布式即时服务器推送方案架构设计方法中,所述的目标用户端数量大于一时,每一需发送到的目标用户端分别执行步骤S2至步骤5。
在上述的分布式即时服务器推送方案架构设计方法中,所述的目标用户集预包括预先存储的目标用户集,输入预先存储的目标用户集编号能够获取目标用户端。
在上述的分布式即时服务器推送方案架构设计方法中,所述的用户端以用户唯一标识hash进行存储。
在上述的分布式即时服务器推送方案架构设计方法中,所述的zookeeper 集群包含zookeeper节点,所述的zookeeper节点按省市县划分。
在上述的分布式即时服务器推送方案架构设计方法中,当所述的用户端与服务器连接时,zookeeper集群记录用户端的地址。
在上述的分布式即时服务器推送方案架构设计方法中,还设置有连接时长阈值,当用户端的连接时长大于连接时长阈值时,zookeeper集群记录用户端的地址。
本发明的第二个目的可通过下列技术方案来实现:一种分布式即时服务器推送方案架构设计装置,包括输入端、输出端、服务器、一个或多个处理器、存储器以及一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行上述的分布式即时服务器推送方案架构设计方法。
本发明的第三个目的可通过下列技术方案来实现:一种计算机可读存储介质,存储有计算机程序,所述计算机程序可被处理器执行以完成上述的分布式即时服务器推送方案架构设计方法。
实施例1:用户1给用户2发送消息:
服务器A收到用户1消息同时在zookeeper上找到用户2对应的服务器地址,判断是否是本机,如果是直接在本机长连接列表中寻找并转发消息,如果不是本机,就调用用户所在服务器的消息转发接口由消息转发接口在本机长连接列表中寻找到用户并转发消息。
实施例2.用户4给用户(1、7、11)同时发消息:
服务器B收到消息,在zookeeper上找用户(1、7、11)对应的服务器地址,循环判断是否是本机,如果是直接在本机长连接列表中寻找并转发消息,如果不是本机,就调用用户所在服务器的消息转发接口由消息转发接口在本机长连接列表中寻找到用户并转发消息。
实施例3:设用户(2、5、8、11)为一级会员角色,用户(1、4、7、10) 为二级会员角色,用户(3、6、9、12)为三级会员角色,管理员功能分别给三个角色在线用户群发通知:。
群发一级会员:先在zookeeper上寻找所有的一级用户列表,循环判断是否是本机,如果是直接在本机长连接列表中寻找并转发消息,如果不是本机,就调用用户所在服务器的消息转发接口由消息转发接口在本机长连接列表中寻找到用户并转发消息。
群发二级会员:先在zookeeper上寻找所有的二级用户列表,循环判断是否是本机,如果是直接在本机长连接列表中寻找并转发消息,如果不是本机,就调用用户所在服务器的消息转发接口由消息转发接口在本机长连接列表中寻找到用户并转发消息。
群发三级会员:先在zookeeper上寻找所有的三级用户列表,循环判断是否是本机,如果是直接在本机长连接列表中寻找并转发消息,如果不是本机,就调用用户所在服务器的消息转发接口由消息转发接口在本机长连接列表中寻找到用户并转发消息。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
尽管本文较多地使用了大量术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。
Claims (9)
1.一种分布式即时服务器推送方案架构设计方法,其特征在于,用户端包括起始用户端和目标用户端,包括以下步骤:
步骤S1:服务器接收起始用户端的消息以及需发送到的目标用户集,所述的目标用户集包含至少一个目标用户端;
步骤S2:服务器在zookeeper集群上找到目标用户端的地址;
步骤S3:判断目标用户端与起始用户端是否位于同一服务器:
-当目标用户端与起始用户端位于同一服务器时,执行步骤S5;
-当目标用户端与起始用户端位于不同服务器时,执行步骤S4;
步骤S4:调用目标用户端所在服务器的消息转发接口,消息转发接口在目标用户端所在服务器的连接列表中寻找目标用户端,执行步骤S5;
步骤S5:向目标用户端转发消息。
2.根据权利要求1所述的一种分布式即时服务器推送方案架构设计方法,其特征在于,所述的目标用户端数量大于一时,每一需发送到的目标用户端分别执行步骤S2至步骤5。
3.根据权利要求1所述的一种分布式即时服务器推送方案架构设计方法,其特征在于,所述的目标用户集预包括预先存储的目标用户集,输入预先存储的目标用户集编号能够获取目标用户端。
4.根据权利要求1所述的一种分布式即时服务器推送方案架构设计方法,其特征在于,所述的用户端以用户唯一标识hash进行存储。
5.根据权利要求1所述的一种分布式即时服务器推送方案架构设计方法,其特征在于,所述的zookeeper集群包含zookeeper节点,所述的zookeeper节点按省市县划分。
6.根据权利要求1所述的一种分布式即时服务器推送方案架构设计方法,其特征在于,当所述的用户端与服务器连接时,zookeeper集群记录用户端的地址。
7.根据权利要求1所述的一种分布式即时服务器推送方案架构设计方法,其特征在于,还设置有连接时长阈值,当用户端的连接时长大于连接时长阈值时,zookeeper集群记录用户端的地址。
8.一种分布式即时服务器推送方案架构设计装置,包括输入端、输出端、服务器、一个或多个处理器、存储器以及一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如权利要求1-7任意一项所述的一种分布式即时服务器推送方案架构设计方法。
9.一种计算机可读存储介质,存储有计算机程序,所述计算机程序可被处理器执行以完成如权利要求1-7任意一项所述的一种分布式即时服务器推送方案架构设计方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210679314.3A CN115086292A (zh) | 2022-06-15 | 2022-06-15 | 分布式即时服务器推送方案架构设计方法、装置、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210679314.3A CN115086292A (zh) | 2022-06-15 | 2022-06-15 | 分布式即时服务器推送方案架构设计方法、装置、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115086292A true CN115086292A (zh) | 2022-09-20 |
Family
ID=83253331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210679314.3A Pending CN115086292A (zh) | 2022-06-15 | 2022-06-15 | 分布式即时服务器推送方案架构设计方法、装置、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115086292A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109698785A (zh) * | 2017-10-24 | 2019-04-30 | 广东亿迅科技有限公司 | 一种分布式高并发的实时消息推送方法及装置 |
CN111352716A (zh) * | 2020-03-10 | 2020-06-30 | 深圳市腾讯计算机***有限公司 | 一种基于大数据的任务请求方法、装置、***及存储介质 |
CN111597033A (zh) * | 2019-02-20 | 2020-08-28 | 北京京东尚科信息技术有限公司 | 一种任务调度方法和装置 |
CN111970315A (zh) * | 2019-05-20 | 2020-11-20 | 北京车和家信息技术有限公司 | 推送消息的方法、装置及*** |
CN112769671A (zh) * | 2019-10-21 | 2021-05-07 | 北京车和家信息技术有限公司 | 消息处理方法、装置与*** |
CN113157466A (zh) * | 2021-04-27 | 2021-07-23 | 上海销氪信息科技有限公司 | 一种消息推送方法、装置、***、电子设备和存储介质 |
-
2022
- 2022-06-15 CN CN202210679314.3A patent/CN115086292A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109698785A (zh) * | 2017-10-24 | 2019-04-30 | 广东亿迅科技有限公司 | 一种分布式高并发的实时消息推送方法及装置 |
CN111597033A (zh) * | 2019-02-20 | 2020-08-28 | 北京京东尚科信息技术有限公司 | 一种任务调度方法和装置 |
CN111970315A (zh) * | 2019-05-20 | 2020-11-20 | 北京车和家信息技术有限公司 | 推送消息的方法、装置及*** |
CN112769671A (zh) * | 2019-10-21 | 2021-05-07 | 北京车和家信息技术有限公司 | 消息处理方法、装置与*** |
CN111352716A (zh) * | 2020-03-10 | 2020-06-30 | 深圳市腾讯计算机***有限公司 | 一种基于大数据的任务请求方法、装置、***及存储介质 |
CN113157466A (zh) * | 2021-04-27 | 2021-07-23 | 上海销氪信息科技有限公司 | 一种消息推送方法、装置、***、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9578081B2 (en) | System and method for providing an actively invalidated client-side network resource cache | |
EP3734913A1 (en) | Communication method and communication apparatus | |
US20220232068A1 (en) | Computer-implemented system and method for propagation and communication of data in a network such as a blockchain network | |
US20120198004A1 (en) | System and method for managing multiple queues of non-persistent messages in a networked environment | |
US20150295785A1 (en) | Resource Subscription Method and Device | |
CN111414208B (zh) | 应用程序的启动方法、装置及设备 | |
CN112751748B (zh) | 会话消息管理方法、装置、服务器和可读存储介质 | |
CN102006242A (zh) | 路由器的选路方法及路由器 | |
US9935861B2 (en) | Method, system and apparatus for detecting instant message spam | |
KR20190033589A (ko) | 통지를 위한 방법, 장치 및 시스템 | |
CN106970843B (zh) | 远程调用方法和装置 | |
CN102858025A (zh) | 点对点互动操作的方法及设备 | |
CN110582757A (zh) | 数据消息网络路由的中间设备 | |
US7543030B2 (en) | Peer-to-peer communication for instant messaging between different instant message application types | |
US10938993B2 (en) | Workload balancing technique for a telephone communication system | |
US10992608B2 (en) | Proxy presence server | |
CN109120578B (zh) | 一种实现链路连接处理的方法及装置 | |
CN115086292A (zh) | 分布式即时服务器推送方案架构设计方法、装置、存储介质 | |
Hu et al. | Research and implementation of campus information push system based on WebSocket | |
CN112054953B (zh) | 多媒体即时通信方法、***及终端设备、计算机存储介质 | |
WO2012159531A1 (zh) | 一种移动终端的信息输入方法、***和移动终端 | |
CN109600452B (zh) | 服务器集群、消息推送方法及相关服务器 | |
Zhai et al. | An improved DDS publish/subscribe automatic discovery algorithm | |
CN111565219A (zh) | 一种模拟真实排队的网络连接池协议的实现方法 | |
CN115665042B (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 |