本发明专利技术提供了一种基于消息中间的消息管理方法即装置,其中,所述方法包括:S0:在计算机磁盘中设置第一消息队列文件,该第一消息队列文件对应消息中间件的消息队列;将所述第一消息队列文件映射至计算机内存中,以生成计算机内存中的第二消息队列文件;S1:利用计算机内存中的所述第二消息队列文件,接收应用程序发送的消息以及向应用程序发送消息;S2:将利用计算机内存中的所述第二消息队列文件接收和发送的每一个消息,同步到计算机磁盘中的第一消息队列文件。通过本发明专利技术的技术方案,可确保消息的完整性,同时提高消息中间件收发消息的效率。
【技术实现步骤摘要】
本专利技术涉及数据存储
,特别涉及一种基于消息中间件的消息管理方法及 目.0
技术介绍
消息中间件是一种支持与保障分布式应用程序之间同步/异步收发消息的工具,消息中间件通过消息队列接收并存储对应消息发送端的应用程序发送的消息,存储在消息队列中的消息可以被对应接收端的应用程序读取,消息队列通常设置在计算机磁盘中,消息队列收发消息对应于应用程序对磁盘的读写操作。当消息队列设置在磁盘中时,无论是将磁盘中的任一文件或在磁盘中设置相应的数据库以作为消息队列,写入磁盘的数据即消息队列接收到的消息不易丢失,但是,应用程序读写磁盘的速度较慢,收发消息的效率很低。
技术实现思路
有鉴于此,本专利技术提供了一种基于消息中间件的消息存储方法及装置,能够提高消息中间件收发消息的效率。第一方面,本专利技术提供了一种基于消息中间加你的消息管理方法,包括:SO:在计算机磁盘中设置第一消息队列文件,该第一消息队列文件对应消息中间件的消息队列;将所述第一消息队列文件映射至计算机内存中,以生成计算机内存中的第二消息队列文件;S1:利用计算机内存中的所述第二消息队列文件,接收应用程序发送的消息以及向应用程序发送消息;S2:将利用计算机内存中的所述第二消息队列文件接收和发送的每一个消息,同步到计算机磁盘中的第一消息队列文件。进一步的,所述将所述第一消息队列文件映射至计算机内存中之前,还包括:设置内存池,将计算机内存池划分成若干个内存块;根据所述第一消息队列文件的大小预先从内存池中申请用于生成第二消息队列文件的目标内存块;建立目标内存块与第一消息队列文件的地址信息的映射关系。进一步的,将所述第一消息队列文件映射至计算机内存中,以生成计算机内存中的第二消息队列文件,包括:根据所述映射关系,将第一消息队列文件映射至目标内存块中以在所述目标内存块中生成第二消息队列文件。第二方面,本专利技术提供了一种基于消息中间件的消息管理装置,包括:磁盘、内存、处理器;其中,所述磁盘中包括第一消息队列文件,该第一消息队列文件对应消息中间件的消息队列;所述处理器,用于将所述第一消息队列文件映射至计算机内存中,以生成计算机内存中的第二消息队列文件;利用计算机内存中的所述第二消息队列文件,接收应用程序发送的消息以及向应用程序发送消息;将利用计算机内存中的所述第二消息队列文件接收和发送的每一个消息,同步到计算机磁盘中的第一消息队列文件。进一步的,所述内存包括若干个内存块;所述处理器,进一步用于根据所述第一消息队列文件的大小预先从内存池中申请用于生成第二消息队列文件的目标内存块;建立目标内存块与第一消息队列文件的地址信息的映射关系。进一步的,所述处理器,进一步用于当消息队列管理服务启动后,根据所述映射关系将第一消息队列文件映射至目标内存块以在所述目标内存块中生成第二消息队列文件。通过本专利技术的一种基于消息中间件的消息管理方法及装置,在计算机磁盘中设置第一消息队列文件,该第一消息队列文件对应消息中间件的消息队列,当消息队列管理服务启动后,将该第一消息队列文件映射至计算机内存中以生成第二消息队列文件,消息中间件即可通过该第二消息队列文件收发消息,即对应的应用程序可直接在内存中读写消息,进而提高消息中间件收发消息的效率。【附图说明】为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术一实施例提供的一种基于消息中间件的消息管理方法的流程图;图2是本专利技术一实施例提供的另一种基于消息中间件的消息管理方法的流程图;图3是本专利技术一实施例提供的一种基于消息中间件的消息管理装置。【具体实施方式】为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例,基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,本专利技术实施例提供了一种基于消息中间件的消息管理方法,该方法可以包括以下步骤:SO:在计算机磁盘中设置第一消息队列文件,该第一消息队列文件对应消息中间件的消息队列;将所述第一消息队列文件映射至计算机内存中,以生成计算机内存中的第二消息队列文件;S1:利用计算机内存中的所述第二消息队列文件,接收应用程序发送的消息以及向应用程序发送消息;S2:将利用计算机内存中的所述第二消息队列文件接收和发送的每一个消息,同步到计算机磁盘中的第一消息队列文件。通过本专利技术实施例提供的一种基于消息中间件的消息管理方法,在计算机磁盘中设置第一消息队列文件,该第一消息队列文件对应消息中间件的消息队列,当消息队列管理服务启动后,将该第一消息队列文件映射至计算机内存中以生成第二消息队列文件,消息中间件即可通过该第二消息队列文件收发消息,即对应的应用程序可直接在内存中读写消息,进而提高消息中间件收发消息的效率。进一步的,为了确保当消息队列管理服务启动后,可快速的将设置在磁盘中的第一消息队列映射至计算机内存中,提高工作效率,本专利技术一个优选实施里中,所述将所述第一消息队列文件映射至计算机内存中之前,还包括:设置内存池,将计算机内存池划分成若干个内存块;根据所述第一消息队列文件的大小预先从内存池中申请用于生成第二消息队列文件的目标内存块;建立目标内存块与第一消息队列文件的地址信息的映射关系。本专利技术实施例中,一方面,根据第一消息队列文件的大小预先申请用于生成第二消息队列的目标内存块,避免当消息队列管理服务启动后,还需要时间等待分配内存以生成第二消息队列文件,而且,由于将计算机磁盘中的第一消息队列文件映射至计算机内存中时,需要占用连续性的内存空间,当计算机内存中存在大量内存碎片时,可能导致无法将计算机磁盘中的第一消息队列映射至计算机内存中,通过预先申请目标内存块,可避免这种意外情况的发生导致消息中间件无法快速开始工作;另一方面,预先建立目标内存块与第一消息队列文件的地址信息的映射关系,当消息队列管理服务启动后,可根据所述映射关系,将第一消息队列文件映射至目标内存块中以在所述目标内存块中生成第二消息队列文件。具体地,可根据预先建立的目标内存块与第一消息队列文件的地址信息的映射关系将第一消息队列文件整体映射至内存中,不必通过调用1函数等将第一消息队列文件下的每一条数据分别提取至内存,快速完成第一消息队列与计算机内存进行映射的过程,进一步提高工作效率。为使本专利技术的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本专利技术作进一步地详细描述。如图2所示,本专利技术实施例提供了另一种基于消息中间件的消息管理方法,该方法可以包括以下步骤:步骤201,在计算机磁盘中设置第一消息队列文件,该第一消息队列文件对应消息中间件的消息队列。需要说明的是,由于在消息队列管理服务启动时,需要将该第一消息队列文件的全部内容都映射至计算机内存中,为了节省内存空间,第一消息队列文件中不应包括其他与消息中间件收发消息无关的数据。步骤202,将计算机本文档来自技高网...
【技术保护点】
一种基于消息中间件的消息管理方法,其特征在于,包括:在计算机磁盘中设置第一消息队列文件,该第一消息队列文件对应消息中间件的消息队列;将所述第一消息队列文件映射至计算机内存中,以生成计算机内存中的第二消息队列文件;还包括:利用计算机内存中的所述第二消息队列文件,接收应用程序发送的消息以及向应用程序发送消息;将利用计算机内存中的所述第二消息队列文件接收和发送的每一个消息,同步到计算机磁盘中的第一消息队列文件。
【技术特征摘要】
【专利技术属性】
技术研发人员:李朝铭,张晖,
申请(专利权)人:浪潮软件股份有限公司,
类型:发明
国别省市:山东;37
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。