消息存储方法和装置制造方法及图纸

技术编号:20181817 阅读:25 留言:0更新日期:2019-01-23 02:05
本申请公开了消息存储方法和装置。该方法的一具体实施方式包括:构建多个消息队列;接收客户端发送的多个消息,并将多个消息存储到各消息队列;基于负载均衡算法,对消息队列执行存储操作,将各消息队列存储到数据库集群中的内存数据库中。上述消息存储方法通过将消息存储在数据库集群中的内存数据库中,使得各消息可以通过数据库集群被集中管理,且可以提高消息数据的读写速度。

Message Storage Method and Device

This application discloses a message storage method and device. One specific implementation of the method includes: building multiple message queues; receiving multiple messages sent by clients and storing multiple messages into each message queue; and implementing storage operations on message queues based on load balancing algorithm, storing each message queue into the memory database in the database cluster. By storing messages in the main memory database of the database cluster, the message storage method can be centralized managed through the database cluster, and the reading and writing speed of message data can be improved.

【技术实现步骤摘要】
消息存储方法和装置
本申请涉及计算机
,具体涉及数据存储领域,尤其涉及消息存储方法和装置。
技术介绍
在互联网和电子商务领域,每天都会产生大量的消息,这就需要对产生的各式各样的消息进行数据存储和管理。在现有技术中,客户端和服务器之间通常使用RPC(RemoteProcedureCall,远程过程调用)同步处理技术进行通讯,RPC通常需要将客户端和服务器紧密耦合,在消息数据传递的过程中,客户端需要等待服务器对前一个消息响应才能继续发送下一个消息,导致客户端容易被阻塞,并且RPC紧密耦合的特性使得系统的扩展性较差。为了克服RPC技术的上述缺点,现有技术还可以采用消息队列异步处理技术进行通讯,在消息数据传递的过程中,客户端可以通过特定的算法将信息存储在服务器的本地磁盘中。但是,采用分布式队列机制时,在分布式环境下每个服务器只能处理本地的数据,使得消息数据不能集中管理,维护成本较高。并且,各消息队列存储在服务器的本地磁盘中会造成消息数据读写速度慢。
技术实现思路
本申请的目的在于提出一种改进的消息存储方法和装置,来解决以上
技术介绍
部分提到的技术问题。第一方面,本申请提供了一种消息存储方法,该方法包括:构建多个消息队列;接收客户端发送的多个消息,并将多个消息存储到各消息队列;基于负载均衡算法,对消息队列执行存储操作,将各消息队列存储到数据库集群中的内存数据库中。在一些实施例中,各消息携带该消息的类型标识,类型标识用于确定各消息的消息类型;将多个消息存储到各消息队列,包括:根据各消息的消息类型,将多个消息存储到各消息队列中与消息的消息类型对应的消息队列。在一些实施例中,基于负载均衡算法,对消息队列执行存储操作,将各消息队列存储到数据库集群中的内存数据库中,包括:根据第一消息队列中存储的消息的消息类型,确定与第一消息队列对应的至少一个内存数据库,其中,第一消息队列为任一消息队列;基于负载均衡算法,在至少一个内存数据库中确定用于存储第一消息队列的内存数据库;将第一消息队列存储到所确定的内存数据库。在一些实施例中,上述方法还包括:在将第一消息队列存储到所确定的内存数据库之前,判断该所确定的内存数据库的负载量是否大于第一预设阈值;若是,则将第一消息队列分裂为至少两个子消息队列,并将各子消息队列存储到对应的内存数据库;若否,则将第一消息队列存储到所确定的内存数据库。在一些实施例中,上述方法还包括:在将第一消息队列存储到所确定的内存数据库之前,判断第一消息队列中存储的消息的数量是否大于第二预设阈值;若是,则将第一消息队列分裂为至少两个子消息队列,并将各子消息队列存储到对应的内存数据库;若否,则将第一消息队列存储到所确定的内存数据库。在一些实施例中,将各子消息队列存储到对应的内存数据库,包括:根据子消息队列存储的消息的消息类型,确定与子消息队列对应的至少一个内存数据库;基于负载均衡算法,在至少一个内存数据库中确定用于存储子消息队列的内存数据库;将子消息队列存储到所确定的内存数据库。在一些实施例中,当存在储失败的消息队列时,将存储失败的消息队列重新作为消息队列n次执行存储操作,将消息队列存储到内存数据库,其中,n为正整数且n≤m,m为预设正整数。在一些实施例中,当存在第二消息队列时,将该第二消息队列存储到本地磁盘,其中,第二消息队列为m次执行存储操作存储失败的消息队列;获取本地磁盘在预设时间段内存储的第二消息队列,并将所获取的第二消息队列作为消息队列执行存储操作。第二方面,本申请提供了一种消息存储装置,该装置包括:构建模块,配置用于构建多个消息队列;第一存储模块,配置用于接收客户端发送的多个消息,并将多个消息存储到各消息队列;第二存储模块,配置用于基于负载均衡算法,对消息队列执行存储操作,将各消息队列存储到数据库集群中的内存数据库中。在一些实施例中,各消息携带该消息的类型标识,类型标识用于确定各消息的消息类型;第一存储模块配置具体用于:根据各消息的消息类型,将多个消息存储到各消息队列中与消息的消息类型对应的消息队列。在一些实施例中,第二存储模块配置具体用于:根据第一消息队列中存储的消息的消息类型,确定与第一消息队列对应的至少一个内存数据库,其中,第一消息队列为任一消息队列;基于负载均衡算法,在至少一个内存数据库中确定用于存储第一消息队列的内存数据库;将第一消息队列存储到所确定的内存数据库。在一些实施例中,上述装置还包括:第一判断模块,配置用于在将第一消息队列存储到所确定的内存数据库之前,判断该所确定的内存数据库的负载量是否大于第一预设阈值;若是,则将第一消息队列分裂为至少两个子消息队列,并将各子消息队列存储到对应的内存数据库;若否,则将第一消息队列存储到所确定的内存数据库。在一些实施例中,第二判断模块,配置用于在将第一消息队列存储到所确定的内存数据库之前,判断第一消息队列中存储的消息的数量是否大于第二预设阈值;若是,则将第一消息队列分裂为至少两个子消息队列,并将各子消息队列存储到对应的内存数据库;若否,则将第一消息队列存储到所确定的内存数据库。在一些实施例中,第一判断模块或第二判断模块配置还用于根据子消息队列存储的消息的消息类型,确定与子消息队列对应的至少一个内存数据库;基于负载均衡算法,在至少一个内存数据库中确定用于存储子消息队列的内存数据库;将子消息队列存储到所确定的内存数据库。在一些实施例中,第三存储模块,配置用于当存在储失败的消息队列时,将存储失败的消息队列重新作为消息队列n次执行存储操作,将消息队列存储到内存数据库,其中,n为正整数且n≤m,m为预设正整数。在一些实施例中,第四存储模块,配置用于当存在第二消息队列时,将该第二消息队列存储到本地磁盘,其中,第二消息队列为m次执行存储操作存储失败的消息队列;获取本地磁盘在预设时间段内存储的第二消息队列,并将所获取的第二消息队列作为消息队列执行存储操作。本申请提供的消息存储方法和装置,首先将接收到的客户端发送的多个消息存储到预先构建的多个消息队列中,而后基于负载均衡算法对各消息队列执行存储操作,将各消息队列存储到数据库集群中的内存数据库中,可以实现通过数据库集群对消息数据进行集中管理,并且将各消息存储到内存数据库,可以提高消息数据的读写效率。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1示出了本申请可以应用于其中的示例性系统架构;图2示出了根据本申请的消息存储方法的一个实施例的流程;图3示出了根据本申请的消息存储方法的又一个实施例的流程;图4示出了根据本申请的消息存储装置的一个实施例的结构示意图;图5示出了适于用来实现本申请实施例的客户端或服务器的计算机系统的结构示意图。具体实施方式下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关专利技术相关的部分。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。图1示出了可以应用本申请的消息存储方法或消息存储装置的实施例的示例性系统架构100。如图1所示,系统本文档来自技高网...

【技术保护点】
1.一种消息存储方法,其特征在于,包括:构建多个消息队列;接收客户端发送的多个消息,并将所述多个消息存储到各所述消息队列;基于负载均衡算法,对所述消息队列执行存储操作,将各所述消息队列存储到数据库集群中的内存数据库中。

【技术特征摘要】
1.一种消息存储方法,其特征在于,包括:构建多个消息队列;接收客户端发送的多个消息,并将所述多个消息存储到各所述消息队列;基于负载均衡算法,对所述消息队列执行存储操作,将各所述消息队列存储到数据库集群中的内存数据库中。2.根据权利要求1所述的方法,其特征在于,各所述消息携带该消息的类型标识,所述类型标识用于确定各所述消息的消息类型;所述将所述多个消息存储到各所述消息队列,包括:根据各所述消息的消息类型,将所述多个消息存储到各所述消息队列中与所述消息的消息类型对应的消息队列。3.根据权利要求2述的方法,其特征在于,所述基于负载均衡算法,对所述消息队列执行存储操作,将各所述消息队列存储到数据库集群中的内存数据库中,包括:根据第一消息队列中存储的所述消息的消息类型,确定与所述第一消息队列对应的至少一个内存数据库,其中,所述第一消息队列为任一所述消息队列;基于所述负载均衡算法,在所述至少一个内存数据库中确定用于存储所述第一消息队列的所述内存数据库;将所述第一消息队列存储到所确定的内存数据库。4.根据权利要求3所述的方法,其特征在于,还包括:在将所述第一消息队列存储到所确定的内存数据库之前,判断该所确定的内存数据库的负载量是否大于第一预设阈值;若是,则将所述第一消息队列分裂为至少两个子消息队列,并将各所述子消息队列存储到对应的内存数据库;若否,则将所述第一消息队列存储到所确定的内存数据库。5.根据权利要求3所述的方法,其特征在于,还包括:在将所述第一消息队列存储到所确定的内存数据库之前,判断所述第一消息队列中存储的所述消息的数量是否大于第二预设阈值;若是,则将所述第一消息队列分裂为至少两个子消息队列,并将各所述子消息队列存储到对应的内存数据库;若否,则将所述第一消息队列存储到所确定的内存数据库。6.根据权利要求4或5所述的方法,其特征在于,所述将各所述子消息队列存储到对应的内存数据库,包括:根据所述子消息队列存储的所述消息的消息类型,确定与所述子消息队列对应的至少一个所述内存数据库;基于所述负载均衡算法,在所述至少一个所述内存数据库中确定用于存储所述子消息队列的所述内存数据库;将所述子消息队列存储到所确定的内存数据库。7.根据权利要求1所述的方法,其特征在于,还包括:当存在储失败的消息队列时,将所述存储失败的消息队列重新作为所述消息队列n次执行所述存储操作,将所述消息队列存储到所述内存数据库,其中,n为正整数且n≤m,m为预设正整数。8.根据权利要求7所述的方法,其特征在于,还包括:当存在第二消息队列时,将该所述第二消息队列存储到本地磁盘,其中,所述第二消息队列为m次执行所述存储操作存储失败的所述消息队列;获取所述本地磁盘在预设时间段内存储的所述第二消息队列,并将所获取的第二消息队列作为所述消息队列执行所述存储操作。9.一种消息存储装置,其特征在于,包括:构建模块,配置用于构建多个消息队列;第一存储模块,配置用于接收客户端发送的多个消息,并将所述多个消息存储到各所述消息队列;第二存储模块,配置用于基于负...

【专利技术属性】
技术研发人员:杨怀
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

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

1