CN114095465A - 一种在分布式环境下高效的im消息时序性保障机制实现方法 - Google Patents

一种在分布式环境下高效的im消息时序性保障机制实现方法 Download PDF

Info

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
Application number
CN202111365348.7A
Other languages
English (en)
Inventor
薛鹏
于红建
易德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Tongcheng Biying Technology Co Ltd
Original Assignee
Beijing Tongcheng Biying Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Tongcheng Biying Technology Co Ltd filed Critical Beijing Tongcheng Biying Technology Co Ltd
Priority to CN202111365348.7A priority Critical patent/CN114095465A/zh
Publication of CN114095465A publication Critical patent/CN114095465A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup 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业务服务器。
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消息的时序性,在分布式环境下,消息在服务器上先到将被优先处理。
CN202111365348.7A 2021-11-17 2021-11-17 一种在分布式环境下高效的im消息时序性保障机制实现方法 Pending CN114095465A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024032094A1 (zh) * 2022-08-12 2024-02-15 深圳市星卡软件技术开发有限公司 即时通讯系统及方法

Citations (5)

* Cited by examiner, † Cited by third party
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 思必驰科技股份有限公司 用于主动发起对话的服务端处理方法及服务器、能够主动发起对话的语音交互系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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