CN119276823A - 消息传输方法、装置、电子设备和计算机可读存储介质 - Google Patents
消息传输方法、装置、电子设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN119276823A CN119276823A CN202411560753.8A CN202411560753A CN119276823A CN 119276823 A CN119276823 A CN 119276823A CN 202411560753 A CN202411560753 A CN 202411560753A CN 119276823 A CN119276823 A CN 119276823A
- Authority
- CN
- China
- Prior art keywords
- session
- center
- message
- conversation
- instant messaging
- 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
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]
-
- 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/21—Monitoring or handling of messages
- H04L51/214—Monitoring or handling of messages using selective forwarding
-
- 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/50—Network services
- H04L67/55—Push-based network services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例提供了一种消息传输方法、装置、电子设备和计算机可读存储介质,涉及即时通讯技术领域,包括:获取所述第一即时通讯客户端发送的会话消息,确定用于存储所述会话消息的会话单元数据库;若所述会话单元数据库不属于所述第一会话中心,则将所述会话消息发送至所述会话单元数据库对应的第二会话中心;若所述会话单元数据库属于所述第一会话中心,则将所述会话消息存储至所述会话单元数据库,并将所述会话消息发送至所述第二会话中心。本发明实施例不仅大大减少了即时通讯业务中数据存储和数据同步的压力,而且也解决了不同中心中的用户无法通讯的问题,实现了各个中心中的用户都可以进行跨中心通讯。
Description
技术领域
本发明涉及即时通讯技术领域,特别是涉及一种消息传输方法、一种消息传输装置、一种电子设备和一种计算机可读存储介质。
背景技术
多活系统是指部署两个或两个以上业务中心,同时承载业务系统的各类业务生产运行功能,以提高系统的整体服务能力和系统资源利用率。在多活中心的架构中,当某个中心出现重大灾难或故障,或紧急需要迁移生产运行负载到另一中心时,能够在较短时间内比较平滑地在多个中心之间切换应用负载,以达到中心的灾难恢复、故障应急切换或者负载平衡等目的。
一般来说,多个中心都是生产中心,每个中心的地理位置对用户透明并且与用户客户端访问无关。
多活系统通常有两种解决方案,一种是用户可以随机或者按照算法路由到任意中心,每个中心数据和逻辑保持一致;另一种是将用户路由到固定某个业务中心,此时多个中心数据可以不完全一致。
方案一需要每个业务中心都互相同步数据,一般适用于读多写少的场景,这样数据同步压力小。而对于即时通讯系统来说,单聊、群聊、建群等操作都会带来大量写操作,是一种典型读写平衡的系统。对于大并发,日活百万的即时通讯系统,高峰期消息并发可以高达几十万,这么大的数据量跨地域同步,成本会非常高。
而如果采用方案二,用户只能路由到某个固定业务中心,一方面,即时通讯系统有特殊性,用户之间需要互相发消息,当用户A在中心一,而用户B在中心二,他们之间就无法加好友、建群、发消息,这不满足即时通讯的业务诉求。同时,如果某个业务中心,用户数据在另一个中心没有备份,系统就无法为这部分用户服务。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种消息传输方法、一种消息传输装置、一种电子设备和一种计算机可读存储介质。
为了解决上述问题,本发明实施例公开了一种消息传输方法,应用于与所述第一即时通讯客户端对应的第一会话中心;所述方法包括:
获取所述第一即时通讯客户端发送的会话消息;
确定用于存储所述会话消息的会话单元数据库;
若所述会话单元数据库不属于所述第一会话中心,则将所述会话消息发送至所述会话单元数据库对应的第二会话中心,以使得所述第二会话中心将所述会话消息存储至所述会话单元数据库,并将所述会话消息发送至与所述第二会话中心对应的第二即时通讯客户端;
若所述会话单元数据库属于所述第一会话中心,则将所述会话消息存储至所述会话单元数据库,并将所述会话消息发送至所述第二会话中心,以使得所述第二会话中心将所述会话消息发送至所述第二即时通讯客户端。
在一个或多个实施例中,在所述获取第一即时通讯客户端发送的会话消息之前,还包括:
响应于针对第一即时通讯客户端的连接请求,与所述第一即时通讯客户端建立连接。
在一个或多个实施例中,所述会话消息包括会话标识;所述确定用于存储所述会话消息的会话单元数据库,包括:
采用预设的路由算法对所述会话标识进行检索,确定用于存储所述会话消息的会话单元数据库。
在一个或多个实施例中,所述将所述会话消息发送至所述会话单元数据库对应的第二会话中心,包括:
通过远程过程调用将所述会话消息发送至所述会话单元数据库对应的第二会话中心。
在一个或多个实施例中,所述会话消息通过即时通讯服务存储至所述会话单元数据库。
在一个或多个实施例中,所述将所述会话消息发送至所述第二会话中心,包括:
基于预设的路由算法确定所述第二即时通讯客户端对应的第二会话中心;
采用所述第一会话中心中的第一推送服务调用所述第二会话中心中的第二推送服务,通过所述第二推送服务将所述会话消息发送至所述第二会话中心。
在一个或多个实施例中,所述与所述第一即时通讯客户端建立连接,包括:
与所述第一即时通讯客户端建立至少一个长连接,以及,至少一个短连接。
相应的,本发明实施例公开了一种消息传输装置,应用于与所述第一即时通讯客户端对应的第一会话中心;所述装置包括:
获取模块,用于获取所述第一即时通讯客户端发送的会话消息;
确定模块,用于确定用于存储所述会话消息的会话单元数据库;
发送模块,用于若所述会话单元数据库不属于所述第一会话中心,则将所述会话消息发送至所述会话单元数据库对应的第二会话中心,以使得所述第二会话中心将所述会话消息存储至所述会话单元数据库,并将所述会话消息发送至与所述第二会话中心对应的第二即时通讯客户端;
存储模块,用于若所述会话单元数据库属于所述第一会话中心,则将所述会话消息存储至所述会话单元数据库,并调用所述发送模块将所述会话消息发送至所述第二会话中心,以使得所述第二会话中心将所述会话消息发送至所述第二即时通讯客户端。
在一个或多个实施例中,还包括:
连接模块,用于在所述获取第一即时通讯客户端发送的会话消息之前,响应于针对第一即时通讯客户端的连接请求,与所述第一即时通讯客户端建立连接。
在一个或多个实施例中,所述会话消息包括会话标识;所述确定模块,具体用于:
采用预设的路由算法对所述会话标识进行检索,确定用于存储所述会话消息的会话单元数据库。
在一个或多个实施例中,所述发送模块,具体用于地:
通过远程过程调用将所述会话消息发送至所述会话单元数据库对应的第二会话中心。
在一个或多个实施例中,所述会话消息通过即时通讯服务存储至所述会话单元数据库。
在一个或多个实施例中,所述发送模块,具体还用于:
基于预设的路由算法确定所述第二即时通讯客户端对应的第二会话中心;
采用所述第一会话中心中的第一推送服务调用所述第二会话中心中的第二推送服务,通过所述第二推送服务将所述会话消息发送至所述第二会话中心。
在一个或多个实施例中,所述连接模块,具体用于:
与所述第一即时通讯客户端建立至少一个长连接,以及,至少一个短连接。
相应的,本发明实施例公开了一种电子设备,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述消息传输方法实施例的各个步骤。
相应的,本发明实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述消息传输方法实施例的各个步骤。
本发明实施例包括以下优点:
第一会话中心获取到所述第一即时通讯客户端发送的会话消息后,可以确定用于存储所述会话消息的会话单元数据库;若所述会话单元数据库不属于所述第一会话中心,则将所述会话消息发送至所述会话单元数据库对应的第二会话中心,以使得所述第二会话中心将所述会话消息存储至所述会话单元数据库,并将所述会话消息发送至与所述第二会话中心对应的第二即时通讯客户端;若所述会话单元数据库属于所述第一会话中心,则将所述会话消息存储至所述会话单元数据库,并将所述会话消息发送至所述第二会话中心,以使得所述第二会话中心将所述会话消息发送至所述第二即时通讯客户端。这样,通过会话维度对即时通讯的数据进行划分,从而大大减少了跨中心的会话,尽可能地让会话发生在一个中心中,不仅大大减少了即时通讯业务中数据存储和数据同步的压力,而且也解决了不同中心中的用户无法通讯的问题,实现了各个中心中的用户都可以进行跨中心通讯。
附图说明
图1是本发明的一种消息传输方法实施例一的步骤流程图;
图2是本发明的一种消息传输方法实施例二的步骤流程图;
图3是本发明的一对一即时通讯的交互示意图;
图4是本发明的一种消息传输装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明实施例的核心构思之一在于,通过会话维度对即时通讯的数据进行划分,从而大大减少了跨中心的会话,尽可能地让会话发生在一个中心中,不仅大大减少了即时通讯业务中数据存储和数据同步的压力,而且也解决了不同中心中的用户无法通讯的问题,实现了各个中心中的用户都可以进行跨中心通讯。
参照图1,示出了本发明的一种消息传输方法实施例一的步骤流程图,可以应用于与即时通讯客户端(为便于区分,记为“第一即时通讯客户端”)对应的会话中心(记为“第一会话中心”)。
其中,第一即时通讯客户端可以安装在用户使用的终端设备中,终端设备可以具有如下特点:
(1)在硬件体系上,设备具备中央处理器、存储器、输入部件和输出部件,也就是说,设备往往是具备通信功能的微型计算机设备。另外,还可以具有多种输入方式,诸如键盘、鼠标、触摸屏、送话器和摄像头等,并可以根据需要进行调整输入。同时,设备往往具有多种输出方式,如受话器、显示屏等,也可以根据需要进行调整;
(2)在软件体系上,设备必须具备操作系统,如Windows Mobile、Symbian、Palm、Android、iOS等。同时,这些操作系统越来越开放,基于这些开放的操作系统平台开发的个性化应用程序层出不穷,如通信簿、日程表、记事本、计算器以及各类游戏等,极大程度地满足了个性化用户的需求;
(3)在通信能力上,设备具有灵活的接入方式和高带宽通信性能,并且能根据所选择的业务和所处的环境,自动调整所选的通信方式,从而方便用户使用。设备可以支持3GPP(3rd Generation Partnership Project,第三代合作伙伴计划)、4GPP(4rd GenerationPartnership Project,第四代合作伙伴计划)、5GPP(5rd Generation PartnershipProject,第五代合作伙伴计划)、LTE(Long Term Evolution,长期演进)、WIMAX(WorldInteroperability for Microwave Access,全球微波接入互操作性)的移动通信、基于TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)、UDP(User Datagram Protocol,用户数据报协议)协议的计算机网络通信以及基于蓝牙、红外传输标准的近距无线传输方式,不仅支持语音业务,更支持多种无线数据业务;
(4)在功能使用上,设备更加注重人性化、个性化和多功能化。随着计算机技术的发展,设备从“以设备为中心”的模式进入“以人为中心”的模式,集成了嵌入式计算、控制技术、人工智能技术以及生物认证技术等,充分体现了以人为本的宗旨。由于软件技术的发展,设备可以根据个人需求调整设置,更加个性化。同时,设备本身集成了众多软件和硬件,功能也越来越强大。
进一步,第一会话中心可以是多中心中的任一个。在本发明实施例中,首先要确定单元间的数据划分,也就是每个会话单元数据库存储哪些数据。要实现单元化的划分,必然要基于一个维度进行划分,一部分到A会话单元数据库,一部分到B会话单元数据库。最常见的划分维度是按照用户标识划分,比如电商业务、短视频业务、游戏。可以按照用户,将用户相关的数据全部划分到一个单元。
但即时通讯业务有其特殊性,一条消息属于聊天双方,群聊亦是如此。用户能和任意一个人聊天,这样根本无法找到一个切入点来划分流量,强行按照用户标识划分,必然导致一个用户的消息出现在N个单元,单元的自封闭就无法实现了。
通常来说,一般的业务可以按照用户或者商户维度来划分数据,不同的数据中心各自存储一部分数据。
比如说购物网站,可以按照商家维度来划分,商家1~10数据放在中心1,商家11~20数据放在中心2。
比如视频业务的多中心,可以按照创建者的标识来划分,1~10号用户创建的视频都放中心1,11-20号用户创建的放中心2。
由于用户访问某个商品,或者某个视频,业务在某个中心内就可以完成,因此这种划分没有问题。
但是即时通讯场景有特殊性,如果按照用户标识来路由,用户1~10路由到中心1;用户11~20路由到中心2。此时用户1给用户11发送一条信息,这条信息不论是放到中心1还是中心2,总有一个用户无法访问到这部分数据。
在实际应用中,M会话通常指两个或多个用户之间因聊天而建立起的关联,会话是基本的交流单位,它允许用户之间进行实时的文本、语音或视频交流。会话可以是一对一的聊天,也可以是多人参与的群聊或聊天室。所以,会话的建立基于用户之间的互动,通过即时通讯系统进行消息的发送和接收时,可以基于“会话维度”作为即时通讯业务的业务维度。也就是说,本发明实施例可以基于会话维度对即时通讯的数据进行划分。基于此,多中心中的每个中心也可以基于会话维度进行划分,从而得到多个会话中心,每个会话中心对应相同会话维度的即时通讯客户端。比如,根据会话维度可以将第一即时通讯客户端划分至第一会话中心。
需要说明的是,本发明实施例以一对一聊天进行说明,由于一对一的聊天与多人参与的聊天的本质是相同的,所以,多人参与的聊天就不赘述了。
该方法具体可以包括如下步骤:
步骤101,获取所述第一即时通讯客户端发送的会话消息。
当第一会话中心与第一即时通讯客户端连接成功后,用户可以通过第一即时通讯客户端发起会话消息,第一会话中心即可获取该会话消息。
步骤102,确定用于存储所述会话消息的会话单元数据库。
每个会话中心中,都可以设置会话单元数据库和全局数据库。按照即时通讯业务的特点,可以将即时通讯的数据分成基础数据和聊天数据。
其中,基础数据可以包括用户信息(用户标识、用户手机号、用户昵称等)、好友信息、群组信息、其他系统数据等。由于这部分数据读多写少,所以,这部分数据可以全局同步,也就是存储在每个会话中心的全局数据库中,每个会话中心的全局数据库中写入的数据都可以同步到其他会话中心的全局数据库中。
聊天数据则可以根据会话维度路由至某个会话中心,即,聊天数据存储在一个会话中心的会话单元数据库中。如果会话的发送和接收方不属于同一个会话中心,则可以通过接口调用的方式进行数据传输。
基于此,第一会话中心在获取到会话消息后,可以确定出该会话消息需要存储至哪个会话中心的会话单元数据库中。比如,第一会话中心在获取到会话消息后,确定出会话消息需要存储至第二会话中心的会话单元数据库中,那么第一会话中心就可以通过接口调用的方式将会话消息传输至第二会话中心,第二会话中心在获取到会话消息后,即可将会话消息存储至会话单元数据库中。
在本发明实施例中,所述会话消息包括会话标识;所述确定用于存储所述会话消息的会话单元数据库,包括:
采用预设的路由算法对所述会话标识进行检索,确定用于存储所述会话消息的会话单元数据库。
具体而言,如前所述,本发明实施例可以按照会话维度进行划分,所以,会话消息中也可以包括会话标识,这样,在确定会话单元数据库时,可以采用预设的路由算法对会话消息中的会话标识进行检索,从而确定出用于存储会话消息的会话单元数据库。
其中,路由算法用于按照会话维度来划分数据,也就是说,路由算法需要解决的是尽可能让跨中心的会话减少,尽可能让会话都发生在同一个中心。
由于按照会话维度来划分会话中心后,还存在一个问题,会话消息可能随机路由到某个会话中心,这样,一个用户的会话消息可能存在于多个会话中心,会带来很大的数据同步压力。
所以,根据即时通讯业务的特点,会话消息主要发生在一个组织内部或者某个地域。基于此,本发明实施例可以按照组织标识对即时通讯客户端进行路由,或者按照即时通讯客户端所在地域进行路由。
比如,应用于工作场景的接入路由,可以选择按照公司名称或组织名称作为路由算法的依据;应用于日常生活场景,可以选择按照地域(省份名称)作为路由算法的依据。至于具体选择哪一种路由算法,本发明实施例可以基于大数据算法,找到和会话关联度最大的特征来作为路由算法的依据。
步骤103,若所述会话单元数据库不属于所述第一会话中心,则将所述会话消息发送至所述会话单元数据库对应的第二会话中心,以使得所述第二会话中心将所述会话消息存储至所述会话单元数据库,并将所述会话消息发送至与所述第二会话中心对应的第二即时通讯客户端。
如果确定出的会话单元数据库不属于第一会话中心,那么就可以将会话消息发送至该会话单元数据库所属的会话中心(记为“第二会话中心”)。第二会话中心在获取到会话消息后,即可将会话消息存储至该会话单元,同时,将会话消息发送至连接到第二会话中心的即时通讯客户端(记为“第二即时通讯客户端”)。第二即时通讯客户端即可向用户展示该会话消息。
比如,用户1通过即时通讯客户端1发起会话消息,即时通讯客户端1将会话消息发送至会话中心1,会话中心1根据路由算法确定出会话消息需要存储在会话中心2中,所以,会话中心1将会话消息发送至会话中心2,会话中心2将会话消息存储至其中的会话单元数据库中,同时,将会话消息发送至即时通讯客户端2,即时通讯客户端2将会话消息展示给用户2。
在本发明实施例中,所述将所述会话消息发送至所述会话单元数据库对应的第二会话中心,包括:
通过远程过程调用将所述会话消息发送至所述会话单元数据库对应的第二会话中心。
具体而言,在确定会话单元数据库不属于第一会话中心后,第一会话中心的会话路由可以调用RPC(Remote Procedure Call,远程过程调用)将会话消息发送至会话单元数据库对应的第二会话中心,第二会话中心中的会话路由即可获取该会话消息。
进一步,会话消息可以通过即时通讯服务(IM Server)存储至会话单元数据库。也就是说,第二会话中心中的会话路由获取到会话消息后,可以通过即时通讯服务将会话消息存储至第二会话中心中的会话单元数据库中。
步骤104,若所述会话单元数据库属于所述第一会话中心,则将所述会话消息存储至所述会话单元数据库,并将所述会话消息发送至所述第二会话中心,以使得所述第二会话中心将所述会话消息发送至所述第二即时通讯客户端。
如果确定出的会话单元数据库属于第一会话中心,那么就可以将会话消息存储至该会话单元数据库,同时,将会话消息发送至第二会话中心,第二会话中心将该会话数据发送至第二即时通讯客户端,第二即时通讯客户端即可向用户展示该会话消息。
其中,会话消息也可以通过即时通讯服务存储至会话单元数据库。也就是说,第一会话中心中的会话路由获取到会话消息后,可以通过即时通讯服务将会话消息存储至第一会话中心中的会话单元数据库中。
在本发明实施例中,所述将所述会话消息发送至所述第二会话中心,包括:
基于预设的路由算法确定所述第二即时通讯客户端对应的第二会话中心;
采用所述第一会话中心中的第一推送服务调用所述第二会话中心中的第二推送服务,通过所述第二推送服务将所述会话消息发送至所述第二会话中心。
具体而言,第一会话中心在发送会话消息时,可以采用路由算法计算出第二即时通讯客户端所属的第二会话中心,然后采用第一会话中心中的推送服务(记为“第一推送服务”)调用第二会话中心中的推送服务(记为“第二推送服务”),这样,第一推送服务就可以将会话消息发送至第二会话中心中的第二推送服务,最终,第二会话中心将会话消息发送至第二即时通讯客户端,第二即时通讯客户端即可向用户展示该会话消息。
在本发明实施例中,第一会话中心获取到所述第一即时通讯客户端发送的会话消息后,可以确定用于存储所述会话消息的会话单元数据库;若所述会话单元数据库不属于所述第一会话中心,则将所述会话消息发送至所述会话单元数据库对应的第二会话中心,以使得所述第二会话中心将所述会话消息存储至所述会话单元数据库,并将所述会话消息发送至与所述第二会话中心对应的第二即时通讯客户端;若所述会话单元数据库属于所述第一会话中心,则将所述会话消息存储至所述会话单元数据库,并将所述会话消息发送至所述第二会话中心,以使得所述第二会话中心将所述会话消息发送至所述第二即时通讯客户端。这样,通过会话维度对即时通讯的数据进行划分,从而大大减少了跨中心的会话,尽可能地让会话发生在一个中心中,不仅大大减少了即时通讯业务中数据存储和数据同步的压力,而且也解决了不同中心中的用户无法通讯的问题,实现了各个中心中的用户都可以进行跨中心通讯。
参照图2,示出了本发明的一种消息传输方法实施例二的步骤流程图,具体可以包括如下步骤:
步骤201,响应于针对第一即时通讯客户端的连接请求,与所述第一即时通讯客户端建立连接。
用户在终端设备中启动第一即时通讯客户端后,第一即时通讯客户端可以连接至接入层路由,接入层路由可以按照路由算法计算出第一即时通讯客户端归属哪个会话中心。在确定出第一即时通讯客户端归属第一会话中心后,即可将第一即时通讯客户端路由至第一会话中心。第一会话中心在获取到连接请求后,即可与第一通讯客户端建立连接,建立连接成功后,用户即可通过第一即时通讯客户端发起会话消息。
其中,第一会话中心与第一即时通讯客户端建立连接时,可以建立至少一个长连接,以及,至少一个短连接。也就是说,第一即时通讯客户端发起的所有会话消息都可以发送至第一会话中心。
步骤202,获取所述第一即时通讯客户端发送的会话消息。
当第一会话中心与第一即时通讯客户端连接成功后,用户可以通过第一即时通讯客户端发起会话消息,第一会话中心即可获取该会话消息。
步骤203,确定用于存储所述会话消息的会话单元数据库。
每个会话中心中,都可以设置会话单元数据库和全局数据库。按照即时通讯业务的特点,可以将即时通讯的数据分成基础数据和聊天数据。
其中,基础数据可以包括用户信息(用户标识、用户手机号、用户昵称等)、好友信息、群组信息、其他系统数据等。由于这部分数据读多写少,所以,这部分数据可以全局同步,也就是存储在每个会话中心的全局数据库中,每个会话中心的全局数据库中写入的数据都可以同步到其他会话中心的全局数据库中。
聊天数据则可以根据会话维度路由至某个会话中心,即,聊天数据存储在一个会话中心的会话单元数据库中。如果会话的发送和接收方不属于同一个会话中心,则可以通过接口调用的方式进行数据传输。
基于此,第一会话中心在获取到会话消息后,可以确定出该会话消息需要存储至哪个会话中心的会话单元数据库中。比如,第一会话中心在获取到会话消息后,确定出会话消息需要存储至第二会话中心的会话单元数据库中,那么第一会话中心就可以通过接口调用的方式将会话消息传输至第二会话中心,第二会话中心在获取到会话消息后,即可将会话消息存储至会话单元数据库中。
在本发明实施例中,所述会话消息包括会话标识;所述确定用于存储所述会话消息的会话单元数据库,包括:
采用预设的路由算法对所述会话标识进行检索,确定用于存储所述会话消息的会话单元数据库。
具体而言,如前所述,本发明实施例可以按照会话维度进行划分,所以,会话消息中也可以包括会话标识,这样,在确定会话单元数据库时,可以采用预设的路由算法对会话消息中的会话标识进行检索,从而确定出用于存储会话消息的会话单元数据库。
其中,路由算法用于按照会话维度来划分数据,也就是说,路由算法需要解决的是尽可能让跨中心的会话减少,尽可能让会话都发生在同一个中心。
由于按照会话维度来划分会话中心后,还存在一个问题,会话消息可能随机路由到某个会话中心,这样,一个用户的会话消息可能存在于多个会话中心,会带来很大的数据同步压力。
所以,根据即时通讯业务的特点,会话消息主要发生在一个组织内部或者某个地域。基于此,本发明实施例可以按照组织标识对即时通讯客户端进行路由,或者按照即时通讯客户端所在地域进行路由。
比如,应用于工作场景的接入路由,可以选择按照公司名称或组织名称作为路由算法的依据;应用于日常生活场景,可以选择按照地域(省份名称)作为路由算法的依据。至于具体选择哪一种路由算法,本发明实施例可以基于大数据算法,找到和会话关联度最大的特征来作为路由算法的依据。
步骤204,若所述会话单元数据库不属于所述第一会话中心,则将所述会话消息发送至所述会话单元数据库对应的第二会话中心,以使得所述第二会话中心将所述会话消息存储至所述会话单元数据库,并将所述会话消息发送至与所述第二会话中心对应的第二即时通讯客户端。
如果确定出的会话单元数据库不属于第一会话中心,那么就可以将会话消息发送至该会话单元数据库所属的第二会话中心。第二会话中心在获取到会话消息后,即可将会话消息存储至该会话单元,同时,将会话消息发送至连接到第二会话中心的第二即时通讯客户端。第二即时通讯客户端即可向用户展示该会话消息。
在本发明实施例中,所述将所述会话消息发送至所述会话单元数据库对应的第二会话中心,包括:
通过远程过程调用将所述会话消息发送至所述会话单元数据库对应的第二会话中心。
具体而言,在确定会话单元数据库不属于第一会话中心后,第一会话中心的会话路由可以调用RPC将会话消息发送至会话单元数据库对应的第二会话中心,第二会话中心中的会话路由即可获取该会话消息。
进一步,会话消息可以通过即时通讯服务存储至会话单元数据库。也就是说,第二会话中心中的会话路由获取到会话消息后,可以通过即时通讯服务将会话消息存储至第二会话中心中的会话单元数据库中。
步骤205,若所述会话单元数据库属于所述第一会话中心,则将所述会话消息存储至所述会话单元数据库,并将所述会话消息发送至所述第二会话中心,以使得所述第二会话中心将所述会话消息发送至所述第二即时通讯客户端。
如果确定出的会话单元数据库属于第一会话中心,那么就可以将会话消息存储至该会话单元数据库,同时,将会话消息发送至第二会话中心,第二会话中心将该会话数据发送至第二即时通讯客户端,第二即时通讯客户端即可向用户展示该会话消息。
其中,会话消息也可以通过即时通讯服务存储至会话单元数据库。也就是说,第一会话中心中的会话路由获取到会话消息后,可以通过即时通讯服务将会话消息存储至第一会话中心中的会话单元数据库中。
在本发明实施例中,所述将所述会话消息发送至所述第二会话中心,包括:
基于预设的路由算法确定所述第二即时通讯客户端对应的第二会话中心;
采用所述第一会话中心中的第一推送服务调用所述第二会话中心中的第二推送服务,通过所述第二推送服务将所述会话消息发送至所述第二会话中心。
具体而言,第一会话中心在发送会话消息时,可以采用路由算法计算出第二即时通讯客户端所属的第二会话中心,然后采用第一会话中心中的第一推送服务调用第二会话中心中的第二推送服务,这样,第一推送服务就可以将会话消息发送至第二会话中心中的第二推送服务,最终,第二会话中心将会话消息发送至第二即时通讯客户端,第二即时通讯客户端即可向用户展示该会话消息。
在本发明实施例中,通过会话维度对即时通讯的数据进行划分,从而大大减少了跨中心的会话,尽可能地让会话发生在一个中心中,不仅大大减少了即时通讯业务中数据存储和数据同步的压力,而且也解决了不同中心中的用户无法通讯的问题,实现了各个中心中的用户都可以进行跨中心通讯。
为便于理解,图3示出了一对一即时通讯的交互示意图,其中,接入路由层已经确定用户1接入会话中心1,用户2接入会话中心2。
用户1通过即时通讯客户端1连接到了会话中心1,用户2通过即时通讯客户端2连接到了会话中心2,1-2的会话消息保存在会话中心1的会话单元数据库中。
当用户2给用户1发信息时,即时通讯客户端2将会话消息发送至会话中心2,会话中心2中的消息接收服务2获取到会话消息后,通过会话路由2计算出会话消息存储在会话中心1的会话单元数据库1中,此时,会话中心2中的会话路由2需要调用RPC,将会话数据发送到会话中心1的会话路由1。会话中心1中的会话路由1通过即时通讯服务1将会话消息存储至会话单元数据库1,同时,即时通讯服务1通过推送服务1将会话消息发送至即时通讯客户端1,即时通讯客户端1向用户展示用户2发送的会话消息。
当用户1给用户2发信息时,即时通讯客户端1将会话消息发送至会话中心1,会话中心1中的消息接收服务1获取到会话消息后,通过会话路由1计算出会话消息存储在会话中心1的会话单元数据库1中,此时,会话路由1通过即时通讯服务1将会话消息存储至会话单元数据库1(用户2还未收到消息),同时,通过路由算法计算出用户2连接在哪个会话中心,在确定出用户2连接在会话中心2后,会话中心1中的推送服务1可以调用会话中心2中的推送服务2,这样,通过推送服务2将会话消息发送至会话中心2,最终,会话中心2将会话消息发送至即时通讯服务2,即时通讯服务2向用户2展示用户1发送的会话消息。
进一步,会话中心1中的全局数据库1与会话中心2中的全局数据库2保持数据同步。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了本发明的一种消息传输装置实施例的结构框图,具体可以包括如下模块:
获取模块401,用于获取所述第一即时通讯客户端发送的会话消息;
确定模块402,用于确定用于存储所述会话消息的会话单元数据库;
发送模块403,用于若所述会话单元数据库不属于所述第一会话中心,则将所述会话消息发送至所述会话单元数据库对应的第二会话中心,以使得所述第二会话中心将所述会话消息存储至所述会话单元数据库,并将所述会话消息发送至与所述第二会话中心对应的第二即时通讯客户端;
存储模块404,用于若所述会话单元数据库属于所述第一会话中心,则将所述会话消息存储至所述会话单元数据库,并调用所述发送模块将所述会话消息发送至所述第二会话中心,以使得所述第二会话中心将所述会话消息发送至所述第二即时通讯客户端。
在本发明实施例中,还包括:
连接模块,用于在所述获取第一即时通讯客户端发送的会话消息之前,响应于针对第一即时通讯客户端的连接请求,与所述第一即时通讯客户端建立连接。
在本发明实施例中,所述会话消息包括会话标识;所述确定模块,具体用于:
采用预设的路由算法对所述会话标识进行检索,确定用于存储所述会话消息的会话单元数据库。
在本发明实施例中,所述发送模块,具体用于地:
通过远程过程调用将所述会话消息发送至所述会话单元数据库对应的第二会话中心。
在本发明实施例中,所述会话消息通过即时通讯服务存储至所述会话单元数据库。
在本发明实施例中,所述发送模块,具体还用于:
基于预设的路由算法确定所述第二即时通讯客户端对应的第二会话中心;
采用所述第一会话中心中的第一推送服务调用所述第二会话中心中的第二推送服务,通过所述第二推送服务将所述会话消息发送至所述第二会话中心。
在本发明实施例中,所述连接模块,具体用于:
与所述第一即时通讯客户端建立至少一个长连接,以及,至少一个短连接。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种电子设备,包括:
包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述消息传输方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现上述消息传输方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种消息传输方法和一种消息传输装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种消息传输方法,其特征在于,应用于与所述第一即时通讯客户端对应的第一会话中心;所述方法包括:
获取所述第一即时通讯客户端发送的会话消息;
确定用于存储所述会话消息的会话单元数据库;
若所述会话单元数据库不属于所述第一会话中心,则将所述会话消息发送至所述会话单元数据库对应的第二会话中心,以使得所述第二会话中心将所述会话消息存储至所述会话单元数据库,并将所述会话消息发送至与所述第二会话中心对应的第二即时通讯客户端;
若所述会话单元数据库属于所述第一会话中心,则将所述会话消息存储至所述会话单元数据库,并将所述会话消息发送至所述第二会话中心,以使得所述第二会话中心将所述会话消息发送至所述第二即时通讯客户端。
2.根据权利要求1所述的消息传输方法,其特征在于,在所述获取第一即时通讯客户端发送的会话消息之前,还包括:
响应于针对第一即时通讯客户端的连接请求,与所述第一即时通讯客户端建立连接。
3.根据权利要求1所述的消息传输方法,其特征在于,所述会话消息包括会话标识;所述确定用于存储所述会话消息的会话单元数据库,包括:
采用预设的路由算法对所述会话标识进行检索,确定用于存储所述会话消息的会话单元数据库。
4.根据权利要求1所述的消息传输方法,其特征在于,所述将所述会话消息发送至所述会话单元数据库对应的第二会话中心,包括:
通过远程过程调用将所述会话消息发送至所述会话单元数据库对应的第二会话中心。
5.根据权利要求1所述的消息传输方法,其特征在于,所述会话消息通过即时通讯服务存储至所述会话单元数据库。
6.根据权利要求1所述的消息传输方法,其特征在于,所述将所述会话消息发送至所述第二会话中心,包括:
基于预设的路由算法确定所述第二即时通讯客户端对应的第二会话中心;
采用所述第一会话中心中的第一推送服务调用所述第二会话中心中的第二推送服务,通过所述第二推送服务将所述会话消息发送至所述第二会话中心。
7.根据权利要求2所述的消息传输方法,其特征在于,所述与所述第一即时通讯客户端建立连接,包括:
与所述第一即时通讯客户端建立至少一个长连接,以及,至少一个短连接。
8.一种消息传输装置,其特征在于,应用于与所述第一即时通讯客户端对应的第一会话中心;所述装置包括:
获取模块,用于获取所述第一即时通讯客户端发送的会话消息;
确定模块,用于确定用于存储所述会话消息的会话单元数据库;
发送模块,用于若所述会话单元数据库不属于所述第一会话中心,则将所述会话消息发送至所述会话单元数据库对应的第二会话中心,以使得所述第二会话中心将所述会话消息存储至所述会话单元数据库,并将所述会话消息发送至与所述第二会话中心对应的第二即时通讯客户端;
存储模块,用于若所述会话单元数据库属于所述第一会话中心,则将所述会话消息存储至所述会话单元数据库,并调用所述发送模块将所述会话消息发送至所述第二会话中心,以使得所述第二会话中心将所述会话消息发送至所述第二即时通讯客户端。
9.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1~7中任一项所述消息传输方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1~7中任一项所述消息传输方法的步骤。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202411560753.8A CN119276823A (zh) | 2024-11-04 | 2024-11-04 | 消息传输方法、装置、电子设备和计算机可读存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202411560753.8A CN119276823A (zh) | 2024-11-04 | 2024-11-04 | 消息传输方法、装置、电子设备和计算机可读存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN119276823A true CN119276823A (zh) | 2025-01-07 |
Family
ID=94121148
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202411560753.8A Pending CN119276823A (zh) | 2024-11-04 | 2024-11-04 | 消息传输方法、装置、电子设备和计算机可读存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN119276823A (zh) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104854575A (zh) * | 2012-10-22 | 2015-08-19 | 卡希典通讯有限公司 | 集群会话管理 |
| US20180288163A1 (en) * | 2017-03-30 | 2018-10-04 | Microsoft Technology Licensing, Llc | Systems and methods for achieving session stickiness for stateful cloud services with non-sticky load balancers |
| CN109257448A (zh) * | 2018-11-21 | 2019-01-22 | 网易(杭州)网络有限公司 | 一种会话信息同步的方法及装置、电子设备、存储介质 |
| CN115277647A (zh) * | 2022-08-03 | 2022-11-01 | 康键信息技术(深圳)有限公司 | 实时会话消息的处理方法及装置、存储介质、终端 |
| CN117743328A (zh) * | 2023-12-08 | 2024-03-22 | 行吟信息科技(武汉)有限公司 | 一种数据分发方法、装置、设备及可读存储介质 |
-
2024
- 2024-11-04 CN CN202411560753.8A patent/CN119276823A/zh active Pending
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104854575A (zh) * | 2012-10-22 | 2015-08-19 | 卡希典通讯有限公司 | 集群会话管理 |
| US20180288163A1 (en) * | 2017-03-30 | 2018-10-04 | Microsoft Technology Licensing, Llc | Systems and methods for achieving session stickiness for stateful cloud services with non-sticky load balancers |
| CN110799945A (zh) * | 2017-03-30 | 2020-02-14 | 微软技术许可有限责任公司 | 用于利用非粘性负载均衡器实现有状态云服务的会话粘性的系统和方法 |
| CN109257448A (zh) * | 2018-11-21 | 2019-01-22 | 网易(杭州)网络有限公司 | 一种会话信息同步的方法及装置、电子设备、存储介质 |
| CN115277647A (zh) * | 2022-08-03 | 2022-11-01 | 康键信息技术(深圳)有限公司 | 实时会话消息的处理方法及装置、存储介质、终端 |
| CN117743328A (zh) * | 2023-12-08 | 2024-03-22 | 行吟信息科技(武汉)有限公司 | 一种数据分发方法、装置、设备及可读存储介质 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9680687B2 (en) | Method and apparatus for controlling sessions from one or more devices | |
| EP3001604A1 (en) | Dynamic media negotiation in secure media-based conferencing | |
| US7844244B2 (en) | Methods, apparatuses, and computer program products for providing dynamic assignment of slot cycle index for network nodes | |
| JP2017502586A (ja) | セキュアメディアベース会議のための方法およびシステム | |
| CN109586929B (zh) | 会议内容的传输方法及装置、电子设备、存储介质 | |
| JP2019149193A (ja) | モバイル・デバイス上のアプリケーションからリモート・ウェブ・クライアントを扱うための技法 | |
| CN108965109B (zh) | 一种即时通讯控制方法、装置及存储介质 | |
| US10778736B2 (en) | On demand in-band signaling for conferences | |
| CN113873502B (zh) | Ip地址管理方法、nef实体和通信系统 | |
| US9026489B2 (en) | Updating a conference invitation responsive to user location | |
| US20240414243A1 (en) | Interaction-Based Dynamic User Profiles | |
| EP2974159B1 (en) | Method, device and system for voice communication | |
| CN112637540B (zh) | 多客户端的音视频通话连接方法、装置、设备及存储介质 | |
| EP3001603A1 (en) | Dynamic signaling and resource allocation in secure media-based conferencing | |
| EP2671366B1 (en) | Determining a location address for shared data | |
| US20250286917A1 (en) | Transitioning, With A Peripheral Device, Between User Devices Within A Video Conference | |
| US11563782B2 (en) | Enriched calling based call routing | |
| CN119276823A (zh) | 消息传输方法、装置、电子设备和计算机可读存储介质 | |
| US20140295806A1 (en) | Encoded identifier based network | |
| US11271975B2 (en) | Enriched calling based call type notification | |
| WO2018233447A1 (zh) | 实现链路连接处理的方法、及装置及存储介质 | |
| US9871870B1 (en) | Pseudonymous communication session generation and management systems and methods | |
| US8819127B1 (en) | Ensemble computing | |
| US20250070995A1 (en) | Systems and methods for efficient duplication and transmission of live audio data | |
| WO2025017661A1 (en) | System and method for creating a dynamic uniform resource locator (url) |
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 |