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技术的上述缺点,现有技术还可以采用消息队列异步处理技术进行通讯,在消息数据传递的过程中,客户端可以通过特定的算法将信息存储在服务器的本地磁盘中。但是,采用分布式队列机制时,在分布式环境下每个服务器只能处理本地的数据,使得消息数据不能集中管理,维护成本较高。并且,各消息队列存储在服务器的本地磁盘中会造成消息数据读写速度慢。
技术实现思路
本申请的目的在于提出一种改进的消息存储方法和装置,来解决以上
技术介绍
部分提到的技术问题。第一方面,本申请提供了一种消息存储方法,该方法包括:构建多个消息队列;接收客户端发送的多个消息,并将多个消息存储到各消息队列;基于负载均衡算法,对消息队列执行存储操作,将各消息队列存储到数据库集群中的内存数据库中。在一些实施例中,各消息携带该消息的类型标识,类型标识用于确定各消息的消息类型;将多个消息存储到各消息队列,包括:根据各消息的消息类型,将多个消息存储到各消息队列中与消息的消息类型对应的消息队列。在一些实施例 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。