[发明专利]消息持久化方法及装置有效
申请号: | 201510671214.6 | 申请日: | 2015-10-15 |
公开(公告)号: | CN106598473B | 公开(公告)日: | 2020-09-04 |
发明(设计)人: | 马立军 | 申请(专利权)人: | 南京中兴新软件有限责任公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 深圳市力道知识产权代理事务所(普通合伙) 44507 | 代理人: | 何姣 |
地址: | 210012 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 消息 持久 方法 装置 | ||
本发明公开了一种消息持久化方法,所述消息持久化方法包括:在主机初始化消息服务器时,将消息服务器的持久化路径指向所述主机的内存,以供所述消息服务器将接收到的消息存储至所述内存中;在侦测到所述主机的关机信号时,将所述内存中存储的持久化消息存储至所述主机的硬盘中。本发明还公开了一种消息持久化装置。本发明能够提高减小消息持久化对硬盘的损害。
技术领域
本发明涉及网络通信技术领域,尤其涉及一种消息持久化方法及装置。
背景技术
目前,消息中间件采用服务器/客户端模式,包含消息的生产者、消费者,由消息中间件完成生产者与消费者之间的连接,完成这部分功能的实体一般称为消息服务器,其中,消息服务器主要包括交换器和消息队列。
在实际使用场景中,由于底层网络传输层可能存在丢包、消息队列拥塞、消息服务器重启或者物理主机重启等因素,消息在生产者和消费者之间可能丢失。尤其是消息服务器或物理主机重启将导致消息队列中的消息全部丢失,这在一些对消息可靠性较为严格的应用场景比如金融领域的应用,是致命的。为了解决此问题,现有技术提出了消息持久化的方法,通常的,在创建交换器、消息队列以及消息时指定持久化参数,由交换器将接收的消息写入硬盘中,再由消息队列从硬盘中提取待发送的消息进行发送操作,这样,当消息服务器或者物理主机重启后,保存在硬盘中的消息不会丢失,从而保证消息传输的可靠性以及连续性。但是,消息持久化将会在消息传输过程中频繁读写硬盘,尤其是当通信消息量较大时,对硬盘造成较大的损害。
发明内容
本发明的主要目的在于提供一种消息持久化方法及装置,旨在减小消息持久化对硬盘的损害。
为实现上述目的,本发明提供一种消息持久化方法,所述消息持久化方法包括:
在主机初始化消息服务器时,将消息服务器的持久化路径指向所述主机的内存,以供所述消息服务器将接收到的消息存储至所述内存中;
在侦测到所述主机的关机信号时,将所述内存中存储的持久化消息存储至所述主机的硬盘中。
优选地,所述将消息服务器的持久化路径指向所述主机的内存的步骤之后,还包括:
判断所述硬盘是否存储有持久化消息;
在所述硬盘存储有持久化消息时,将所述硬盘存储的持久化消息加载至所述内存中。
优选地,所述将所述硬盘存储的持久化消息加载至所述内存中的步骤之后,还包括:
删除所述硬盘存储的所述持久化消息。
优选地,所述在主机初始化消息服务器时,将消息服务器的持久化路径指向所述主机的内存的步骤包括:
在主机初始化消息服务器时,判断所述内存是否划分有内存虚拟磁盘RAMDISK区;
若是,则将所述消息服务器的持久化路径指向所述RAMDISK区;
若否,则在所述内存划分RAMDISK区,再将所述消息服务器的持久化路径指向所述RAMDISK区。
优选地,当所述主机包括多个硬盘时,所述在侦测到所述主机的关机信号时,将所述内存当前的持久化消息存储至所述主机的硬盘中的步骤包括:
在侦测到所述主机的关机信号时,将所述内存中存储的持久化消息存储至多个所述硬盘中读写速度最快的硬盘中。
此外,为实现上述目的,本发明还提供了一种消息持久化装置,所述消息持久化装置包括:
设置模块,用于在主机初始化消息服务器时,将消息服务器的持久化路径指向所述主机的内存,以供所述消息服务器将接收到的消息存储至所述内存中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京中兴新软件有限责任公司,未经南京中兴新软件有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510671214.6/2.html,转载请声明来源钻瓜专利网。