[发明专利]消息排队方法、系统、设备及存储介质有效
申请号: | 202010842359.9 | 申请日: | 2020-08-20 |
公开(公告)号: | CN111988241B | 公开(公告)日: | 2022-09-30 |
发明(设计)人: | 樊荣;何俞勇 | 申请(专利权)人: | 恒生电子股份有限公司 |
主分类号: | H04L49/90 | 分类号: | H04L49/90;H04L47/629 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 付丽 |
地址: | 310053 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 消息 排队 方法 系统 设备 存储 介质 | ||
本申请公开了一种消息排队方法、系统、设备及存储介质,客户端和服务端之间实现多对一的RDMA数据报通信,服务端利用RDMA协议的消息完成队列检测是否有排队消息接收结果,若有,获取排队消息中的源标识及源关键值;服务端判断源关键值是否存在于本地的已注册客户端信息列表中,该已注册客户端信息列表中存储有分配给已经注册过的客户端的关键值和对应源标识信息;若是,则判断源标识是否与本地存储的与源关键值对应的源标识一致,若一致,则确认排队消息有效,否则,确认排队消息无效。本申请利用RDMA协议的队列来确定排队消息到达的先后,且在RDMA通信过程中,数据的接收过程即排队过程,利用RDMA协议固有的接收队列来保存消息,实现消息的排队。
技术领域
本申请涉及消息处理技术领域,更具体的说,是涉及一种消息排队方法、系统、设备及存储介质。
背景技术
消息排队是指,网络上多个用户客户端向同一服务端发起消息请求,服务端需要按照消息的到达顺序依次处理,若短时间内服务端接收到的消息请求超过了处理能力,就需要将消息按照到达顺序缓存起来,也即消息排队。
现有技术中,消息接收过程和消息排队过程相互独立。常规的做法是消息接收模块负责排队消息的接收,排队模块通过中间适配器订阅排队消息,这些排队消息转换为内部消息回调给排队模块,排队模块通过加锁控制,依次将这些数据包排队并保存到共享内存。
这种消息排队的方法由于消息排队过程独立于消息接收过程,需要额外的消息转换和回调过程,降低了消息排队处理效率。
发明内容
鉴于上述问题,提出了本申请以便提供一种消息排队方法、系统、设备及存储介质,用于解决现有技术存在的消息排队处理效率低下的问题。具体方案如下:
一种消息排队方法,应用于服务端,所述服务端与客户端间通过RDMA技术通信,该方法包括:
在检测到本地的消息完成队列中有排队消息接收结果时,获取排队消息中的源标识及源关键值,所述源标识为所述排队消息的发送客户端的队列对QPN信息;
判断所述源关键值是否存在于本地的已注册客户端信息列表中,所述已注册客户端信息列表中存储有分配给已经注册过的客户端的关键值和对应源标识信息;
若是,则判断所述源标识是否与本地存储的与所述源关键值对应的源标识一致;若判断一致,则确认所述排队消息有效,否则,确认所述排队消息无效。
优选地,在确认所述排队消息有效时,该方法还包括:
按照所述排队消息的接收顺序,为所述排队消息添加序号。
优选地,在确认所述排队消息有效时,该方法还包括:
将所述排队消息所在内存地址记录到排队消息地址列表中。
优选地,所述按照所述排队消息的接收顺序,为所述排队消息添加序号,包括:
按照所述排队消息之前所接收的有效排队消息的个数,确定所述排队消息的序号;
将确定的序号添加到,所述排队消息的消息内容部分预留的序号字段中;
或,
将确定的序号添加到,所述排队消息的消息内容部分之前的预留空间中。
优选地,所述将所述排队消息所在内存地址记录到排队消息地址列表中,包括:
若排队消息的序号存在于排队消息的消息内容部分的序号字段中,则将所述排队消息中消息内容部分所在内存地址记录到排队消息地址列表中;
若排队消息的序号存在于排队消息的消息内容部分之前的预留空间中,则将所述排队消息中所述预留空间及所述消息内容部分所在内存地址记录到排队消息地址列表中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于恒生电子股份有限公司,未经恒生电子股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010842359.9/2.html,转载请声明来源钻瓜专利网。