一种基于共享内存的消息存储方法和消息读取方法技术

技术编号:23212546 阅读:45 留言:0更新日期:2020-01-31 21:47
一种基于共享内存的消息存储方法和消息读取方法,提供了一种存储空间,一种消息存储方法和一种消息读取方法。一种消息存储方法,用于将待存储消息存储在存储空间内,存储空间包括所述消息控制区和消息存储区,消息存储区用于存储数据,消息存储区包括多个存储子队列,消息控制区用于存储记录存储子队列的读写信息的数组。一种消息读取方法,用于读取按照消息存储方法存储于存储空间的消息,所述消息存储和读取通过内存拷贝方式实现消息的高速交互,解决了现有通信交互技术中消息传递效率低、高并发低延时要求下无法满足“实时”性、配置不灵活、学习和维护成本高等问题。

A message storage method and message reading method based on shared memory

【技术实现步骤摘要】
一种基于共享内存的消息存储方法和消息读取方法
本专利技术涉及电信行业支撑领域,具体涉及一种基于共享内存的消息存储方法和消息读取方法。
技术介绍
电信通信是现在通信的主要形式,随着国内电信行业间的竞争日益激烈,电信运营商们越来越关注业务支撑系统的运营情况,电信计费系统作为电信业务支撑系统的核心,其准确性直接关系到客户服务质量和电信运营商的收入。目前,电信行业计费系统中的多进程间交互方式主要为通过文件、数据库以及消息中间件进行交互。文件交互方式是通过前一进程把数据写入文件服务器,存储在物理磁盘,后一进程从文件服务器读取文件,从物理磁盘取数据,这一交互过程涉及到读写端的文件打开及关闭,最终操作物理磁盘的读写。数据库交互方式是通过前一进程把数据写入数据库服务器,后一进程从数据库服务器读取数据,不同进程通过连接同一个数据库服务器的同一张表进行数据交换。消息中间件交互方式通过前后进程的数据通过kafka、RabbitMQ等消息队列的中间件进行交互,写进程作为生成者生成数据,读进程作为消费者处理数据,不同进程之间通过消息服务器进行数据交换。消息生成者发送消息本文档来自技高网...

【技术保护点】
1.一种存储空间,其特征在于,包括消息控制区和消息存储区,所述消息存储区用于存储数据,所述消息存储区包括多个存储子队列;消息控制区用于存储记录所述存储子队列的读写信息的数组。/n

【技术特征摘要】
1.一种存储空间,其特征在于,包括消息控制区和消息存储区,所述消息存储区用于存储数据,所述消息存储区包括多个存储子队列;消息控制区用于存储记录所述存储子队列的读写信息的数组。


2.根据权利要求1所述的存储空间,其特征在于,所述多个存储子队列之间按照二维数组方式分布。


3.根据权利要求1所述的存储空间,其特征在于,所述每个存储子队列内部按照先进先出原则存储消息。


4.一种消息存储方法,用于将待存储消息存储在存储空间内,所述存储空间包括所述消息控制区和消息存储区,所述消息存储区用于存储数据,所述消息存储区包括多个存储子队列;消息控制区用于存储记录所述存储子队列的读写信息的数组,其特征在于,包括:
获取待存储消息的长度;
根据所述消息控制区的所述数组获取所述待存储消息对应的所述存储子队列的起始地址和所述存储子队列的消息存储位置编号;
根据所述消息存储位置编号和所述待存储消息的长度确定所述存储子队列的起始地址偏移量;
根据所述存储子队列的起始地址和所述存储子队列的起始地址偏移量计算所述消息的存储地址;
根据所述存储地址存储所述待存储信息。


5.根据权利要求4所述的消息存储方法,其特征在于,所述根据所述消息控制区的所述数组获取所述待存储消息对应的所述存储子队列的起始地址,包括:
获取待存储消息的所述存储子队列之前所有的所述存储子队列的长度;
根据所述长度得到所述待存储消息的所述存储子队列的起始地址。


6.根据权利要求4或5所述的消息存储方法,其特征在于,获取所述存储子队列的消息存储位置编号,包括:
获取待存储消息的所述存储子队列的消息数;
获取所述存储子队列的容量;
根据所述待存储消息的所述存储子队列的消息数和所述存储子队列的容量,得到所述存储子队列的消息存储位置编号。


7.根据权利要求4-6任一项所述的消息存储方法,其特征在于,所述根据所述消息存储位置编号计算所述存储子队列的起始地址偏移量,包括:
获取单条消息长度;
根据所述消息存储位置编号所述单条消息长度确定所述存储子队列的起始地址偏移量。


8.一种消息读取方法,用于读取按照权利要求4-7任一项所述的消息存储方法存储的消息,其特征在于,包括:

【专利技术属性】
技术研发人员:葛振南
申请(专利权)人:亚信创新技术南京有限公司
类型:发明
国别省市:江苏;32

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

1