CN114095465A - 一种在分布式环境下高效的im消息时序性保障机制实现方法 - Google Patents
一种在分布式环境下高效的im消息时序性保障机制实现方法 Download PDFInfo
- Publication number
- CN114095465A CN114095465A CN202111365348.7A CN202111365348A CN114095465A CN 114095465 A CN114095465 A CN 114095465A CN 202111365348 A CN202111365348 A CN 202111365348A CN 114095465 A CN114095465 A CN 114095465A
- Authority
- CN
- China
- Prior art keywords
- message
- server
- distributed environment
- service
- session
- 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
- 230000007246 mechanism Effects 0.000 title claims abstract description 9
- 238000000034 method Methods 0.000 title claims description 5
- 238000013461 design Methods 0.000 claims abstract description 3
- 101150054987 ChAT gene Proteins 0.000 claims 3
- 101100203187 Mus musculus Sh2d3c gene Proteins 0.000 claims 3
- 230000005540 biological transmission Effects 0.000 claims 1
- 230000003993 interaction Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 abstract description 22
- 238000004364 calculation method Methods 0.000 abstract description 5
- 238000004891 communication Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 241000412611 Consul Species 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于分布式环境下高效的IM消息时序性保障机制,包括服务器部署及架构方式、消息路由方案,消息在单体IM业务服务器上的核心处理逻辑、计算方式。本发明通过介绍IM服务架构与设计思路,保障了高并发场景下IM消息时序性的同时,也大幅度提高单台服务器效能。
Description
所属技术领域
本专利涉及基于分布式服务环境下高效的的IM消息时序性保障机制实现方式,属于互联网管理技术领域。
背景技术
IM技术是我们生活中,通过线上进行交流沟通的重要技术手段,它的展现形式丰富多样,可以基于文本、表情、图片、视频、声音等多种形式,可以说极大的丰富了我们的生活,降低了我们沟通成本,增加了沟通多样性、便利性。
但是一套优秀的聊天系统应该具有以下特点,第一并发处理能力强,即具有海量消息处理能力;第二要低延迟,即响应迅速,发送方发送的消息,接收放要及时能收取消息;第三消息准确性高,即消息不会丢失,发送方发送的消息,在接受方一定能展示出来,不能出现两端消息不一致的情况;第四顺序性保障,即消息是有序的,消息在接受方所展现的顺序即为在发送方所发送顺序,顺序不能错乱;第五是丰富性,消息的形式不能太单一,要支持多样的聊天内容,给用户带来更丰富的聊天体验。
在分布式环境里,尤其是微服务架构设计,往往为了提高服务器执行效率,同一个会话消息会被打到不同的IM业务服务器上做消息处理,根据不同服务器性能、配置及网络环境的不同,这就难以保障消息的顺序性,即先到的消息不一定优先被处理。
发明内容
本专利则发明一种处理机制提供IM消息在分布式环境里确保顺序执行且能尽可能高效。
为达到上述目的,本发明将整个服务器模块划分为IM业务模块与长链接模块,长链接用于维护与端的链接和消息转发,即用户与长链接模块建立连接,将消息从客户端发出,消息到达长链接服务进行转发,最张将消息转发至IM业务模块。
由于IM模块均采用分布式方式部署,消息到达长链接模块,经过负载均衡可以将请求转发到任意IM业务服务器。
IM业务服务器接收到请求,会根据会话唯一ID进行Hash计算,这样,相同的会话ID的Hash值一定是一样的,根据Hash值的不同,将值与分布式服务的机器进行对应,然后将不同的会话消息转发到同一台服务器上进行处理。
在IM业务服务器内部,保障同一个会话的顺序性,然后将消息发至长链接服务,由长链接服务将消息推送到用户端。
附图说明
图1:服务器架构示意图。
图2:IM业务服务模块结构示意图
具体实施方式
下面结合说明书附图,对本发明对实例中的技术细节进行清楚、完整地描述。
IM消息在服务器中处理、扭转与计算的步骤如下:
1)客户端向长链接服务发起长链接请求,长链接验证客户端,允许客户端连接请求,连接保持;
2)客户端发送IM消息,消息到达长链接服务,长连接服务识别此消息为IM消息,将此消息通过slb转发到任意一台IM业务服务器上;
3)IM业务服务器解析IM消息,通过会话唯一ID进行Hash计算得到一个十进制数m,Hash算法不限,最终得到一个稳定的十进制数据即可;
4)从consul或其它服务发现机制,获取当前IM业务服务器数量n,利用会话ID得到的稳定十进制数m与IM业务服务器数量n进行取模计算,得到值o即为IM业务服务器编号,即o=m%n;
5)判读当台机器是否为编号为o的IM业务服务器,如果是则由当前服务器处理,否则直接转发到编号为o的IM业务服务器处理,并在请求中附上特定参数,标识此请求是转发过来的,当接收到此请求的服务器看到此请求是转发过来的,则不再进行再次计算,直接由本服务器处理,避免浪费性能;
IM消息到达对应的业务处理服务器之后,此时在此单台服务器节点上可以汇集多个会话的消息,因为多个会话可以经过Hash计算,可以路由到此服务器节点,为提高此服务器单节点的多会话并行处理能力,我们会根据服务器性能和业务需求,在业务节点上初始化x个槽位(slot),同一个会话会交由同一个slot处理,slot越多,并行处理能力越强。
slot类似于一个队列,单个slot可以处理不同的会话,只要此会话落在此slot上即可,但是同一个slot中,消息的处理是串行的,不同的slot可以并行处理。
单个IM业务服务进行的逻辑处理步骤如下:
1)项目启动,初始化x个slot,根据机器配置和业务需求的不同,x的值是可配置的,初始化x个slot即表明单个节点上有x个会话的并行处理能力。
2)每个slot初始化一个长度为y的队列,用于缓存处理完毕,等推送的消息,每个slot交由不同的线程或协程等独立单元处理,不能因为一个slot的阻塞造成其它slot阻塞的情况。
3)消息到达业务服务器,会进行一些通用逻辑处理,如消息内容的合法性校验等,前期处理失败的消息直接返回发送方;
4)然后根据会话唯一ID进行Hash求值得到的稳定十进制值m与初始化的slot数x进行取模,得到最终处理此会话的slot序号p,即p=m%x。
5)消息匹配到最终的slot后,进行消息处理队列,将交由worker(队列任务处理器)进行下一步逻辑处理;
6)worker取到任务后,会将队列阻塞,此时对消息进行落地存储,生成自增消息号MsgID,注意MsgID是自增的,即先到的消息MsgID一定比后到达的MsgID要小。
7)worker将消息处理之后,会将消息发送到长链接服务模块,长链接模块将封装好的消息推送到客户端,此时消息处理结束。
以上是本发明的实施方式,但本发明的实施并不受上述内容的限制,其它的任何形式违背本发明的精神实质与原理所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (3)
1.一种在分布式环境下高效的IM消息时序性保障机制实现方法,包括:
-分布式服务器环境,用以建立用户会话关系,存储用户及会话消息、处理聊天逻辑;
-客户端会话窗口,用于用户间聊天交互,展示聊天内容,用户及会话信息等;
-长链接通道,提供客户端与服务器的连接方式,负责客户端与服务器之间的消息传送。
2.一种在分布式环境下高效的IM消息时序性保障机制,如权利要求1中所述,是基于分布式的环境,对单点服务部署设计无此特性。
3.一种在分布式环境下高效的IM消息时序性保障机制,其特征是在于IM消息的时序性,在分布式环境下,消息在服务器上先到将被优先处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111365348.7A CN114095465A (zh) | 2021-11-17 | 2021-11-17 | 一种在分布式环境下高效的im消息时序性保障机制实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111365348.7A CN114095465A (zh) | 2021-11-17 | 2021-11-17 | 一种在分布式环境下高效的im消息时序性保障机制实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114095465A true CN114095465A (zh) | 2022-02-25 |
Family
ID=80301825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111365348.7A Pending CN114095465A (zh) | 2021-11-17 | 2021-11-17 | 一种在分布式环境下高效的im消息时序性保障机制实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114095465A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024032094A1 (zh) * | 2022-08-12 | 2024-02-15 | 深圳市星卡软件技术开发有限公司 | 即时通讯系统及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102045270A (zh) * | 2010-11-30 | 2011-05-04 | 北京迅捷英翔网络科技有限公司 | 聊天服务器系统、构建聊天服务器系统的方法以及聊天系统 |
CN105812235A (zh) * | 2016-03-04 | 2016-07-27 | 百度在线网络技术(北京)有限公司 | 消息处理方法、装置及系统 |
CN107395767A (zh) * | 2017-08-31 | 2017-11-24 | 北京奇虎科技有限公司 | 基于长连接的消息推送系统及方法 |
CN109600302A (zh) * | 2018-11-27 | 2019-04-09 | 金瓜子科技发展(北京)有限公司 | 一种有序通讯的方法、装置、存储介质及电子设备 |
WO2021129262A1 (zh) * | 2019-12-26 | 2021-07-01 | 思必驰科技股份有限公司 | 用于主动发起对话的服务端处理方法及服务器、能够主动发起对话的语音交互系统 |
-
2021
- 2021-11-17 CN CN202111365348.7A patent/CN114095465A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102045270A (zh) * | 2010-11-30 | 2011-05-04 | 北京迅捷英翔网络科技有限公司 | 聊天服务器系统、构建聊天服务器系统的方法以及聊天系统 |
CN105812235A (zh) * | 2016-03-04 | 2016-07-27 | 百度在线网络技术(北京)有限公司 | 消息处理方法、装置及系统 |
CN107395767A (zh) * | 2017-08-31 | 2017-11-24 | 北京奇虎科技有限公司 | 基于长连接的消息推送系统及方法 |
CN109600302A (zh) * | 2018-11-27 | 2019-04-09 | 金瓜子科技发展(北京)有限公司 | 一种有序通讯的方法、装置、存储介质及电子设备 |
WO2021129262A1 (zh) * | 2019-12-26 | 2021-07-01 | 思必驰科技股份有限公司 | 用于主动发起对话的服务端处理方法及服务器、能够主动发起对话的语音交互系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024032094A1 (zh) * | 2022-08-12 | 2024-02-15 | 深圳市星卡软件技术开发有限公司 | 即时通讯系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5898980B2 (ja) | ネットワーク環境において非持続性のメッセージの複数のキューを管理する方法、システム及び記憶媒体 | |
JP5381998B2 (ja) | クラスタ制御システム、クラスタ制御方法、及びプログラム | |
US20140280813A1 (en) | Optimizing application performance in a network environment | |
CN1954578B (zh) | 在基于消息的通信中的改进 | |
CN102571947A (zh) | 一种代理处理数据的方法、装置和系统 | |
WO2006074832A1 (en) | On-demand group communication services with quality of service (qos) guarantees | |
CN109462640B (zh) | 一种元数据同步方法、数据端、交互系统及介质 | |
CN103312807A (zh) | 数据传输方法、装置及系统 | |
CN110661871A (zh) | 一种数据传输方法及mqtt服务器 | |
WO2008085830A1 (en) | A redundant, geographically diverse, and independently scalable message service (ms) content store | |
EP2594049B1 (en) | Sip-based call session server and message-routing method | |
CN103548315A (zh) | 用于高性能低等待时间实时通知递送的方法和装置 | |
CN115002023B (zh) | 一种链路聚合方法、链路聚合装置、电子设备及存储介质 | |
CN114185582A (zh) | 基于quic协议的汽车软件在线升级系统及方法 | |
US9503485B1 (en) | Connecting communicating devices in a multi-server communication system | |
CN110225133B (zh) | 消息发送方法、节点、装置、系统及相关设备 | |
CN114095465A (zh) | 一种在分布式环境下高效的im消息时序性保障机制实现方法 | |
US7543030B2 (en) | Peer-to-peer communication for instant messaging between different instant message application types | |
CN111711675B (zh) | 一种针对局域网内并发消息传递的解决方法 | |
WO2024032094A1 (zh) | 即时通讯系统及方法 | |
US20120294310A1 (en) | Wide Area Network Interface Selection Method and Wide Area Network System Using the Same | |
CN105656994B (zh) | 一种业务加速方法和装置 | |
US8341294B2 (en) | Mechanism for cooperative load balancing with HTTP in converged telecommunication services | |
CN115277649A (zh) | 多媒体会议场景下的文档协同编辑的方法及装置 | |
CN110474781B (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20220225 |