The invention discloses an operation method of queue message, which is applied to storage medium. The storage medium contains head pointer, tail pointer, release pointer and queue storage space, and head pointer, tail pointer and release pointer point to queue storage space. The operation method of queue message includes the following steps: when receiving operation instructions of queue message, it is correct Define the type of operation instructions, which include inbound instructions, outbound instructions and release instructions; determine the target location of the needle to be moved and the needle to be moved in the queue storage space according to the operation instructions; the amount of data of each queue message in the queue storage space is different; control the needle to be moved to the target location, and perform operations on the queue message. Do the corresponding operation of the instructions. The invention also discloses an operation device for storing medium and queue message. The storage medium disclosed by the invention can simultaneously take into account the three characteristics of flexibility, low delay and high performance.
【技术实现步骤摘要】
队列消息的操作方法、装置和存储介质
本专利技术涉及通信
,尤其涉及一种队列消息的操作方法、装置和存储介质。
技术介绍
在计算机软件设计领域,消息队列作为一个经典的设计模式被广泛地应用于不同的程序结构之中。业界上主流的消息队列可分为“非嵌入式消息队列”与“嵌入式消息队列“,非嵌入式消息队列可独立作为单独的程序进行部署并且使用;而嵌入式的消息队列一般作为库函数嵌入至程序内部,与业务逻辑一同部署。对于“非嵌入式消息队列”,由于其作为一个独立的进程单独部署,且与大部分与业务逻辑程序通过TCP/IP、UnixSocket、IPC等进程间通信方式交互数据,因此,通信时延较之于嵌入式消息队列较大,不适用于金融证券行业等对时延要求敏感的领域。对于“嵌入式消息队列”而言,虽然其时延较低,但是由于复杂的业务需求,导致业界产品对该模式支持并不完善,例如Boost::LockFreeQueue等队列,其仅支持固定的消息长度,并且无法进行跨进程间的通信。而ZeroMQ设计复杂,虽然灵活性上有较大的提升,但是由于其灵活的设计,损失了较大的性能,并且对多线程的支持及其薄弱,无法有效的利用单机的计算能力。综上,现有消息队列产品很难兼顾灵活性、低时延与高性能。
技术实现思路
本专利技术的主要目的在于提供一种队列消息的操作方法、装置和存储介质,旨在解决消息队列产品很难兼顾灵活性、低时延与高性能的问题。为实现上述目的,本专利技术提供的一种队列消息的操作方法,所述队列消息的操作方法应用于存储介质,所述存储介质内设头指针、尾指针、释放指针以及队列存储空间,所述头指针、所述尾指针以及所述释放指针指 ...
【技术保护点】
1.一种队列消息的操作方法,其特征在于,所述队列消息的操作方法应用于存储介质,所述存储介质内设头指针、尾指针、释放指针以及队列存储空间,所述头指针、所述尾指针以及所述释放指针指向所述队列存储空间;所述队列消息的操作方法包括以下步骤:在接收到队列消息的操作指令时,确定所述操作指令的类型,其中,所述操作指令包括入队指令、出队指令以及释放指令;根据所述操作指令,确定待移动的指针以及所述待移动的指针在所述队列存储空间中的目标位置,其中,所述队列存储空间中的各个队列消息的数据量可不相同;控制所述待移动的指针移动至所述目标位置,并对所述队列消息执行所述操作指令对应的操作。
【技术特征摘要】
1.一种队列消息的操作方法,其特征在于,所述队列消息的操作方法应用于存储介质,所述存储介质内设头指针、尾指针、释放指针以及队列存储空间,所述头指针、所述尾指针以及所述释放指针指向所述队列存储空间;所述队列消息的操作方法包括以下步骤:在接收到队列消息的操作指令时,确定所述操作指令的类型,其中,所述操作指令包括入队指令、出队指令以及释放指令;根据所述操作指令,确定待移动的指针以及所述待移动的指针在所述队列存储空间中的目标位置,其中,所述队列存储空间中的各个队列消息的数据量可不相同;控制所述待移动的指针移动至所述目标位置,并对所述队列消息执行所述操作指令对应的操作。2.如权利要求1所述的队列消息的操作方法,其特征在于,所述确定待移动的指针以及所述待移动的指针在所述队列存储空间中的目标位置的步骤包括:在所述操作指令为入队指令时,确定所述队列消息的数据量,并将所述尾指针确定为待移动的指针;根据所述数据量确定所述队列消息在所述队列存储空间中待分配区域的存储区域,并将所述存储区域的尾部作为所述待移动的指针的目标位置。3.如权利要求2所述的队列消息的操作方法,其特征在于,所述确定所述队列消息的数据量的步骤之后,还包括:判断所述队列消息的数据量是否小于或等于所述待分配区域的存储量;在所述队列消息的数据量小于或等于所述待分配区域的存储量时,执行将所述尾指针确定为待移动的指针的步骤;在所述队列消息的数据量大于所述待分配区域的存储量时,将所述待分配区域的状态由待分配更改为不可分配以得到不可分配区域,并将所述尾指针移动至所述尾指针在所述队列存储空间中的起始位置。4.如权利要求1所述的队列消息的操作方法,其特征在于,所述确定待移动的指针以及所述待移动的指针在所述队列存储空间中的目标位置的步骤包括:在所述操作指令为出队指令时,将所述头指针确定为待移动的指针,并确定所述队列消息的尾部在所述队列存储空间中的位置;将所述位置确定为所述待移动的指针的目标位置。5.如权利要求1所述的队列消息的操作方法,其特征在于,所述确定待移动的指针以及所述待移动的指针在所述队列存储空间中的目标位置的步骤包括:在所述操作指令为释放指令时,将所述释放指针作为待移动的指针,并确定所...
【专利技术属性】
技术研发人员:邓硕灵,陈子文,陈滨,李玉龙,彭世雄,俞瑾,郭未,
申请(专利权)人:深圳证券交易所,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。