一种消息中介传输系统技术方案

技术编号:18398173 阅读:21 留言:0更新日期:2018-07-08 19:11
本发明专利技术公开了一种消息中介传输系统,属于消息中间件技术领域;消息中介传输系统与多个客户端远程连接,多个客户端之间通过消息中介传输系统传输消息;消息中介传输系统具体包括:存储单元,用于保存消息;于存储单元内包括多个存储文件,消息被分别保存于每个存储文件中;于存储单元内还包括一索引文件,索引文件中包括每个消息被保存在存储文件中的偏移量;客户端通过索引文件定位消息被保存的位置,进而获取保存在存储单元内的消息。上述技术方案的有益效果是:解决消息队列拥挤的问题,有效降低文件资源、I/O资源和内存资源的损耗,并且能够低延迟地完成高并发和海量数据的运行场景,以及具有横向扩展的能力。

【技术实现步骤摘要】
一种消息中介传输系统
本专利技术涉及消息中间件
,尤其涉及一种消息中介传输系统。
技术介绍
随着通讯技术的日益发达,应用之间的消息互通往往需要通过消息中间件来实现。消息中间件可以利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。传统的消息中间件通常是采用一个消息队列进行消息的中介传输,这种消息中间件无法处理海量数据的应用环境下大量消息的传输,会造成消息队列的堵塞。并且,基于目前大数据量的应用环境,传统的消息中间件在运行过程中会造成较高的文件资源、I/O资源以及内存资源等的损耗,从而会造成消息处理效率的下降,导致消息传输的延时,用户的应用体验也会随之下降。
技术实现思路
根据现有技术中存在的上述问题,现提供一种消息中介传输系统的技术方案,旨在解决消息队列拥挤的问题,有效降低文件资源、I/O资源和内存资源的损耗,并且能够低延迟地完成高并发和海量数据的运行场景,以及具有横向扩展的能力。上述技术方案具体包括:一种消息中介传输系统,其中,所述消息中介传输系统与多个客户端远程连接,多个客户端之间通过所述消息中介传输系统传输消息;所述消息中介传输系统具体包括:存储单元,用于保存所述消息;于所述存储单元内包括多个存储文件,所述消息被分别保存于每个所述存储文件中;于所述存储单元内还包括一索引文件,所述索引文件中包括每个所述消息被保存在所述存储文件中的偏移量;所述客户端通过所述索引文件定位所述消息被保存的位置,进而获取保存在所述存储单元内的所述消息。优选的,该消息中介传输系统,其中,多个所述客户端包括:多个生产客户端,每个所述生产客户端分别用于产生所述消息并向所述消息中介传输系统传输;多个消费客户端,每个所述消费客户端分别用于通过所述索引文件主动提取保存于所述存储单元中的所述消息并进行消费;所述消费客户端还用于管理所述消息的消费状态,并将所述消费状态提供给所述消息中介传输系统。优选的,该消息中介传输系统,其中,所述消息中介传输系统中还包括:消息存储单元,连接所述存储单元,用于通过核心线程将所述消息保存至所述存储单元中;消息搬运单元,连接所述消息存储单元,用于通过用户线程获取所述消息并将获取到的所述消息搬运至所述消息存储单元中;当所述消息存储单元将被搬运的所述消息全部保存至所述存储单元后,所述消息存储单元向所述消息搬运单元发送一异步通知,以通知所述消息搬运单元继续向所述消息存储单元中搬运所述消息。优选的,该消息中介传输系统,其中,所述存储文件为日志文件;所述日志文件的一行用于表示一条所述消息。优选的,该消息中介传输系统,其中,所述存储单元中至少包括8个所述存储文件。优选的,该消息中介传输系统,其中,所述存储单元中包括多个存储模块,每个所述存储模块中保存有部分所述存储文件,每个所述存储模块被分别设置于不同的数据存储服务器中;所述消息中介传输系统中还包括:第一控制单元,连接所述存储单元,所述第一控制单元用于对每个所述存储模块进行心跳检测,以判断所述存储模块是否存活,所述第一控制单元向所述客户端反馈相应的判断结果;所述第一控制单元被设置于一数据控制服务器中。优选的,该消息中介传输系统,其中,所述数据控制服务器和所有所述数据存储服务器被设置于同一个服务器集群中。优选的,该消息中介传输系统,其中,多个所述客户端包括:多个生产客户端,每个所述生产客户端分别用于产生所述消息并向所述消息中介传输系统传输;多个消费客户端,每个所述消费客户端分别用于通过所述索引文件主动提取保存于所述存储单元中的所述消息并进行消费;在同一时刻,一个所述存储文件仅提供给一个所述消费客户端进行消息获取的操作;所述消息中介传输系统还包括:第二控制单元,连接所述存储单元,所述第二控制单元用于监控每个所述存储文件的当前获取状态,并持续更新当前可用的所述存储文件;所述消费客户端从所述消息中介传输系统中获取所述消息之前,先向所述第二控制单元进行注册,以获知当前可用的所述存储文件;所述第二控制单元被设置于所述数据控制服务器中。优选的,该消息中介传输系统,其中,所述第二控制单元中还包括每个所述存储模块的路由信息;所述消费客户端在向所述第二控制单元进行注册时,获知当前可用的所述存储文件所在的所述存储模块的所述路由信息。优选的,该消息中介传输系统,其中,多个所述消费客户端支持分布式部署;和/或多个所述生产客户端支持分布式部署。上述技术方案的有益效果是:提供一种消息中介传输系统,能够解决消息队列拥挤的问题,有效降低文件资源、I/O资源和内存资源的损耗,并且能够低延迟地完成高并发和海量数据的运行场景,以及具有横向扩展的能力。附图说明图1是本专利技术的较佳的实施例中,一种消息中介传输系统的总体结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的是,在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。下面结合附图和具体实施例对本专利技术作进一步说明,但不作为本专利技术的限定。根据现有技术中存在的上述问题,现提供一种消息中介传输系统,如图1中所示,该消息中介传输系统A分别连接多个客户端,客户端之间通过该消息中介传输系统A实现消息的互通。具体地,该消息中介传输系统A中包括:存储单元A1,用于保存消息;于存储单元A1内包括多个存储文件,消息被分别保存于每个存储文件中;于存储单元A1内还包括一索引文件,索引文件中包括每个消息被保存在存储文件中的偏移量;客户端通过索引文件定位消息被保存的位置,进而获取保存在存储单元A1内的消息。本实施例中,上述消息中介传输系统作为客户端之间传输消息的消息中间件,当客户端内的应用程序之间需要互相传输消息中,客户端通过消息中介传输系统来进行消息互通。例如,本次消息互通涉及到两个客户端,其中一个客户端产生消息并将消息上传至消息中介传输系统A的存储单元A1中保存,另一个客户端从消息中介传输系统A的存储单元A1中主动提取相应的消息并进行消费。换言之,本申请中,消息中介传输系统A对于消息的传输是采用“推拉”的方式来进行的,即产生消息的客户端将消息“推”至消息中介传输系统A中保存,消费消息的客户端将消息从消息中介传输系统A中“拉”出来并进行消费,所有消息传输的过程均由客户端主导,这与传统消息中间件需要主动向客户端推送消息的特性完全不同,同时这种机制也能提供给客户端更多的灵活度。本实施例中,在消息中介传输系统A中,存储单元A1中设置了多个存储文件,每个存储文件均用于保存消息。换言之,消息在存储单元A1的保存方式是循环存储在不同的多个存储文件中。而对于客户端而言,消息中介传输系统提供给客户端的依然是一个消息队列,上述多个存储文件实际被设置在系统的底层。本实施例中,在上述存储单元A1中还设置有另外一个文件,该文件为一个索引文件,其中记录有每个消息被保存在存储文件中的偏移量(offset)。因此,客户端可以通过该索引文件定位需要获本文档来自技高网...

【技术保护点】
1.一种消息中介传输系统,其特征在于,所述消息中介传输系统与多个客户端远程连接,多个客户端之间通过所述消息中介传输系统传输消息;所述消息中介传输系统具体包括:存储单元,用于保存所述消息;于所述存储单元内包括多个存储文件,所述消息被分别保存于每个所述存储文件中;于所述存储单元内还包括一索引文件,所述索引文件中包括每个所述消息被保存在所述存储文件中的偏移量;所述客户端通过所述索引文件定位所述消息被保存的位置,进而获取保存在所述存储单元内的所述消息。

【技术特征摘要】
1.一种消息中介传输系统,其特征在于,所述消息中介传输系统与多个客户端远程连接,多个客户端之间通过所述消息中介传输系统传输消息;所述消息中介传输系统具体包括:存储单元,用于保存所述消息;于所述存储单元内包括多个存储文件,所述消息被分别保存于每个所述存储文件中;于所述存储单元内还包括一索引文件,所述索引文件中包括每个所述消息被保存在所述存储文件中的偏移量;所述客户端通过所述索引文件定位所述消息被保存的位置,进而获取保存在所述存储单元内的所述消息。2.如权利要求1所述的消息中介传输系统,其特征在于,多个所述客户端包括:多个生产客户端,每个所述生产客户端分别用于产生所述消息并向所述消息中介传输系统传输;多个消费客户端,每个所述消费客户端分别用于通过所述索引文件主动提取保存于所述存储单元中的所述消息并进行消费;所述消费客户端还用于管理所述消息的消费状态,并将所述消费状态提供给所述消息中介传输系统。3.如权利要求1所述的消息中介传输系统,其特征在于,所述消息中介传输系统中还包括:消息存储单元,连接所述存储单元,用于通过核心线程将所述消息保存至所述存储单元中;消息搬运单元,连接所述消息存储单元,用于通过用户线程获取所述消息并将获取到的所述消息搬运至所述消息存储单元中;当所述消息存储单元将被搬运的所述消息全部保存至所述存储单元后,所述消息存储单元向所述消息搬运单元发送一异步通知,以通知所述消息搬运单元继续向所述消息存储单元中搬运所述消息。4.如权利要求1所述的消息中介传输系统,其特征在于,所述存储文件为日志文件;所述日志文件的一行用于表示一条所述消息。5.如权利要求1所述的消息中介传输系统,其特征在于,所述存储单元中至少包括8个所述存储文件。6.如权利要求1所述的消息中介传输...

【专利技术属性】
技术研发人员:孙跃
申请(专利权)人:上海瀚银信息技术有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1