一种消息处理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:24937807 阅读:26 留言:0更新日期:2020-07-17 20:53
本申请涉及一种消息处理方法、装置、电子设备及存储介质,该方法包括:获取内存缓冲队列中第一待处理消息对应的日志偏移量;在所述第一待处理消息中的第一标识字节写入所述日志偏移量,得到第二待处理消息;通过至少两个线程从所述内存缓冲队列中按顺序读取所述第二待处理消息,将所述第二待处理消息拷贝至所述缓存中所述日志偏移量对应的位置;从所述缓存中按存储顺序获取所述第二待处理消息写入磁盘。该技术方案,消息之间不存在顺序依赖,可以实现将消息无锁乱序写入缓存,并且,由于消息的日志偏移量全局有序,消息写盘时保证有序,无需在日志写入过程中添加全局锁或单线程顺序处理。

【技术实现步骤摘要】
一种消息处理方法、装置、电子设备及存储介质
本申请涉及计算机
,尤其涉及一种消息处理方法、装置、电子设备及存储介质。
技术介绍
网络设备、系统及服务程序等,在运作时都会产生一个log的事件记录。每一行日志都记载着日期、时间、使用者及动作等相关操作的描述。日志一般存储在特定的数据库和文件系统中。目前,消息队列的日志写入时由于采用全局顺序日志,在日志写入过程中,需要保证消息处理顺序与磁盘写入顺序一致,因此,加入日志(commitLog)锁锁定内存,该日志锁相当于全局锁,导致内存的追加、序列化、获取日志偏移量只能单线程执行,同时导致CPU主频高低直接影响每秒事务数(TransactionsPerSecond,以下简称TPS),并且在CPU核数提升的情况下TPS无明显提升。
技术实现思路
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请实施例提供了一种消息处理方法、装置、电子设备及存储介质。第一方面,本申请实施例提供了一种消息处理方法,包括:获取内存缓冲队列中第一待处理消息对应的日志偏移量;<本文档来自技高网...

【技术保护点】
1.一种消息处理方法,其特征在于,包括:/n获取内存缓冲队列中第一待处理消息对应的日志偏移量;/n在所述第一待处理消息中的第一标识字节写入所述日志偏移量,得到第二待处理消息;/n通过至少两个线程从所述内存缓冲队列中按顺序读取所述第二待处理消息,将所述第二待处理消息拷贝至缓存中所述日志偏移量对应的位置;/n从所述缓存中按存储顺序获取所述第二待处理消息写入磁盘。/n

【技术特征摘要】
1.一种消息处理方法,其特征在于,包括:
获取内存缓冲队列中第一待处理消息对应的日志偏移量;
在所述第一待处理消息中的第一标识字节写入所述日志偏移量,得到第二待处理消息;
通过至少两个线程从所述内存缓冲队列中按顺序读取所述第二待处理消息,将所述第二待处理消息拷贝至缓存中所述日志偏移量对应的位置;
从所述缓存中按存储顺序获取所述第二待处理消息写入磁盘。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过至少两个线程获取所述第一待处理消息对应的索引偏移量;
根据所述索引偏移量创建所述第一待处理消息对应的索引。


3.根据权利要求1所述的方法,其特征在于,所述获取内存缓冲队列中第一待处理消息对应的日志偏移量,包括:
获取所述缓存的当前已分配位置信息,及所述缓存的缓存初始写入位置信息对应所述磁盘中的日志初始写入位置信息;
根据所述当前已分配位置信息及日志初始写入位置信息计算所述日志偏移量。


4.根据权利要求3所述的方法,其特征在于,所述将所述第二待处理消息拷贝至所述缓存中所述日志偏移量对应的位置,包括:
根据所述当前已分配位置信息确定所述第二待处理消息对应的缓存偏移量;将所述第二待处理消息拷贝至所述缓存中所述缓存偏移量对应的位置。


5.根据权利要求1所述的方法,其特征在于,所述从所述缓存中按存储顺序获取所述第二待处理消息写入到磁盘中,包括:
对所述缓存中的数据添加写盘屏障,所述写盘屏障位于所述缓存中未写入数据的空洞位置之前;
从上一次写盘结束位置到...

【专利技术属性】
技术研发人员:张超陈云
申请(专利权)人:京东数字科技控股有限公司
类型:发明
国别省市:北京;11

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

1