CN114979238A - 多客户端数据实时推送方法及系统 - Google Patents
多客户端数据实时推送方法及系统 Download PDFInfo
- Publication number
- CN114979238A CN114979238A CN202210567027.3A CN202210567027A CN114979238A CN 114979238 A CN114979238 A CN 114979238A CN 202210567027 A CN202210567027 A CN 202210567027A CN 114979238 A CN114979238 A CN 114979238A
- Authority
- CN
- China
- Prior art keywords
- data
- client
- server
- statistical analysis
- connection request
- 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 22
- 238000007619 statistical method Methods 0.000 claims abstract description 55
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 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/14—Session management
- H04L67/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了多客户端数据实时推送方法及系统,属于消息推送技术领域,要解决的技术问题为如何缓解数据库压力,并实现面向多客户端的数据实时推送。包括如下步骤:对于每个客户端,基于客户端的连接请求,所述客户端和服务端之间建立长链接,所述连接请求中包括客户端唯一的标识码以及客户端指定的数据类型;对于生产者生产的数据,服务端基于每个客户端的连接请求对客户端指定数据类型的数据进行统计分析,并将统计分析后的数据推送至分布式消息队列;分布式队列将所有统计分析后的数据广播至消费者;每个消费者进行数据消费后,通过客户端和服务端之间建立的长链接将所述消费者消费的数据发送至相同数据类型的客户端。
Description
技术领域
本发明涉及消息推送技术领域,具体地说是多客户端数据实时推送方法及系统。
背景技术
面对TOC领域的应用的庞大用户群体,必然产生海量业务数据,这时往往需要需要对业务数据进行各个维度的统计分析和监控,这种多维度统计分析的数据存储在传统的关系型数据库中,对数据库造成很大压力,也不利于数据的实时推送,同时也会对现有的业务系统造成很大的压力。
如何缓解数据库压力,并实现面向多客户端的数据实时推送,是需要解决的技术问题。
发明内容
本发明的技术任务是针对以上不足,提供多客户端数据实时推送方法及系统,来解决如何缓解数据库压力,并实现面向多客户端的数据实时推送的技术问题。
第一方面,本发明的一种多客户端数据实时推送方法,应用于包括服务端和多个客户端的消息系统,服务端配置分布式消息队列,所述方法包括如下步骤:
对于每个客户端,基于客户端的连接请求,所述客户端和服务端之间建立长链接,所述连接请求中包括客户端唯一的标识码以及客户端指定的数据类型;
对于生产者生产的数据,服务端基于每个客户端的连接请求对客户端指定数据类型的数据进行统计分析,并将统计分析后的数据推送至分布式消息队列;
分布式队列将所有统计分析后的数据广播至消费者;
每个消费者进行数据消费后,通过客户端和服务端之间建立的长链接将所述消费者消费的数据发送至相同数据类型的客户端。
作为优选,基于客户端的连接请求,所述客户端和服务端之间通过websocket建立长链接,客户端和服务端之间的长链接作为一条连接存储于连接池中,且客户端和服务端之间建立一个唯一的业务会话ID,所述业务会话ID与所述客户端的标识码一一对应。
作为优选,所述分布式消息队列为kafka消息队列。
作为优选,对于生产者生产的数据,服务端基于每个客户端的连接请求对客户端指定数据类型的数据进行统计分析时,判断分布式队列中是否存在所述客户端指定数据类型的统计分析后的数据,如果不存在,则从生产者生产的数据中选取指定数据类型的数据进行统计分析,并将统计分析后的数据推送至分布式队列中,如果存在,则无需再次从生产者生产的数据中选取指定数据类型的数据进行统计分析。
第二方面,本发明的一种多客户端数据实时推送系统,包括服务端和多个客户端,所述服务端面向生产者和消费者并配置有分布式消息队列;
所述客户端用于向服务端的发起连接请求;
所述服务端用于基于客户端发起的连接请求与客户端建立长链接,所述连接请求中包括客户端唯一的标识码以及客户端指定的数据类型;对于生产者生产的数据,所述服务端用于基于每个客户端的连接请求对客户端指定数据类型的数据进行统计分析,并将统计分析后的数据推送至分布式消息队列;
所述分布式队列用于将所有统计分析后的数据广播至消费者;
对于每个消费者消费的数据,所述服务端用于通过客户端和服务端之间建立的长链接将所述消费者消费的数据发送至相同数据类型的客户端。
作为优选,基于客户端的连接请求,所述服务端用于通过websocket与客户端建立长链接,客户端和服务端之间的长链接作为一条连接存储于连接池中,且客户端和服务端之间建立一个唯一的业务会话ID,所述业务会话ID与所述客户端的标识码一一对应。
作为优选,所述分布式消息队列为kafka消息队列。
作为优选,对于生产者生产的数据,服务端用于判断分布式队列中是否存在所述客户端指定数据类型的统计分析后的数据,如果不存在,则从生产者生产的数据中选取指定数据类型的数据进行统计分析,并将统计分析后的数据推送至分布式队列中,如果存在,则无需再次从生产者生产的数据中选取指定数据类型的数据进行统计分析。
本发明的多客户端数据实时推送方法及系统具有以下优点:
1、服务端基于对数据进行统计分析后,推送至消息队列,通过分布式消息队列将消息广播至消费者,由消息队列替代传统关系型数据库对数据的存储,缓解了数据库的压力,并实现了消息的实时推送;
2、通过分布式消息队列将数据广播至消费者,通过webscoket实现服务端与多客户端数据推送,将消费者消费的数据实时推送给相关的客户端,在客户端可对消费数据进行分析以提供决策,从而实现了实时的监控。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
下面结合附图对本发明进一步说明。
图1为实施例1多客户端数据实时推送方法的流程框图;
图2为实施例2多客户端数据实时推送系统的工作原理框图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。
本发明实施例提供多客户端数据实时推送方法及系统,用于解决如何缓解数据库压力,并实现面向多客户端的数据实时推送的技术问题。
实施例1:
本发明一种多客户端数据实时推送方法,应用于包括服务端和多个客户端的消息系统,服务端配置有分布式消息队列,该方法包括如下步骤:
S100、对于每个客户端,基于客户端的连接请求,所述客户端和服务端之间建立长链接,所述连接请求中包括客户端唯一的标识码以及客户端指定的数据类型;
S200、对于生产者生产的数据,服务端基于每个客户端的连接请求对客户端指定数据类型的数据进行统计分析,并将统计分析后的数据推送至分布式消息队列;
S300、分布式队列将所有统计分析后的数据广播至消费者;
S400、每个消费者进行数据消费后,通过客户端和服务端之间建立的长链接将所述消费者消费的数据发送至相同数据类型的客户端。
步骤S100客户端和服务端建立长链接,作为具体实施,基于客户端的连接请求,客户端和服务端之间通过websocket建立长链接。客户端和服务端之间的长链接作为一条连接存储于连接池中,且客户端和服务端之间建立一个唯一的业务会话ID,所述业务会话ID与所述客户端的标识码一一对应。
步骤S200服务端对生产者的数据进行统计分析。每个客户端发送连接请求时会指定其需要数据的数据类型,服务端基于该客户端指定的数据类型从生产者生成的数据中选定对应数据类型的数据进行统计分析,并将统计分析后的数据推送至分布式消息队列。鉴于客户端为多个,不同客户端之间指定的数据类型可能存在重叠,因此,服务端在基于客户端指定的数据类型进行统计分析时,需要先判断消息队列中是否已经存在该数据类型对应的统计分析后的数据。
因此步骤S200具体实施为:对于生产者生产的数据,服务端基于每个客户端的连接请求对客户端指定数据类型的数据进行统计分析时,判断分布式队列中是否存在所述客户端指定数据类型的统计分析后的数据,如果不存在,则从生产者生产的数据中选取指定数据类型的数据进行统计分析,并将统计分析后的数据推送至分布式队列中,如果存在,则无需再次从生产者生产的数据中选取指定数据类型的数据进行统计分析。
本实施例中,分布式消息队列为kafka消息队列,该分布式消息队列将所有客户端相关的统计分析后的数据以广播的方式推送至消费者。
在服务端,每个消费者基于其需要的数据类型的数据进行消费,基于该消费者消费数据所属的数据类型,查找与该数据类型一致的客户端作为目标客户端,通过服务端与目标客户端之间的长链接,将该消费者消费的数据实时推送至目标客户端。
例如,存在两个客户端,分别为PC端和手机端,PC端向服务端发送连接请求时,指定的数据类型为A,手机端向服务端发送连接请求时,指定的数据类型为B;其中一个消费者甲消费的数据类型为A,在消费者甲消费数据后,其对应的目标客户端为PC端,在服务端通过PC端与服务端的长链接,将消费者甲消费的数据实时推送至PC端。
本实施例的方法可将统计分析后的数据发送到分布式消息队列中,然后通过websocket数据推送技术,将数据推送给不同的客户端,用于对数据进行准实时的监控。
实施例2:
本发明一种多客户端数据实时推送系统,该系统包括服务端和多个客户端,所述服务端面向生产者和消费者并配置有分布式消息队列。
客户端用于向服务端的发起连接请求,服务端用于基于客户端发起的连接请求与客户端建立长链接,所述连接请求中包括客户端唯一的标识码以及客户端指定的数据类型;对于生产者生产的数据,所述服务端用于基于每个客户端的连接请求对客户端指定数据类型的数据进行统计分析,并将统计分析后的数据推送至分布式消息队列;分布式队列用于将所有统计分析后的数据广播至消费者;对于每个消费者消费的数据,所述服务端用于通过客户端和服务端之间建立的长链接将所述消费者消费的数据发送至相同数据类型的客户端。
作为服务端与客户端连接的具体实施,基于客户端的连接请求,服务端用于通过websocket与客户端建立长链接,客户端和服务端之间的长链接作为一条连接存储于连接池中,且客户端和服务端之间建立一个唯一的业务会话ID,所述业务会话ID与所述客户端的标识码一一对应。
对于生产者生产的数据,服务端用于判断分布式队列中是否存在所述客户端指定数据类型的统计分析后的数据,如果不存在,则从生产者生产的数据中选取指定数据类型的数据进行统计分析,并将统计分析后的数据推送至分布式队列中,如果存在,则无需再次从生产者生产的数据中选取指定数据类型的数据进行统计分析。
本实施例中,分布式消息队列为kafka消息队列。该分布式消息队列将所有客户端相关的统计分析后的数据以广播的方式推送至消费者。
在服务端,每个消费者基于其需要的数据类型的数据进行消费,基于该消费者消费数据所属的数据类型,查找与该数据类型一致的客户端作为目标客户端,通过服务端与目标客户端之间的长链接,将该消费者消费的数据实时推送至目标客户端。
该系统可执行实施例1公开的消息实时推送方法。
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。
Claims (8)
1.一种多客户端数据实时推送方法,其特征在于应用于包括服务端和多个客户端的消息系统,服务端配置有分布式消息队列,所述方法包括如下步骤:
对于每个客户端,基于客户端的连接请求,所述客户端和服务端之间建立长链接,所述连接请求中包括客户端唯一的标识码以及客户端指定的数据类型;
对于生产者生产的数据,服务端基于每个客户端的连接请求对客户端指定数据类型的数据进行统计分析,并将统计分析后的数据推送至分布式消息队列;
分布式队列将所有统计分析后的数据广播至消费者;
每个消费者进行数据消费后,通过客户端和服务端之间建立的长链接将所述消费者消费的数据发送至相同数据类型的客户端。
2.根据权利要求1所述的多客户端数据实时推送方法,其特征在于基于客户端的连接请求,所述客户端和服务端之间通过websocket建立长链接。
3.根据权利要求根据权利要求1所述的多客户端数据实时推送方法,其特征在于所述分布式消息队列为kafka消息队列。
4.根据权利要求根据权利要求1-3任一项所述的多客户端数据实时推送方法,其特征在于对于生产者生产的数据,服务端基于每个客户端的连接请求对客户端指定数据类型的数据进行统计分析时,判断分布式队列中是否存在所述客户端指定数据类型的统计分析后的数据,如果不存在,则从生产者生产的数据中选取指定数据类型的数据进行统计分析,并将统计分析后的数据推送至分布式队列中,如果存在,则无需再次从生产者生产的数据中选取指定数据类型的数据进行统计分析。
5.一种多客户端数据实时推送系统,其特征在于包括服务端和多个客户端,所述服务端面向生产者和消费者并配置有分布式消息队列;
所述客户端用于向服务端的发起连接请求;
所述服务端用于基于客户端发起的连接请求与客户端建立长链接,所述连接请求中包括客户端唯一的标识码以及客户端指定的数据类型;对于生产者生产的数据,所述服务端用于基于每个客户端的连接请求对客户端指定数据类型的数据进行统计分析,并将统计分析后的数据推送至分布式消息队列;
所述分布式队列用于将所有统计分析后的数据广播至消费者;
对于每个消费者消费的数据,所述服务端用于通过客户端和服务端之间建立的长链接将所述消费者消费的数据发送至相同数据类型的客户端。
6.根据权利要求5所述的多客户端数据实时推送系统,其特征在于基于客户端的连接请求,所述服务端用于通过websocket与客户端建立长链接,客户端和服务端之间的长链接作为一条连接存储于连接池中,且客户端和服务端之间建立一个唯一的业务会话ID,所述业务会话ID与所述客户端的标识码一一对应。
7.根据权利要求5所述的多客户端数据实时推送系统,其特征在于所述分布式消息队列为kafka消息队列。
8.根据权利要求5所述的多客户端数据实时推送系统,其特征在于对于生产者生产的数据,服务端用于判断分布式队列中是否存在所述客户端指定数据类型的统计分析后的数据,如果不存在,则从生产者生产的数据中选取指定数据类型的数据进行统计分析,并将统计分析后的数据推送至分布式队列中,如果存在,则无需再次从生产者生产的数据中选取指定数据类型的数据进行统计分析。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210567027.3A CN114979238A (zh) | 2022-05-24 | 2022-05-24 | 多客户端数据实时推送方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210567027.3A CN114979238A (zh) | 2022-05-24 | 2022-05-24 | 多客户端数据实时推送方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114979238A true CN114979238A (zh) | 2022-08-30 |
Family
ID=82985132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210567027.3A Pending CN114979238A (zh) | 2022-05-24 | 2022-05-24 | 多客户端数据实时推送方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114979238A (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011210106A (ja) * | 2010-03-30 | 2011-10-20 | Nippon Telegr & Teleph Corp <Ntt> | メッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラム |
KR20120128013A (ko) * | 2011-05-16 | 2012-11-26 | 에스케이텔레콤 주식회사 | 망 부하 감소를 위한 푸시 서비스 제공 시스템 및 방법 |
CN105282245A (zh) * | 2015-09-29 | 2016-01-27 | 努比亚技术有限公司 | 跨服务器消息推送系统及方法 |
CN107197015A (zh) * | 2017-05-23 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 一种基于消息队列系统的消息处理方法和装置 |
CN109067844A (zh) * | 2018-07-09 | 2018-12-21 | 上海瀚银信息技术有限公司 | 一种消息通讯系统 |
CN109361770A (zh) * | 2018-12-11 | 2019-02-19 | 苏州创旅天下信息技术有限公司 | 基于WebSocket和消息队列实现双向实时通信的系统及方法 |
CN111447185A (zh) * | 2020-03-10 | 2020-07-24 | 平安科技(深圳)有限公司 | 一种推送信息的处理方法及相关设备 |
CN111970315A (zh) * | 2019-05-20 | 2020-11-20 | 北京车和家信息技术有限公司 | 推送消息的方法、装置及系统 |
CN112565214A (zh) * | 2020-11-26 | 2021-03-26 | 中国船舶工业系统工程研究院 | 基于WebSocket的数据传输方法、系统和介质 |
CN113347257A (zh) * | 2021-06-03 | 2021-09-03 | 中国联合网络通信集团有限公司 | 通信方法、装置、服务器及存储介质 |
WO2021238287A1 (zh) * | 2020-05-29 | 2021-12-02 | 苏州浪潮智能科技有限公司 | 一种分布式系统主动推送的方法、系统、设备及介质 |
WO2021237433A1 (zh) * | 2020-05-26 | 2021-12-02 | 深圳市欢太科技有限公司 | 消息推送方法、装置、电子设备及计算机可读介质 |
CN114237936A (zh) * | 2021-12-16 | 2022-03-25 | 成都知道创宇信息技术有限公司 | 数据消费方法、装置、服务器及可读存储介质 |
CN114500630A (zh) * | 2020-10-27 | 2022-05-13 | 航天信息股份有限公司 | 消息推送的方法、装置、系统、存储介质和电子设备 |
-
2022
- 2022-05-24 CN CN202210567027.3A patent/CN114979238A/zh active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011210106A (ja) * | 2010-03-30 | 2011-10-20 | Nippon Telegr & Teleph Corp <Ntt> | メッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラム |
KR20120128013A (ko) * | 2011-05-16 | 2012-11-26 | 에스케이텔레콤 주식회사 | 망 부하 감소를 위한 푸시 서비스 제공 시스템 및 방법 |
CN105282245A (zh) * | 2015-09-29 | 2016-01-27 | 努比亚技术有限公司 | 跨服务器消息推送系统及方法 |
CN107197015A (zh) * | 2017-05-23 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 一种基于消息队列系统的消息处理方法和装置 |
CN109067844A (zh) * | 2018-07-09 | 2018-12-21 | 上海瀚银信息技术有限公司 | 一种消息通讯系统 |
CN109361770A (zh) * | 2018-12-11 | 2019-02-19 | 苏州创旅天下信息技术有限公司 | 基于WebSocket和消息队列实现双向实时通信的系统及方法 |
CN111970315A (zh) * | 2019-05-20 | 2020-11-20 | 北京车和家信息技术有限公司 | 推送消息的方法、装置及系统 |
CN111447185A (zh) * | 2020-03-10 | 2020-07-24 | 平安科技(深圳)有限公司 | 一种推送信息的处理方法及相关设备 |
WO2021237433A1 (zh) * | 2020-05-26 | 2021-12-02 | 深圳市欢太科技有限公司 | 消息推送方法、装置、电子设备及计算机可读介质 |
WO2021238287A1 (zh) * | 2020-05-29 | 2021-12-02 | 苏州浪潮智能科技有限公司 | 一种分布式系统主动推送的方法、系统、设备及介质 |
CN114500630A (zh) * | 2020-10-27 | 2022-05-13 | 航天信息股份有限公司 | 消息推送的方法、装置、系统、存储介质和电子设备 |
CN112565214A (zh) * | 2020-11-26 | 2021-03-26 | 中国船舶工业系统工程研究院 | 基于WebSocket的数据传输方法、系统和介质 |
CN113347257A (zh) * | 2021-06-03 | 2021-09-03 | 中国联合网络通信集团有限公司 | 通信方法、装置、服务器及存储介质 |
CN114237936A (zh) * | 2021-12-16 | 2022-03-25 | 成都知道创宇信息技术有限公司 | 数据消费方法、装置、服务器及可读存储介质 |
Non-Patent Citations (2)
Title |
---|
庄国强;: "一种基于Netty的环保物联网实时双向通信模型研究", 郑州师范教育, no. 06 * |
李欣;杜震洪;张丰;刘仁义;刘南;: "基于BlazeDS消息推送的WebGIS系统设计与实现", 计算机应用与软件, no. 08 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111768008B (zh) | 联邦学习方法、装置、设备和存储介质 | |
CN104394441A (zh) | 一种视频内容分发的调度方法、装置及系统 | |
CN110022221B (zh) | 一种系统接口数据的监控方法、装置及系统 | |
CN106850789B (zh) | 基于服务器负载检测的游戏玩家动态分配系统和方法 | |
CN108334557B (zh) | 一种聚合数据分析方法、装置、存储介质及电子设备 | |
CN109309698B (zh) | 数据处理系统、方法和装置 | |
CN101155066A (zh) | 网络性能分析系统与分析方法 | |
CN101729593A (zh) | 一种上传和接收文件的方法、系统及装置 | |
CN112732647B (zh) | 一种日志搜索方法、装置、设备及存储介质 | |
CN105516733A (zh) | 交互系统及其交互方法 | |
CN103931203A (zh) | 终端装置、服务器装置、信息处理方法、程序和链接应用提供系统 | |
CN107566321A (zh) | 文件的发送方法、装置及系统 | |
CN111953551A (zh) | 日志数据的传输方法、装置、电子设备及存储介质 | |
CN109379245A (zh) | 一种wifi报表生成方法及系统 | |
CN114679602A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN114979238A (zh) | 多客户端数据实时推送方法及系统 | |
CN109862094B (zh) | 一种基于流计算的水务设备数据共享方法及装置 | |
CN111756649A (zh) | 一种数据传输方法、装置、设备及计算机可读存储介质 | |
CN103078905A (zh) | 一种gps终端的通讯管理方法 | |
CN115720121A (zh) | 设备联动实时播报方法、装置、存储介质、计算机设备 | |
CN113472846B (zh) | 消息处理方法、装置、设备和计算机可读存储介质 | |
CN114598662A (zh) | 消息队列集群联邦管理系统以及方法 | |
CN103795810A (zh) | 数据分发系统及方法以及该数据分发系统中的中心服务器 | |
CN110798512A (zh) | 一种集中式数据推送方法、智能终端及存储介质 | |
CN113595894A (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 |