CN113301088A - 消息处理方法、装置、系统、电子设备及可读存储介质 - Google Patents

消息处理方法、装置、系统、电子设备及可读存储介质 Download PDF

Info

Publication number
CN113301088A
CN113301088A CN202010730056.8A CN202010730056A CN113301088A CN 113301088 A CN113301088 A CN 113301088A CN 202010730056 A CN202010730056 A CN 202010730056A CN 113301088 A CN113301088 A CN 113301088A
Authority
CN
China
Prior art keywords
message
database
subscription
communication protocol
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010730056.8A
Other languages
English (en)
Other versions
CN113301088B (zh
Inventor
伊翼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN202010730056.8A priority Critical patent/CN113301088B/zh
Publication of CN113301088A publication Critical patent/CN113301088A/zh
Application granted granted Critical
Publication of CN113301088B publication Critical patent/CN113301088B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开实施例公开了一种消息处理方法、装置、系统、电子设备及可读存储介质,基于数据库的消息处理方法包括:从数据库代理接收第一命令;从所述第一命令解析出与订阅操作相关的属性;根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息;基于预设通信协议接收所述第一消息分发服务发送的所述第一消息并存储所述第一消息,从而在基于预设通信协议的条件下扩展数据库的功能,提高数据库的使用灵活性和兼容性,并且在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。

Description

消息处理方法、装置、系统、电子设备及可读存储介质
技术领域
本公开涉及计算机技术领域,具体涉及消息处理方法、装置、系统、电子设备及可读存储介质。
背景技术
在基于发布/订阅范式的通信协议的使用场景中,大量基于发布/订阅范式的消息需要在数据库,尤其是分布式数据库中进行存储。而将数据库功能难以扩展为支持基于发布/订阅范式的通信协议的消息分发功能。相关技术中的使数据库支持基于发布/订阅范式的通信协议的消息分发功能的方案的设计思路还是遵循传统数据库产品的请求/响应范式,导致系统结构复杂,并且与基于发布/订阅范式的通信协议之间的兼容性不佳。
发明内容
为了解决相关技术中的问题,本公开实施例提供消息处理方法、装置、系统、电子设备及可读存储介质。
第一方面,本公开实施例中提供了一种基于数据库的消息处理方法,包括:
从数据库代理接收第一命令;
从所述第一命令解析出与订阅操作相关的属性;
根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息;
基于预设通信协议接收所述第一消息分发服务发送的所述第一消息并存储所述第一消息。
结合第一方面,本公开在第一方面的第一种实现方式中,所述数据库是基于请求/响应范式的数据库,并且所述预设通信协议是基于发布/订阅范式的通信协议。
结合第一方面,本公开在第一方面的第二种实现方式中,从所述第一消息分发服务接收的所述第一消息是所述第一消息分发服务从前端设备接收的第二消息中符合订阅要求的消息。
结合第一方面、第一方面的第一种实现方式或第一方面的第二种实现方式,本公开在第一方面的第三种实现方式中,还包括:
创建系统表;
在所述系统表中存储所述解析出的与订阅操作相关的属性的元数据。
结合第一方面的第三种实现方式,本公开在第一方面的第四种实现方式中,还包括:
基于所述解析出的与订阅操作相关的属性中的至少一部分,创建数据表;
在所述数据表中存储所述第一消息。
结合第一方面的第四种实现方式,本公开在第一方面的第五种实现方式中,所述基于所述解析出的与订阅操作相关的属性中的至少一部分,创建数据表,包括:
基于需要订阅的消息主题和消息报文的定义,创建数据表。
结合第一方面的第三种实现方式,本公开在第一方面的第六种实现方式中,所述解析出的与订阅操作相关的属性包括以下至少之一:第一消息分发服务的域名和/或地址和/或端口;需要订阅的消息主题;消息订阅的服务质量;第一消息分发服务所需的认证信息;消息报文的处理方式或数据结构。
结合第一方面、第一方面的第一种实现方式或第一方面的第二种实现方式,本公开在第一方面的第七种实现方式中,还包括:
生成第一消息服务连接池,
其中,通过第一消息服务连接池保持与所述第一消息分发服务的多个连接;和/或
通过所述第一消息服务连接池保持与包括所述第一消息分发服务的多个消息分发服务的连接。
结合第一方面、第一方面的第一种实现方式或第一方面的第二种实现方式,本公开在第一方面的第八种实现方式中,在所述根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息之后,还包括:
向第二数据库节点发送建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知。
结合第一方面的第八种实现方式,本公开在第一方面的第九种实现方式中,执行所述方法的当前节点和所述第二数据库节点属于同一数据库集群。
第二方面,本公开实施例中提供了一种基于数据库的消息处理方法,包括:
数据库代理接收第一命令并将所述第一命令传送到数据库中的第一数据库节点;
所述第一数据库节点从所述第一命令解析出与订阅操作相关的属性;
所述第一数据库节点根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息;
所述第一数据库节点基于预设通信协议接收所述第一消息分发服务发送的所述第一消息并存储所述第一消息。
结合第二方面,本公开在第二方面的第一种实现方式中,所述数据库是基于请求/响应范式的数据库,并且所述预设通信协议是基于发布/订阅范式的通信协议。
结合第二方面,本公开在第二方面的第二种实现方式中,在所述第一数据库节点基于预设通信协议接收所述第一消息分发服务发送的所述第一消息并存储所述第一消息之前,还包括:
所述第一消息分发服务接收前端设备发送的第二消息并将所述第二消息中的所述第一消息发送到所述第一数据库节点。
结合第二方面、第二方面的第一种实现方式或第二方面的第二种实现方式,本公开在第二方面的第三种实现方式中,还包括:
所述第一数据库节点创建系统表;
所述第一数据库节点在所述系统表中存储所述解析出的与订阅操作相关的属性的元数据。
结合第二方面的第三种实现方式,本公开在第二方面的第四种实现方式中,还包括:
基于所述解析出的与订阅操作相关的属性中的至少一部分,所述第一数据库节点创建数据表;
所述第一数据库节点在所述数据表中存储所述第一消息。
结合第二方面的第四种实现方式,本公开在第二方面的第五种实现方式中,所述基于所述解析出的与订阅操作相关的属性中的至少一部分,所述第一数据库节点创建数据表,包括:
基于需要订阅的消息主题和消息报文的定义,所述第一数据库节点创建数据表。
结合第二方面的第三种实现方式,本公开在第二方面的第六种实现方式中,所述解析出的与订阅操作相关的属性包括以下至少之一:第一消息分发服务的域名和/或地址和/或端口;需要订阅的消息主题;消息订阅的服务质量;第一消息分发服务所需的认证信息;消息报文的处理方式或数据结构。
结合第二方面、第二方面的第一种实现方式或第二方面的第二种实现方式,本公开在第二方面的第七种实现方式中,还包括:
所述第一数据库节点生成第一消息服务连接池,
其中,所述第一消息服务连接池保持与所述第一消息分发服务的多个连接;和/或
所述第一消息服务连接池保持与包括所述第一消息分发服务在内的多个消息分发服务的连接。
结合第二方面、第二方面的第一种实现方式或第二方面的第二种实现方式,本公开在第二方面的第八种实现方式中,还包括:
所述第一数据库节点向第二数据库节点发送建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知;
所述第二数据库节点响应于所述建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知向所述第一消息分发服务订阅所述第一消息;
所述第二数据库节点基于预设通信协议接收所述第一消息分发服务发送的所述第一消息并存储所述第一消息。
结合第二方面的第八种实现方式,本公开在第二方面的第九种实现方式中,所述第一数据库节点和所述第二数据库节点属于同一数据库集群,其中,所述数据库代理接收第一命令并将所述第一命令传送到第一数据库节点,包括:
所述数据库代理接收第一命令并将所述第一命令传送到所述同一数据库集群中的任一数据库节点。
第三方面,本公开实施例中提供了一种基于数据库的消息处理装置,包括:
第一命令接收模块,被配置为从数据库代理接收第一命令;
第一命令解析模块,被配置为从所述第一命令解析出与订阅操作相关的属性;
第一消息订阅模块,被配置为根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息;
第一消息接收存储模块,被配置为基于预设通信协议接收所述第一消息分发服务发送的所述第一消息并存储所述第一消息。
第四方面,本公开实施例中提供了一种基于数据库的消息处理系统,包括数据库代理装置、数据库中的第一数据库节点和第一消息分发装置,其中,
所述数据库代理装置被配置为接收第一命令并将所述第一命令传送到数据库中的第一数据库节点;
其中,所述第一数据库节点被配置为:
从数据库代理接收第一命令;
从所述第一命令解析出与订阅操作相关的属性;
根据解析出的与订阅操作相关的属性,基于预设通信协议向所述第一消息分发装置订阅第一消息;
基于预设通信协议接收所述第一消息分发装置发送的所述第一消息并存储所述第一消息。
结合第四方面,本公开在第四方面的第一种实现方式中,所述数据库是基于请求/响应范式的数据库,并且所述预设通信协议是基于发布/订阅范式的通信协议。
结合第四方面,本公开在第四方面的第二种实现方式中,所述第一消息分发装置被配置为接收前端设备发送的第二消息,并响应于所述第一数据库节点订阅第一消息,将所述第二消息中的所述第一消息发送到所述第一数据库节点。
结合第四方面、第四方面的第一种实现方式或第四方面的第二种实现方式,本公开在第四方面的第三种实现方式中,所述第一数据库节点还被配置为:
创建系统表;
在所述系统表中存储所述解析出的与订阅操作相关的属性的元数据。
结合第四方面的第三种实现方式,本公开在第四方面的第四种实现方式中,所述第一数据库节点还被配置为:
基于所述解析出的与订阅操作相关的属性中的至少一部分,创建数据表;
在所述数据表中存储所述第一消息。
结合第四方面的第四种实现方式,本公开在第四方面的第五种实现方式中,所述第一数据库节点还被配置为:
基于需要订阅的消息主题和消息报文的定义,创建数据表。
结合第四方面的第三种实现方式,本公开在第四方面的第六种实现方式中,所述解析出的与订阅操作相关的属性包括以下至少之一:第一消息分发装置的域名和/或地址和/或端口;需要订阅的消息主题;消息订阅的服务质量;第一消息分发装置所需的认证信息;消息报文的处理方式或数据结构。
结合第四方面、第四方面的第一种实现方式或第四方面的第二种实现方式,本公开在第四方面的第七种实现方式中,所述第一数据库节点还被配置为:生成第一消息服务连接池,
其中,所述第一消息服务连接池保持与所述第一消息分发装置的多个连接;和/或
所述第一消息服务连接池保持与包括所述第一消息分发装置在内的多个消息分发装置的连接。
结合第四方面、第四方面的第一种实现方式或第四方面的第二种实现方式,本公开在第四方面的第八种实现方式中,所述第一数据库节点还被配置为:
在所述根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息之后,向第二数据库节点发送建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知。
结合第四方面的第八种实现方式,本公开在第四方面的第九种实现方式中,还包括:第二数据库节点,所述第二数据库节点被配置为:
响应于所述建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知向所述第一消息分发装置订阅所述第一消息;
基于预设通信协议接收所述第一消息分发装置发送的所述第一消息并存储所述第一消息。
结合第四方面的第九种实现方式,本公开在第四方面的第十种实现方式中,所述第一数据库节点和所述第二数据库节点属于同一消息处理装置集群,其中,所述数据库代理装置接收第一命令并将所述第一命令传送到第一数据库节点,包括:
所述数据库代理装置接收第一命令并将所述第一命令传送到所述同一消息处理装置集群中的任一消息处理装置。
第五方面,本公开实施例中提供了一种基于数据库的消息订阅系统,包括:消息提供设备、消息分发装置、数据库中的消息处理装置、数据库代理装置,其中,
所述消息提供设备被配置为向所述消息分发装置发送所述第一消息;
所述消息分发装置被配置为接收消息提供设备发送的第二消息,并响应于所述数据库中的消息处理装置订阅第一消息,将所述第二消息中的所述第一消息发送到所述数据库中的消息处理装置;
所述数据库代理装置被配置为接收第一命令并将所述第一命令传送到所述数据库中的消息处理装置;
所述数据库中的消息处理装置被配置为:
从数据库代理装置接收第一命令;
从所述第一命令解析出与订阅操作相关的属性;
根据解析出的与订阅操作相关的属性,基于预设通信协议向消息分发装置订阅第一消息;
基于预设通信协议接收所述消息分发装置发送的所述第一消息并存储所述第一消息。
第六方面,本公开实施例中提供了一种电子设备,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如第一方面、第一方面的第一种实现方式到第九种实现方式、第二方面、第二方面的第一种实现方式到第九种实现方式任一项所述的方法。
第七方面,本公开实施例中提供了一种可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现如第一方面、第一方面的第一种实现方式到第九种实现方式、第二方面、第二方面的第一种实现方式到第九种实现方式任一项所述的方法。
本公开实施例提供的技术方案可以包括以下有益效果:
根据本公开实施例提供的技术方案,通过从数据库代理接收第一命令;从所述第一命令解析出与订阅操作相关的属性;根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息;基于预设通信协议接收所述第一消息分发服务发送的所述第一消息并存储所述第一消息,从而在基于预设通信协议的条件下扩展数据库的功能,提高数据库的使用灵活性和兼容性,并且在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
根据本公开实施例提供的技术方案,通过所述数据库是基于请求/响应范式的数据库,并且所述预设通信协议是基于发布/订阅范式的通信协议,从而在不改变基于发布/订阅范式的通信协议的条件下扩展是基于请求/响应范式的数据库的功能,提高数据库的使用灵活性和兼容性。
根据本公开实施例提供的技术方案,通过从所述第一消息分发服务接收的所述第一消息是所述第一消息分发服务从前端设备接收的第二消息中符合订阅要求的消息,从而在基于预设通信协议的条件下扩展数据库的功能,提高数据库的使用灵活性和兼容性。
根据本公开实施例提供的技术方案,通过还包括:创建系统表;在所述系统表中存储所述解析出的与订阅操作相关的属性的元数据,从而在通信协议连接中断后实现快速连接恢复,提高系统可靠性。
根据本公开实施例提供的技术方案,通过还包括:基于所述解析出的与订阅操作相关的属性中的至少一部分,创建数据表;在所述数据表中存储所述第一消息,从而在不改变基于发布/订阅范式的通信协议的条件下扩展数据库的功能,实现第一消息的可靠存储,提高数据库的使用灵活性和兼容性。
根据本公开实施例提供的技术方案,通过所述基于所述解析出的与订阅操作相关的属性中的至少一部分,创建数据表,包括:基于需要订阅的消息主题和消息报文的定义,创建数据表,从而提高数据库的使用灵活性和兼容性。
根据本公开实施例提供的技术方案,通过所述解析出的与订阅操作相关的属性包括以下至少之一:第一消息分发服务的域名和/或地址和/或端口;需要订阅的消息主题;消息订阅的服务质量;第一消息分发服务所需的认证信息;消息报文的处理方式或数据结构,从而在通信协议连接中断后实现快速连接恢复,提高系统可靠性。
根据本公开实施例提供的技术方案,通过还包括:生成第一消息服务连接池,其中,通过第一消息服务连接池保持与所述第一消息分发服务的多个连接;和/或通过所述第一消息服务连接池保持与包括所述第一消息分发服务的多个消息分发服务的连接,从而在不改变基于发布/订阅范式的通信协议的条件下扩展数据库的功能,实现数据库与消息分发服务间的可靠连接,提高数据库的使用灵活性和兼容性。
根据本公开实施例提供的技术方案,通过在所述根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息之后,还包括:向第二数据库节点发送建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知,从而在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
根据本公开实施例提供的技术方案,通过执行所述方法的当前节点和所述第二数据库节点属于同一数据库集群,从而在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
根据本公开实施例提供的技术方案,通过数据库代理接收第一命令并将所述第一命令传送到数据库中的第一数据库节点;所述第一数据库节点从所述第一命令解析出与订阅操作相关的属性;所述第一数据库节点根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息;所述第一数据库节点基于预设通信协议接收所述第一消息分发服务发送的所述第一消息并存储所述第一消息,从而在基于预设通信协议的条件下扩展数据库的功能,提高数据库的使用灵活性和兼容性,并且在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
根据本公开实施例提供的技术方案,通过所述数据库是基于请求/响应范式的数据库,并且所述预设通信协议是基于发布/订阅范式的通信协议,从而在不改变基于发布/订阅范式的通信协议的条件下扩展是基于请求/响应范式的数据库的功能,提高数据库的使用灵活性和兼容性。
根据本公开实施例提供的技术方案,通过在所述第一数据库节点基于预设通信协议接收所述第一消息分发服务发送的所述第一消息并存储所述第一消息之前,还包括:所述第一消息分发服务接收前端设备发送的第二消息并将所述第二消息中的所述第一消息发送到所述第一数据库节点,从而在基于预设通信协议的条件下扩展数据库的功能,提高数据库的使用灵活性和兼容性。
根据本公开实施例提供的技术方案,通过还包括:所述第一数据库节点创建系统表;所述第一数据库节点在所述系统表中存储所述解析出的与订阅操作相关的属性的元数据,从而在通信协议连接中断后实现快速连接恢复,提高系统可靠性。
根据本公开实施例提供的技术方案,通过还包括:基于所述解析出的与订阅操作相关的属性中的至少一部分,所述第一数据库节点创建数据表;所述第一数据库节点在所述数据表中存储所述第一消息,从而在不改变基于发布/订阅范式的通信协议的条件下扩展数据库的功能,实现第一消息的可靠存储,提高数据库的使用灵活性和兼容性。
根据本公开实施例提供的技术方案,通过所述基于所述解析出的与订阅操作相关的属性中的至少一部分,所述第一数据库节点创建数据表,包括:基于需要订阅的消息主题和消息报文的定义,所述第一数据库节点创建数据表,从而提高数据库的使用灵活性和兼容性。
根据本公开实施例提供的技术方案,通过所述解析出的与订阅操作相关的属性包括以下至少之一:第一消息分发服务的域名和/或地址和/或端口;需要订阅的消息主题;消息订阅的服务质量;第一消息分发服务所需的认证信息;消息报文的处理方式或数据结构,从而在通信协议连接中断后实现快速连接恢复,提高系统可靠性。
根据本公开实施例提供的技术方案,通过还包括:所述第一数据库节点生成第一消息服务连接池,其中,所述第一消息服务连接池保持与所述第一消息分发服务的多个连接;和/或所述第一消息服务连接池保持与包括所述第一消息分发服务在内的多个消息分发服务的连接,从而在不改变基于发布/订阅范式的通信协议的条件下扩展数据库的功能,实现数据库与消息分发服务间的可靠连接,提高数据库的使用灵活性和兼容性。
根据本公开实施例提供的技术方案,通过还包括:所述第一数据库节点向第二数据库节点发送建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知;所述第二数据库节点响应于所述建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知向所述第一消息分发服务订阅所述第一消息;所述第二数据库节点基于预设通信协议接收所述第一消息分发服务发送的所述第一消息并存储所述第一消息,从而在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
根据本公开实施例提供的技术方案,通过所述第一数据库节点和所述第二数据库节点属于同一数据库集群,其中,所述数据库代理接收第一命令并将所述第一命令传送到第一数据库节点,包括:所述数据库代理接收第一命令并将所述第一命令传送到所述同一数据库集群中的任一数据库节点,从而在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
根据本公开实施例提供的技术方案,通过第一命令接收模块,被配置为从数据库代理接收第一命令;第一命令解析模块,被配置为从所述第一命令解析出与订阅操作相关的属性;第一消息订阅模块,被配置为根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息;第一消息接收存储模块,被配置为基于预设通信协议接收所述第一消息分发服务发送的所述第一消息并存储所述第一消息,从而在基于预设通信协议的条件下扩展数据库的功能,提高数据库的使用灵活性和兼容性,并且在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
根据本公开实施例提供的技术方案,通过数据库代理装置、数据库中的第一数据库节点和第一消息分发装置,其中,所述数据库代理装置被配置为接收第一命令并将所述第一命令传送到数据库中的第一数据库节点,其中,所述第一数据库节点被配置为:从数据库代理接收第一命令;从所述第一命令解析出与订阅操作相关的属性;根据解析出的与订阅操作相关的属性,基于预设通信协议向所述第一消息分发装置订阅第一消息;基于预设通信协议接收所述第一消息分发装置发送的所述第一消息并存储所述第一消息,从而在基于预设通信协议的条件下扩展数据库的功能,提高数据库的使用灵活性和兼容性,并且在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
根据本公开实施例提供的技术方案,通过所述数据库是基于请求/响应范式的数据库,并且所述预设通信协议是基于发布/订阅范式的通信协议,从而在不改变基于发布/订阅范式的通信协议的条件下扩展是基于请求/响应范式的数据库的功能,提高数据库的使用灵活性和兼容性。
根据本公开实施例提供的技术方案,通过所述第一消息分发装置被配置为接收前端设备发送的第二消息,并响应于所述第一数据库节点订阅第一消息,将所述第二消息中的所述第一消息发送到所述第一数据库节点,从而在基于预设通信协议的条件下扩展数据库的功能,提高数据库的使用灵活性和兼容性。
根据本公开实施例提供的技术方案,通过所述数据库中的第一数据库节点还被配置为:创建系统表;在所述系统表中存储所述解析出的与订阅操作相关的属性的元数据,从而在通信协议连接中断后实现快速连接恢复,提高系统可靠性。
根据本公开实施例提供的技术方案,通过所述第一数据库节点还被配置为:基于所述解析出的与订阅操作相关的属性中的至少一部分,创建数据表;在所述数据表中存储所述第一消息,从而在不改变基于发布/订阅范式的通信协议的条件下扩展数据库的功能,实现第一消息的可靠存储,提高数据库的使用灵活性和兼容性。
根据本公开实施例提供的技术方案,通过所述第一数据库节点还被配置为:基于需要订阅的消息主题和消息报文的定义,创建数据表,从而提高数据库的使用灵活性和兼容性。
根据本公开实施例提供的技术方案,通过所述解析出的与订阅操作相关的属性包括以下至少之一:第一消息分发装置的域名和/或地址和/或端口;需要订阅的消息主题;消息订阅的服务质量;第一消息分发装置所需的认证信息;消息报文的处理方式或数据结构,从而在通信协议连接中断后实现快速连接恢复,提高系统可靠性。
根据本公开实施例提供的技术方案,通过所述第一数据库节点还被配置为:生成第一消息服务连接池,其中,所述第一消息服务连接池保持与所述第一消息分发装置的多个连接;和/或所述第一消息服务连接池保持与包括所述第一消息分发装置在内的多个消息分发装置的连接,从而在不改变基于发布/订阅范式的通信协议的条件下扩展数据库的功能,实现数据库与消息分发服务间的可靠连接,提高数据库的使用灵活性和兼容性。
根据本公开实施例提供的技术方案,通过所述第一数据库节点还被配置为:在所述根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息之后,向第二数据库节点发送建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知,从而在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
根据本公开实施例提供的技术方案,通过还包括:第二数据库节点,所述第二数据库节点被配置为:响应于所述建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知向所述第一消息分发装置订阅所述第一消息;基于预设通信协议接收所述第一消息分发装置发送的所述第一消息并存储所述第一消息,从而在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
根据本公开实施例提供的技术方案,通过所述第一数据库节点和所述第二数据库节点属于同一消息处理装置集群,其中,所述数据库代理装置接收第一命令并将所述第一命令传送到第一数据库节点,包括:所述数据库代理装置接收第一命令并将所述第一命令传送到所述同一消息处理装置集群中的任一消息处理装置,从而在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
根据本公开实施例提供的技术方案,通过消息提供设备、消息分发装置、数据库中的消息处理装置、数据库代理装置,其中,所述消息提供设备被配置为向所述消息分发装置发送所述第一消息;所述消息分发装置被配置为接收消息提供设备发送的第二消息,并响应于所述数据库中的消息处理装置订阅第一消息,将所述第二消息中的所述第一消息发送到所述数据库中的消息处理装置;所述数据库代理装置被配置为接收第一命令并将所述第一命令传送到所述数据库中的消息处理装置;所述数据库中的消息处理装置被配置为:从数据库代理装置接收第一命令;从所述第一命令解析出与订阅操作相关的属性;根据解析出的与订阅操作相关的属性,基于预设通信协议向消息分发装置订阅第一消息;基于预设通信协议接收所述消息分发装置发送的所述第一消息并存储所述第一消息,从而在基于预设通信协议的条件下扩展数据库的功能,提高数据库的使用灵活性和兼容性,并且在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。在附图中:
图1示出根据本公开一实施方式的基于数据库的消息订阅系统的实施场景的示例性示意图;
图2示出根据本公开一实施方式的基于数据库的消息处理系统的实施场景的示例性示意图;
图3a示出根据图2所示的实施方式的数据库节点新建订阅的具体工作方式的示例性示意图;
图3b示出根据图2所示的实施方式的数据库节点订阅建立后的具体工作方式的示例性示意图;
图4示出根据本公开一实施方式的基于数据库的消息处理方法的流程图;
图5示出根据本公开另一实施方式的基于数据库的消息处理方法的流程图;
图6示出根据本公开一实施方式的基于数据库的消息处理装置的结构框图;
图7示出根据本公开一实施方式的基于数据库的消息处理系统的结构框图;
图8示出根据本公开一实施方式的基于数据库的消息订阅系统的结构框图;
图9示出根据本公开一实施方式的电子设备的结构框图;
图10是适于用来实现根据本公开一实施方式的基于数据库的消息处理方法的计算机系统的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的标签、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他标签、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的标签可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
在例如物联网之类的场景中,例如消息队列遥测传输协议(Message QueuingTelemetry Transport,MQTT)的基于发布/订阅范式的通信协议是非常常用的通信协议。在物联网解决方案中,前端设备采集到的数据可以通过基于发布/订阅范式的通信协议上报后在后端进行计算、分析、展示或存储。数据库,尤其是分布式数据库可以被用作数据源,存储前端设备上报的原始数据。但是由于数据库产品的固有架构设计,即,数据库通常基于请求/响应范式,使得数据库产品经常无法直接接收基于发布/订阅范式的消息,因此不得不借助外部组件进行消息的中转写入,这使得解决方案的整体复杂性上升。
而在相关技术中的适配基于发布/订阅范式的通信协议的分布式数据库产品的设计中,数据库产品在整个基于发布/订阅范式的通信协议应用架构中实际充当了消息分发服务的作用。但是根据基于发布/订阅范式的通信协议的设计规则,对于一个消息发布前端设备而言,它只能选择与一个例如MQTT消息中介(MQTT Broker)的消息分发服务建立连接。如果消息发布前端设备与上述数据库建立了基于发布/订阅范式的通信协议连接并发布消息供数据库存储,则前端设备会出现发布混淆,无法将消息发布给真正的消息分发服务,会造成发布/订阅模式中的其他订阅设备无法正常获取前端设备发布的消息。
而且,对于用户而言,用户更倾向与在基于发布/订阅范式的解决方案中选择一款比较成熟的消息中介产品,而非一款新兴的具备数据库功能的消息中介产品。相关技术的方案难以正常工作的根源在于其设计思路还是遵循传统数据库产品的请求/响应范式将发布/订阅范式中的发布者视作一个发送请求消息的客户端,而无视了发布/订阅范式的通信协议设计的工作方式已经不再是请求/响应模式了。
为了解决上述问题,本公开提出一种消息处理方法、装置、系统、电子设备及可读存储介质。
图1示出根据本公开一实施方式的基于数据库的消息订阅系统的实施场景的示例性示意图。
本领域技术人员可以理解,图1是以MQTT协议为示例性协议的基于数据库的消息订阅系统的实施场景的示例性示意图,并不构成对本公开的限定。
如图1所示,基于数据库的消息订阅系统的实施场景中包括前端设备110-1、110-2、110-3、MQTT消息中介120、其它消息订阅应用130、分布式数据库140,分布式数据库140中包括数据库节点141、142、143。
在图1中,前端设备110-1、110-2、110-3分别在步骤S101-1、S101-2、S101-3中将MQTT消息发布送至MQTT消息中介120。例如,前端设备110-1、110-2、110-3可以是各种物联网传感器之类的物联网设备,也可以是其他设备。在步骤S103中,分布式数据库140订阅、获取并存储来自MQTT消息中介120的MQTT消息。而在步骤S102中,其它消息订阅应用130也可以订阅、获取MQTT消息中介120的MQTT消息,以进行展示或分析,或其它用途。分布式数据库140作为MQTT协议的订阅者运行,采用MQTT协议订阅者的标准工作方式订阅并获取MQTT消息,并不因为在多个数据库节点141、142、143间分配MQTT消息,而采用类似MQTT消息中介120的工作方式。如此,前端设备110-1、110-2、110-3只需要向MQTT消息中介120发布MQTT消息,而不会出现发布混淆。而其它消息订阅应用130也可以正常从MQTT消息中介120订阅、获取MQTT消息,而不会被分布式数据库140干扰。
本领域技术人员可以理解,可以采用不限于MQTT的其它基于发布/订阅范式的通信协议,数据库节点可以是2个、4个或者其它个数,MQTT消息中介也可以为多个,本公开在此不再赘述。
图2示出根据本公开一实施方式的基于数据库的消息处理系统的实施场景的示例性示意图。
本领域技术人员可以理解,图2是以MQTT协议为示例性协议,结构化查询语言(Structured Query Language,SQL)数据库为示例性数据库的基于数据库的消息处理系统的实施场景的示例性示意图,并不构成对本公开的限定。
如图2所示,基于数据库的消息处理系统包括与图1相同的前端设备110-1、110-2、110-3、MQTT消息中介120、分布式数据库140,分布式数据库140中包括数据库节点141、142、143,还包括用户210、数据库代理220。其中,分布式数据库140可以是SQL数据库。
在步骤S201中,用户210向数据库代理220发送例如CREATE INGESTION命令的SQL命令,以在数据库节点141、142、143中插入新的记录,存储特定主题的MQTT消息。在步骤S202中,数据库代理220将例如CREATE INGESTION命令的SQL命令发送到数据库节点141。数据库节点141在步骤S205中向MQTT消息中介120订阅特定主题的MQTT消息,并在步骤S203、S204中,以共享订阅(shared-subscription)的方式分别与数据库节点142、143建立基于MQTT协议的连接,并向数据库节点142、143发送所订阅的特定主题的MQTT消息的通知。数据库节点142、143响应于共享订阅中的所订阅的特定主题的MQTT消息的通知,也分别在步骤S207、S209中向MQTT消息中介120订阅相同特定主题的MQTT消息。当MQTT消息中介120从前端设备110-1、110-2、110-3接收到特定主题的MQTT消息,在步骤S206、S208、S210中将特定主题的MQTT消息分别发送到数据库节点141、142、143。
通过上述方式,只需要数据库节点141接收用户命令,可以通过共享订阅的方式使分布式数据库140中所有需要的数据库节点142、143都能订阅相同的特定主题的消息。而且数据库节点141、142、143都使用MQTT订阅者的方式工作,不会由于采用类似MQTT消息中介120的工作方式,而使前端设备110-1、110-2、110-3产生发布混淆。同时,其它MQTT订阅者也可以正常工作。并且由于保持了和MQTT架构的一致性和兼容性,便于系统的升级与扩展。
本领域技术人员可以理解,可以采用不限于MQTT的其它基于发布/订阅范式的通信协议,也可以采用不限于SQL数据库的例如NoSQL、NewSQL的其它数据库查询语言,数据库节点可以是2个、4个或者其它个数,MQTT消息中介也可以为多个,本公开在此不再赘述。
图3a示出根据图2所示的实施方式的数据库节点新建订阅的具体工作方式的示例性示意图。
本领域技术人员可以理解,图3a是以MQTT协议为示例性协议,结构化查询语言(Structured Query Language,SQL)数据库节点为示例性数据库节点的工作方式的示例性示意图,并不构成对本公开的限定。
在图3a中,包括与图2相同的MQTT消息中介120、数据库节点141、142。在数据库节点141中,包括SQL引擎301、MQTT订阅管理器302、通信服务304、系统表305和数据表306,SQL引擎301中包括解析器3011、优化器3012、执行器3013,MQTT订阅管理器302中包括管理的MQTT订阅3021,管理的MQTT订阅3021中包括MQTT连接池303。
如图3a所示,在步骤S202中,SQL引擎301接收例如CREATE INGESTION命令的SQL命令,解析器3011进行词法分析和语法分析,可以从SQL命令解析出需要订阅的特定主题的MQTT订阅操作相关的属性。接下来,优化器3012对SQL命令进行优化,执行器3013执行SQL命令。SQL引擎301将执行后的SQL命令在步骤S301中发送到MQTT订阅管理器302。本领域技术人员可以理解,SQL引擎301可以是相关技术中已知的SQL引擎。MQTT订阅管理器302在步骤S302中生成系统表305,并将从SQL命令中解析出的需要订阅的特定主题的MQTT订阅操作相关的属性的元数据存储在系统表305中。需要订阅的特定主题的MQTT订阅操作相关的属性包括且不限于:MQTT消息中介的域名/IP及端口;需要订阅的消息主题;MQTT消息订阅的服务质量(Quality of Service,QoS);MQTT消息中介所需的认证信息;消息报文的处理方式或数据结构(也可以是消息报文的定义)。需要订阅的特定主题的MQTT订阅操作相关的属性的元数据在系统表305中持久化保存之后,利于在例如设备发生故障或者网络环境不好等因素所导致MQTT连接中断之后,快速恢复MQTT连接。
在步骤S303中,MQTT连接池303将需要订阅的特定主题的MQTT消息的通知发送到通信服务304。通信服务304在步骤S304中采用例如MQTT 3.1.1协议中定义的共享订阅(shared-subscription)的方式向数据库节点142发送需要订阅的特定主题的MQTT消息的通知。
MQTT连接池303在步骤S305中向MQTT消息中介120订阅,并获取特定主题的MQTT消息。即,数据库节点141创建与MQTT消息中介120的连接,并以共享订阅方式开始订阅特定主题的MQTT消息。为了保证前端设备频繁发布消息时,MQTT连接池303和MQTT消息中介120之间的吞吐量足够高,MQTT连接池303和MQTT消息中介120之间可以同时维持多个TCP(Transmission Control Protocol,传输控制协议,MQTT协议实现的底层协议)连接。另一方面,MQTT连接池303也可以和多个MQTT消息中介同时保持连接。在步骤S306中,MQTT订阅管理器302将接收到的特定主题的MQTT消息存储于数据表306中。
数据库节点142响应于以共享订阅方式接收的需要订阅的特定主题的MQTT消息的通知,在步骤S307中向MQTT消息中介120订阅并获取特定主题的MQTT消息。
在本公开的实施例中,方案的重点是需要在数据库管理系统的内核中实现独立于SQL引擎的MQTT订阅管理器302。在本公开的一个实施例中,MQTT订阅管理器302的主要任务如下:
1.用于对用户通过SQL创建的订MQTT订阅操作相关的属性的元数据进行内部的写入及查询;
2.需要在内部管理一个MQTT连接池303负责容纳并维护所有与指定的MQTT消息中介的连接;
3.对基于MQTT连接对到达的订阅消息实现异步写入;
4.控制数据库节点的通信服务向数据库集群中的对等节点广播订阅通知,使其余节点的MQTT订阅管理器在接收到通知后也能展开建立MQTT连接并针对指定主题进行订阅的动作。
此外,由于通常情况下数据库不会存在用于保存MQTT订阅操作相关的属性的系统表,因此也需要在数据库已有的系统表机制之上新建专门用于保存MQTT订阅操作相关的属性的系统表,从而实现MQTT订阅操作相关的属性的元数据的持久化。
采用上述方式,数据库节点141、142均向MQTT消息中介120订阅并获取相同特定主题的MQTT消息。而且数据库节点141、142均以MQTT订阅者的方式工作,不采用与MQTT消息中介120类似的工作方式,从而避免了前端设备的发布混淆,也使得其它MQTT订阅者可以正常工作。并且由于保持了和MQTT架构的一致性和兼容性,便于系统的升级与扩展。
图3b示出根据图2所示的实施方式的数据库节点订阅建立后的具体工作方式的示例性示意图。
如图3b所示,和图3a相比,数据库节点订阅建立后,仅MQTT消息中介120、数据库节点141中的MQTT订阅管理器302、数据表306参与订阅工作。MQTT订阅管理器302中的MQTT连接池303在步骤S305中,获取特定主题的MQTT消息。在步骤S306中,MQTT订阅管理器302将接收到的特定主题的MQTT消息存储于数据表306中。此时,数据库节点141仅需要完成从MQTT消息中介120获取特定主题的MQTT消息并存储于数据表306中,无需使用SQL引擎301接收SQL命令,也无需通过通信服务304向数据库节点142发送需要订阅的特定主题的MQTT消息的通知。此时,数据库节点在订阅工作中并不按照请求/响应模式工作,而是按照发布/订阅模式作为订阅者工作。
本领域技术人员可以理解,上述数据库节点141、142、143除了使用基于SQL的类关系型数据库进行MQTT扩展之外,还可以使用其它数据库,例如NoSQL数据库、NewSQL数据库等数据库,可以结合实际使用的数据库产品的种类将MQTT订阅的接口修改为非SQL类型的接口,例如HTTP API接口,或者其它的自定义查询语言接口,本公开在此不再赘述。
根据本公开实施例提供的技术方案,通过从数据库代理接收第一命令;从所述第一命令解析出与订阅操作相关的属性;根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息;基于预设通信协议接收第一消息分发服务发送的第一消息并存储第一消息,从而在不改变基于发布/订阅范式的通信协议的条件下扩展数据库的功能,提高数据库的使用灵活性和兼容性,并且在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
图4示出根据本公开一实施方式的基于数据库的消息处理方法的流程图。图4所示的方式,可以是前述图1、图2、图3中的例如数据库节点141的第一数据库节点所使用的方法。如图4所示,基于数据库的消息处理方法包括步骤S401、S402、S403、S404。
在步骤S401中,从数据库代理接收第一命令。
在步骤S402中,从第一命令解析出与订阅操作相关的属性。
在步骤S403中,根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息。
在步骤S404中,基于预设通信协议接收第一消息分发服务发送的第一消息并存储第一消息。
在本公开的一个实施例中,第一数据库节点从数据库代理接收例如SQL命令CREATE INGESTION的第一命令之后,从第一命令解析出与订阅操作相关的属性。根据解析出的与订阅操作相关的属性,基于例如MQTT协议的预设通信协议向例如MQTT消息中介的第一消息分发服务订阅第一消息。在基于例如MQTT协议的预设通信协议接收例如MQTT消息中介的第一消息分发服务发送的第一消息并存储第一消息。通过这种方式,以订阅者的方式工作,在以不改变基于发布/订阅范式的通信协议的条件下扩展数据库的功能,将数据库节点和发布/订阅范式的通信协议的主体部分充分分离,利于在发布/订阅范式的通信协议的可能的升级过程中简便地升级数据库节点,提高数据库的使用灵活性和兼容性。
本领域技术人员可以理解,第一命令可以采用CREATE INGESTION命令之外的其它SQL命令,或者SQL命令之外的其它数据库命令,第一消息分发服务可以采用MQTT协议之外的其它协议,本公开在此不再赘述。
在本公开的一个实施例中,数据库是基于请求/响应范式的数据库,并且预设通信协议是基于发布/订阅范式的通信协议。
在本公开的一个实施例中,预设通信协议可以是例如MQTT协议的基于发布/订阅范式的通信协议;数据库可以是基于SQL数据库扩展的基于请求/响应范式的数据库。扩展的数据库以订阅者的方式工作,不改变MQTT协议的基于发布/订阅的工作范式,提高数据库的使用灵活性和兼容性。本本公开实施例的方案可以使数据库不需要直接和MQTT的消息发布者直连,只需要连接到MQTT消息中介即可。因此该方案可使数据库无缝地嵌入MQTT消息订阅方案中,避免了相关技术的方案中带来的消息中介选择问题,也使得数据库本身并不需要进行过多无谓地改造。
根据本公开实施例提供的技术方案,通过数据库是基于请求/响应范式的数据库,并且预设通信协议是基于发布/订阅范式的通信协议,从而在不改变基于发布/订阅范式的通信协议的条件下扩展数据库的功能,提高数据库的使用灵活性和兼容性。
在本公开的一个实施例中,从第一消息分发服务接收的第一消息是所述第一消息分发服务从前端设备接收的第二消息中符合订阅要求的消息。
在本公开的一个实施例中,前端设备可以向第一消息分发服务发布多种主题的消息,在本公开实施例中可以统称为第二消息。而第一消息分发服务可以从第二消息中选取出符合订阅要求的特定主题的消息,作为第一消息。
根据本公开实施例提供的技术方案,通过从第一消息分发服务接收的第一消息是所述第一消息分发服务从前端设备接收的第二消息中符合订阅要求的消息,从而在基于预设通信协议的条件下扩展数据库的功能,提高数据库的使用灵活性和兼容性。
在本公开的一个实施例中,基于数据库的消息处理方法还包括:创建系统表;在系统表中存储解析出的与订阅操作相关的属性的元数据。
在本公开的一个实施例中,第一数据库节点可以创建例如系统表的系统表,并在系统表中存储解析出的与订阅操作相关的属性的元数据。由于在系统表中存储并持久化了解析出的与订阅操作相关的属性的元数据,因此当例如基于发布/订阅范式的通信协议的连接中断后,可以使用系统表中存储的解析出的与订阅操作相关的属性的元数据,重新与第一消息分发服务快速建立连接,提高系统的可靠性。本领域技术人员可以理解,系统表也可以采用除系统表之外的其它表的形式,本公开在此不再赘述。
根据本公开实施例提供的技术方案,通过还包括:创建系统表;在系统表中存储解析出的与订阅操作相关的属性的元数据,从而在通信协议连接中断后实现快速连接恢复,提高系统可靠性。
在本公开的一个实施例中,基于数据库的消息处理方法还包括:基于解析出的与订阅操作相关的属性中的至少一部分,创建数据表;在数据表中存储第一消息。
在本公开的一个实施例中,第一数据库节点基于解析出的与订阅操作相关的属性中的至少一部分,创建数据表。当接收到例如所订阅的MQTT特定主题的消息的第一消息后,将第一消息存储于数据表中。通过这种方式,完成了对订阅的第一消息的接收和存储。而且第一数据库节点以订阅者的方式工作,在不改变基于发布/订阅范式的通信协议的条件下扩展数据库的功能,实现第一消息的可靠存储,提高数据库的使用灵活性和兼容性。
根据本公开实施例提供的技术方案,通过还包括:基于解析出的与订阅操作相关的属性中的至少一部分,创建数据表;在数据表中存储第一消息,从而在不改变基于发布/订阅范式的通信协议的条件下扩展数据库的功能,实现第一消息的可靠存储,提高数据库的使用灵活性和兼容性。
在本公开的一个实施例中,基于解析出的与订阅操作相关的属性中的至少一部分,创建数据表,包括:基于需要订阅的消息主题和消息报文的定义,创建数据表。
在本公开的一个实施例中,在基于解析出的与订阅操作相关的属性中的至少一部分创建数据表时,具体可以基于需要订阅的消息主题和消息报文的定义创建数据表。这样,创建出的数据表可以针对需要订阅的消息主题和消息报文的定义进行定制,从而使得数据表在数据库中的存储更加灵活。
根据本公开实施例提供的技术方案,通过基于解析出的与订阅操作相关的属性中的至少一部分,创建数据表,包括:基于需要订阅的消息主题和消息报文的定义,创建数据表,从而提高数据库的使用灵活性和兼容性。
在本公开的一个实施例中,解析出的与订阅操作相关的属性包括以下至少之一:第一消息分发服务的域名和/或地址和/或端口;需要订阅的消息主题;消息订阅的服务质量;第一消息分发服务所需的认证信息;消息报文的处理方式或数据结构。
在本公开的一个实施例中,在第一数据库节点使用MQTT协议时,解析出的与订阅操作相关的属性可以包括以下至少之一:MQTT消息中介的域名/IP以及端口;需要订阅的消息主题;MQTT消息订阅的QoS;消息中介所需的认证信息;消息报文的处理方式或数据结构。本领域技术人员可以理解,根据应用场景的需要,解析出的与订阅操作相关的属性还可以包括MQTT订阅操作的更多其它属性,或者其它非MQTT协议的基于发布/订阅范式的通信协议的属性,或者其它协议的属性,本公开在此不再赘述。
根据本公开实施例提供的技术方案,解析出的与订阅操作相关的属性包括以下至少之一:第一消息分发服务的域名和/或地址和/或端口;需要订阅的消息主题;消息订阅的服务质量;第一消息分发服务所需的认证信息;消息报文的处理方式或数据结构,从而在通信协议连接中断后实现快速连接恢复,提高系统可靠性。
在本公开的一个实施例中,基于数据库的消息处理方法还包括:生成第一消息服务连接池,其中,通过第一消息服务连接池保持与第一消息分发服务的多个连接;和/或通过第一消息服务连接池保持与包括第一消息分发服务的多个消息分发服务的连接。
在本公开的一个实施例中,由于前端设备可能发布大量包含第一消息的第二消息,导致第一消息分发服务需要将大量第一消息发送给第一数据库节点。为了在第一消息分发服务与数据库节点间保持足够的传输容量,保证连接稳定、通畅,可以在第一数据库节点中生成例如MQTT连接池的第一消息服务连接池。第一消息服务连接池可以与第一消息分发服务间保持多个TCP连接。第一消息服务连接池也可以与包括第一消息分发服务的多个消息分发服务保持连接。如此,提高了数据库与消息分发服务间的连接可靠性,提高了数据库的使用灵活性和兼容性。
根据本公开实施例提供的技术方案,通过还包括:生成第一消息服务连接池,其中,通过第一消息服务连接池保持与第一消息分发服务的多个连接;和/或通过第一消息服务连接池保持与包括第一消息分发服务的多个消息分发服务的连接,从而在不改变基于发布/订阅范式的通信协议的条件下扩展数据库的功能,实现数据库与消息分发服务间的可靠连接,提高数据库的使用灵活性和兼容性。
在本公开的一个实施例中,第一消息分发服务可以是例如MQTT消息中介的基于发布/订阅范式的通信协议的消息分发服务。基于发布/订阅范式的通信协议,第一数据库节点可以按照需求灵活地订阅前端设备所发布的消息中的全部或者部分主题的消息,节约了数据库的存储资源和第一消息分发服务与数据库节点间的传输资源,提高了数据库使用的灵活性。
本领域技术人员可以理解,第一消息分发服务可以是MQTT消息中介之外的其它基于发布/订阅范式的通信协议的消息分发服务,也可以是其它协议的消息分发服务,本公开在此不再赘述。
在本公开的一个实施例中,在根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息之后,基于数据库的消息处理方法还包括:向第二数据库节点发送建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知。
在本公开的一个实施例中,为了在分布式数据库中的第二数据库节点中同步订阅相同主体的消息,在根据解析出的与订阅操作相关的属性,基于例如MQTT协议的预设通信协议向例如MQTT消息中介的第一消息分发服务订阅第一消息之后,第一数据库节点向第二数据库节点发送建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知。第二数据库节点可以是例如图2中的数据库节点142、143。应该理解,第二数据库节点的数量不限于2个,可以是以3个或更多个。
根据本公开实施例提供的技术方案,在根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息之后,通过还包括:向第二数据库节点发送建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知,从而在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
在本公开的一个实施例中,执行所述方法的当前节点,即,第一数据库节点,和第二数据库节点属于同一数据库集群。
在本公开的一个实施例中,第二数据库节点和第一数据库节点属于同一数据集群,第二数据库节点可以响应于建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息,向第一消息分发服务订阅并接收、存储与第一数据库节点相同的主题的第一消息,从而实现在分布式数据库系统的多个节点中实现第一消息的同步订阅、接收与存储,提高系统的灵活性与可靠性。
根据本公开实施例提供的技术方案,通过执行所述方法的当前节点和第二数据库节点属于同一数据库集群,从而在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
在本公开的一个实施例中,数据库代理接收第一命令并将第一命令传送到数据库中的第一数据库节点;第一数据库节点从第一命令解析出与订阅操作相关的属性;第一数据库节点根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息;第一数据库节点基于预设通信协议接收第一消息分发服务发送的第一消息并存储第一消息。
图5示出根据本公开另一实施方式的基于数据库的消息处理方法的流程图。如图5所示,基于数据库的消息处理方法包括步骤S501、S502、S503、S504。
在步骤S501中,数据库代理接收第一命令并将所述第一命令传送到数据库中的第一数据库节点。
在步骤S502中,第一数据库节点从第一命令解析出与订阅操作相关的属性。
在步骤S503中,第一数据库节点根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息。
在步骤S504中,第一数据库节点基于预设通信协议接收第一消息分发服务发送的第一消息并存储第一消息。
在本公开的一个实施例中,数据库代理接收来自用户的例如CREATE INGESTION的第一命令,并将第一命令传送到数据库中的第一数据库节点。第一数据库节点从第一命令解析出与订阅操作相关的属性。第一数据库节点再根据解析出与订阅操作相关的属性,以发布/订阅范式的通信协议的订阅者的方式,向例如MQTT消息中介的第一消息分发服务订阅特定主题的第一消息。第一数据库节点接收MQTT消息中介发送的特定主题的第一消息后,将第一消息存储于第一数据库节点中。第一数据库节点以订阅者的方式工作,在以不改变基于发布/订阅范式的通信协议的条件下扩展数据库的功能,将数据库节点和发布/订阅范式的通信协议的消息分发部分充分分离,利于在发布/订阅范式的通信协议的可能的升级过程中简便地升级数据库节点,提高数据库的使用灵活性和兼容性。
本领域技术人员可以理解,第一命令可以采用CREATE INGESTION命令之外的其它SQL命令,或者SQL命令之外的其它数据库命令,第一消息分发服务可以采用MQTT协议之外的其它协议,本公开在此不再赘述。
根据本公开实施例提供的技术方案,通过数据库代理接收第一命令并将第一命令传送到数据库中的第一数据库节点;第一数据库节点从第一命令解析出与订阅操作相关的属性;第一数据库节点根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息;第一数据库节点基于预设通信协议接收第一消息分发服务发送的第一消息并存储第一消息,从而在不改变基于发布/订阅范式的通信协议的条件下扩展数据库的功能,提高数据库的使用灵活性和兼容性,并且在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
在本公开的一个实施例中,数据库是基于请求/响应范式的数据库,并且预设通信协议是基于发布/订阅范式的通信协议。
在本公开的一个实施例中,预设通信协议可以是例如MQTT协议的基于发布/订阅范式的通信协议;数据库可以是基于SQL数据库扩展的基于请求/响应范式的数据库。扩展的数据库以订阅者的方式工作,不改变MQTT协议的基于发布/订阅的工作范式,提高数据库的使用灵活性和兼容性。
根据本公开实施例提供的技术方案,通过数据库是基于请求/响应范式的数据库,并且预设通信协议是基于发布/订阅范式的通信协议,从而在不改变基于发布/订阅范式的通信协议的条件下扩展数据库的功能,提高数据库的使用灵活性和兼容性。
在本公开的一个实施例中,在第一数据库节点基于预设通信协议接收所述第一消息分发服务发送的第一消息并存储第一消息之前,消息处理方法还包括:第一消息分发服务接收前端设备发送的第二消息并将第二消息中的第一消息发送到第一数据库节点。
在本公开的一个实施例中,前端设备向第一消息分发服务发送包括第一消息的第二消息。第一消息分发服务从第二消息中选取第一消息发送到第一数据库节点。第一数据库节点采用订阅者方式工作,且只接受特定主题的第一消息,提高了数据库的使用灵活性和兼容性。
根据本公开实施例提供的技术方案,通过在第一数据库节点基于预设通信协议接收所述第一消息分发服务发送的第一消息并存储第一消息之前,还包括:第一消息分发服务接收前端设备发送的第二消息并将第二消息中的第一消息发送到第一数据库节点,从而在基于预设通信协议的条件下扩展数据库的功能,提高数据库的使用灵活性和兼容性。
在本公开的一个实施例中,还包括:第一数据库节点创建系统表;第一数据库节点在系统表中存储解析出的与订阅操作相关的属性的元数据。
在本公开的一个实施例中,第一数据库节点可以创建例如系统表的系统表,并在系统表中存储解析出的与订阅操作相关的属性的元数据。由于在系统表中存储并持久化了解析出的与订阅操作相关的属性的元数据,因此当例如基于发布/订阅范式的通信协议的连接中断后,可以使用系统表中存储的解析出的与订阅操作相关的属性的元数据,重新与第一消息分发服务快速建立连接,提高系统的可靠性。本领域技术人员可以理解,系统表还可以是除系统表之外的其它表的形式,本公开在此不再赘述。
根据本公开实施例提供的技术方案,通过还包括:第一数据库节点创建系统表;所述第一数据库节点在系统表中存储解析出的与订阅操作相关的属性的元数据,从而在通信协议连接中断后实现快速连接恢复,提高系统可靠性。
在本公开的一个实施例中,消息处理方法还包括:基于解析出的与订阅操作相关的属性的至少一部分,第一数据库节点创建数据表;第一数据库节点在数据表中存储第一消息。
在本公开的一个实施例中,第一数据库节点基于解析出的与订阅操作相关的属性的至少一部分,创建数据表。当接收到例如所订阅的MQTT主题的消息的第一消息后,将第一消息存储于数据表中。通过这种方式,完成了对订阅的第一消息的接收和存储。而且第一数据库节点以订阅者的方式工作,在不改变基于发布/订阅范式的通信协议的条件下扩展数据库的功能,实现第一消息的可靠存储,提高数据库的使用灵活性和兼容性。
根据本公开实施例提供的技术方案,通过还包括:基于解析出的与订阅操作相关的属性的至少一部分,第一数据库节点创建数据表;第一数据库节点在数据表中存储第一消息,从而在不改变基于发布/订阅范式的通信协议的条件下扩展数据库的功能,实现第一消息的可靠存储,提高数据库的使用灵活性和兼容性。
在本公开的一个实施例中,基于解析出的与订阅操作相关的属性中的至少一部分,第一数据库节点创建数据表,包括:基于需要订阅的消息主题和消息报文的定义,第一数据库节点创建数据表。
在本公开的一个实施例中,在本公开的一个实施例中,在基于解析出的与订阅操作相关的属性中的至少一部分创建数据表时,具体可以基于需要订阅的消息主题和消息报文的定义创建数据表。这样,创建出的数据表可以针对需要订阅的消息主题和消息报文的定义进行定制,从而使得数据表在数据库中的存储更加灵活。
根据本公开实施例提供的技术方案,通过基于解析出的与订阅操作相关的属性中的至少一部分,第一数据库节点创建数据表,包括:基于需要订阅的消息主题和消息报文的定义,第一数据库节点创建数据表,从而提高数据库的使用灵活性和兼容性。
在本公开的一个实施例中,解析出的与订阅操作相关的属性包括以下至少之一:第一消息分发服务的域名和/或地址和/或端口;需要订阅的消息主题;消息订阅的服务质量;第一消息分发服务所需的认证信息;消息报文的处理方式或数据结构。
在本公开的一个实施例中,在使用MQTT协议时,解析出的与订阅操作相关的属性可以包括以下至少之一:MQTT消息中介的域名/IP以及端口;需要订阅的消息主题;MQTT消息订阅的QoS;消息中介所需的认证信息;消息报文的处理方式或数据结构。本领域技术人员可以理解,根据应用场景的需要,第一命令中的订阅操作相关的属性还可以包括MQTT订阅操作的更多其它属性,或者其它非MQTT协议的基于发布/订阅范式的通信协议的属性,或者其它协议的属性,本公开在此不再赘述。
根据本公开实施例提供的技术方案,通过解析出的与订阅操作相关的属性包括以下至少之一:第一消息分发服务的域名和/或地址和/或端口;需要订阅的消息主题;消息订阅的服务质量;第一消息分发服务所需的认证信息;消息报文的处理方式或数据结构,从而在通信协议连接中断后实现快速连接恢复,提高系统可靠性。
在本公开的一个实施例中,消息处理方法还包括:第一数据库节点生成第一消息服务连接池,其中,第一消息服务连接池保持与第一消息分发服务的多个连接;和/或第一消息服务连接池保持与包括第一消息分发服务在内的多个消息分发服务的连接
在本公开的一个实施例中,由于前端设备可能发布大量包括第一消息的第二消息,导致第一消息分发服务需要将大量第一消息发送给第一数据库节点。为了在第一消息分发服务与数据库节点间保持足够的传输容量,保证连接稳定、通畅,可以在第一数据库节点中生成例如MQTT连接池的第一消息服务连接池。第一消息服务连接池可以与第一消息分发服务间保持多个TCP连接。第一消息服务连接池也可以与包括第一消息分发服务的多个消息分发服务保持连接。如此,提高了数据库与消息分发服务间的连接可靠性,提高了数据库的使用灵活性和兼容性。
根据本公开实施例提供的技术方案,通过还包括:第一数据库节点生成第一消息服务连接池,其中,第一消息服务连接池保持与第一消息分发服务的多个连接;和/或第一消息服务连接池保持与包括第一消息分发服务在内的多个消息分发服务的连接,从而在不改变基于发布/订阅范式的通信协议的条件下扩展数据库的功能,实现数据库与消息分发服务间的可靠连接,提高数据库的使用灵活性和兼容性。
在本公开的一个实施例中,第一消息分发服务可以是例如MQTT消息中介的基于发布/订阅范式的通信协议的消息分发服务。基于发布/订阅范式的通信协议,第一数据库节点可以按照需求灵活地订阅前端设备所发布的消息中的全部或者部分主题的消息,节约了数据库的存储资源和第一消息分发服务与数据库节点间的传输资源,提高了数据库使用的灵活性。
本领域技术人员可以理解,第一消息分发服务可以是MQTT消息中介之外的其它基于发布/订阅范式的通信协议的消息分发服务,也可以是其它协议的消息分发服务,本公开在此不再赘述。
在本公开的一个实施例中,消息处理方法还包括:第一数据库节点向第二数据库节点发送建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知;第二数据库节点响应于建立与第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅第一消息的通知向第一消息分发服务订阅第一消息;第二数据库节点基于预设通信协议接收第一消息分发服务发送的第一消息并存储第一消息。
在本公开的一个实施例中,为了在分布式数据库中的第二数据库节点中同步订阅相同主体的消息,响应于第一命令,第一数据库节点向第二数据库节点发送建立与第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅第一消息的通知。第二数据库节点可以响应于建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅第一消息,基于例如MQTT协议的预设通信协议向第一消息分发服务订阅并接收、存储与第一数据库节点相同的主题的第一消息,从而实现在分布式数据库系统的多个节点中实现第一消息的同步订阅、接收与存储,提高系统的灵活性与可靠性。
根据本公开实施例提供的技术方案,通过还包括:第一数据库节点向第二数据库节点发送建立与第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅第一消息的通知;第二数据库节点响应于建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅第一消息的通知向第一消息分发服务订阅所述第一消息;第二数据库节点基于预设通信协议接收第一消息分发服务发送的第一消息并存储第一消息,从而在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
在本公开的一个实施例中,第一数据库节点和第二数据库节点属于同一数据库集群,其中,数据库代理接收第一命令并将第一命令传送到第一数据库节点,包括:数据库代理接收第一命令并将第一命令传送到所述同一数据库集群中的任一数据库节点。
在本公开的一个实施例中,第一数据库节点和第二数据库节点属于同一数据库集群。数据库代理可以将第一命令发送到第一数据库节点,也可以发送到数据库集群中的任一数据库节点。数据库集群的多个节点可以通过共享订阅的方式订阅相同主题的第一消息。如此,提高了数据库的设计和使用灵活性、可靠性。
根据本公开实施例提供的技术方案,通过第一数据库节点和第二数据库节点属于同一数据库集群,其中,数据库代理接收第一命令并将第一命令传送到第一数据库节点,包括:数据库代理接收第一命令并将第一命令传送到所述同一数据库集群中的任一数据库节点,从而在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
在本公开的一个实施例中,消息处理装置包括:第一命令接收模块,被配置为从数据库代理接收第一命令;第一命令解析模块,被配置为从第一命令解析出与订阅操作相关的属性;第一消息订阅模块,被配置为根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息;第一消息接收存储模块,被配置为基于预设通信协议接收第一消息分发服务发送的第一消息并存储第一消息。
图6示出根据本公开一实施方式的基于数据库的消息处理装置的结构框图。如图6所示,基于数据库的消息处理装置600包括:第一命令接收模块601、第一命令解析模块602、第一消息订阅模块603、第一消息接收存储模块604。
第一命令接收模块601被配置为从数据库代理接收第一命令。
第一命令解析模块602被配置为从第一命令解析出与订阅操作相关的属性。
第一消息订阅模块603被配置为根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息。
第一消息接收存储模块604被配置为基于预设通信协议接收第一消息分发服务发送的第一消息并存储第一消息。
根据本公开实施例提供的技术方案,通过第一命令接收模块,被配置为从数据库代理接收第一命令;第一命令解析模块,被配置为从第一命令解析出与订阅操作相关的属性;第一消息订阅模块,被配置为根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息;第一消息接收存储模块,被配置为基于预设通信协议接收第一消息分发服务发送的第一消息并存储第一消息,从而在不改变基于发布/订阅范式的通信协议的条件下扩展数据库的功能,提高数据库的使用灵活性和兼容性,并且在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
在本公开的一个实施例中,基于数据库的消息处理系统包括数据库代理装置、数据库中的第一数据库节点和第一消息分发装置,其中,所述数据库代理装置被配置为接收第一命令并将所述第一命令传送到数据库中的第一数据库节点,其中,所述第一数据库节点被配置为:从数据库代理接收第一命令;从所述第一命令解析出与订阅操作相关的属性;根据解析出的与订阅操作相关的属性,基于预设通信协议向所述第一消息分发装置订阅第一消息;基于预设通信协议接收所述第一消息分发装置发送的所述第一消息并存储所述第一消息。
图7示出根据本公开一实施方式的基于数据库的消息处理系统的结构框图。如图7所示,基于数据库的消息处理系统700包括:数据库代理装置701、数据库中的第一数据库节点702、第一消息分发装置703。
数据库代理装置701被配置为接收第一命令并将第一命令传送到数据库中的第一数据库节点。
数据库中的第一数据库节点702被配置为从数据库代理接收第一命令;从第一命令解析出与订阅操作相关的属性;根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发装置703订阅第一消息;基于预设通信协议接收第一消息分发装置703发送的第一消息并存储第一消息。
根据本公开实施例提供的技术方案,通过数据库代理装置701、数据库中的第一数据库节点702和第一消息分发装置703,其中,所述数据库代理装置701被配置为接收第一命令并将所述第一命令传送到数据库中的第一数据库节点,其中,所述第一数据库节点被配置为:从数据库代理接收第一命令;从所述第一命令解析出与订阅操作相关的属性;根据解析出的与订阅操作相关的属性,基于预设通信协议向所述第一消息分发装置703订阅第一消息;基于预设通信协议接收所述第一消息分发装置703发送的所述第一消息并存储所述第一消息,从而在基于预设通信协议的条件下扩展数据库的功能,提高数据库的使用灵活性和兼容性,并且在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
在本公开的一个实施例中,数据库是基于请求/响应范式的数据库,并且预设通信协议是基于发布/订阅范式的通信协议。
在本公开的一个实施例中,预设通信协议可以是例如MQTT协议的基于发布/订阅范式的通信协议;数据库可以是基于SQL数据库扩展的基于请求/响应范式的数据库。扩展的数据库以订阅者的方式工作,不改变MQTT协议的基于发布/订阅的工作范式,提高数据库的使用灵活性和兼容性。
根据本公开实施例提供的技术方案,通过数据库是基于请求/响应范式的数据库,并且预设通信协议是基于发布/订阅范式的通信协议,从而在不改变基于发布/订阅范式的通信协议的条件下扩展数据库的功能,提高数据库的使用灵活性和兼容性。
在本公开的实施例中,第一消息分发装置被配置为接收前端设备发送的第二消息,并响应于所述第一数据库节点订阅第一消息,将第二消息中的第一消息发送到第一数据库节点。
根据本公开实施例提供的技术方案,通过第一消息分发装置,被配置为:接收前端设备发送的第二消息,并响应于所述第一数据库节点订阅第一消息,将第二消息中的第一消息发送到第一数据库节点,从而在基于预设通信协议的条件下扩展数据库的功能,提高数据库的使用灵活性和兼容性。
在本公开的实施例中,第一数据库节点还被配置为:创建系统表;在系统表中存储解析出的与订阅操作相关的属性的元数据。
根据本公开实施例提供的技术方案,通过第一数据库节点还被配置为:创建系统表;在系统表中存储解析出的与订阅操作相关的属性的元数据,从而在通信协议连接中断后实现快速连接恢复,提高系统可靠性。
在本公开的实施例中,第一数据库节点还被配置为:基于解析出的与订阅操作相关的属性中的至少一部分,创建数据表;在数据表中存储第一消息。
根据本公开实施例提供的技术方案,通过第一数据库节点还被配置为:基于解析出的与订阅操作相关的属性中的至少一部分,创建数据表;在数据表中存储第一消息,从而在不改变基于发布/订阅范式的通信协议的条件下扩展数据库的功能,实现第一消息的可靠存储,提高数据库的使用灵活性和兼容性。
在本公开的实施例中,第一数据库节点还被配置为:基于需要订阅的消息主题和消息报文的定义,创建数据表。
根据本公开实施例提供的技术方案,通过第一数据库节点还被配置为:基于需要订阅的消息主题和消息报文的定义,创建数据表,从而提高数据库的使用灵活性和兼容性。
在本公开的实施例中,解析出的与订阅操作相关的属性包括以下至少之一:第一消息分发装置的域名和/或地址和/或端口;需要订阅的消息主题;消息订阅的服务质量;第一消息分发装置所需的认证信息;消息报文的处理方式或数据结构。
根据本公开实施例提供的技术方案,通过解析出的与订阅操作相关的属性包括以下至少之一:第一消息分发装置的域名和/或地址和/或端口;需要订阅的消息主题;消息订阅的服务质量;第一消息分发装置所需的认证信息;消息报文的处理方式或数据结构,从而在通信协议连接中断后实现快速连接恢复,提高系统可靠性。
在本公开的实施例中,第一数据库节点还被配置为:生成第一消息服务连接池,其中,第一消息服务连接池保持与第一消息分发装置的多个连接;和/或第一消息服务连接池保持与包括第一消息分发装置在内的多个消息分发装置的连接
根据本公开实施例提供的技术方案,通过第一数据库节点还被配置为:生成第一消息服务连接池,其中,第一消息服务连接池保持与第一消息分发装置的多个连接;和/或第一消息服务连接池保持与包括第一消息分发装置在内的多个消息分发装置的连接,从而在不改变基于发布/订阅范式的通信协议的条件下扩展数据库的功能,实现数据库与消息分发服务间的可靠连接,提高数据库的使用灵活性和兼容性。
在本公开的实施例中,第一数据库节点还被配置为:在根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息之后,向第二数据库节点发送建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知。
根据本公开实施例提供的技术方案,通过第一数据库节点还被配置为:在根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息之后,向第二数据库节点发送建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知,从而在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
在本公开的实施例中,消息处理系统还包括:第二数据库节点,第二数据库节点被配置为:响应于建立与第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知向第一消息分发装置订阅第一消息;基于预设通信协议接收第一消息分发装置发送的第一消息并存储所述第一消息。
根据本公开实施例提供的技术方案,通过还包括:第二数据库节点,第二数据库节点被配置为:响应于建立与第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知向第一消息分发装置订阅第一消息;基于预设通信协议接收第一消息分发装置发送的第一消息并存储所述第一消息,从而在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
在本公开的实施例中,第一数据库节点和第二数据库节点属于同一消息处理装置集群,其中,所述数据库代理装置接收第一命令并将第一命令传送到第一数据库节点,包括:数据库代理装置接收第一命令并将第一命令传送到所述同一消息处理装置集群中的任一消息处理装置。
根据本公开实施例提供的技术方案,通过第一数据库节点和第二数据库节点属于同一消息处理装置集群,其中,所述数据库代理装置接收第一命令并将第一命令传送到第一数据库节点,包括:数据库代理装置接收第一命令并将第一命令传送到所述同一消息处理装置集群中的任一消息处理装置,从而在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
在本公开的实施例中,基于数据库的消息订阅系统包括:消息提供设备、消息分发装置、数据库中的消息处理装置、数据库代理装置,其中,消息提供设备被配置为向消息分发装置发送第一消息;消息分发装置被配置为接收消息提供设备发送的第二消息,并响应于数据库中的消息处理装置订阅第一消息,将第二消息中的所述第一消息发送到所述数据库中的消息处理装置;数据库代理装置被配置为接收第一命令并将所述第一命令传送到所述消息处理装置;数据库中的消息处理装置被配置为:从数据库代理装置接收第一命令;从第一命令解析出与订阅操作相关的属性;根据解析出的与订阅操作相关的属性,基于预设通信协议向消息分发装置订阅第一消息;基于预设通信协议接收消息分发装置发送的第一消息并存储所述第一消息。
图8示出根据本公开一实施方式的基于数据库的消息订阅系统的结构框图。如图8所示,基于数据库的消息订阅系统800包括:消息提供设备801、消息分发装置802、数据库中的消息处理装置803、数据库代理装置804。
消息提供设备801被配置为向消息分发装置发送第一消息。
消息分发装置802被配置为接收消息提供设备发送的第二消息,并响应于数据库中的消息处理装置订阅第一消息,将第二消息中的第一消息发送到数据库中的消息处理装置。
数据库代理装置804被配置为接收第一命令并将第一命令传送到数据库中的消息处理装置。
数据库中的消息处理装置803被配置为从数据库代理装置接收第一命令;从第一命令解析出与订阅操作相关的属性;根据解析出的与订阅操作相关的属性,基于预设通信协议向消息分发装置订阅第一消息;基于预设通信协议接收所述消息分发装置发送的所述第一消息并存储所述第一消息。
根据本公开实施例提供的技术方案,通过消息提供设备、消息分发装置、消息处理装置、数据库代理装置,其中,消息提供设备被配置为向消息分发装置发送第一消息;消息分发装置被配置为接收消息提供设备发送的第二消息,并响应于数据库中的消息处理装置订阅第一消息,将第二消息中的第一消息发送到数据库中的消息处理装置;数据库代理装置被配置为接收第一命令并将所述第一命令传送到数据库中的消息处理装置;数据库中的消息处理装置被配置为:从数据库代理装置接收第一命令;从第一命令解析出与订阅操作相关的属性;根据解析出的与订阅操作相关的属性,基于预设通信协议向消息分发装置订阅第一消息;基于预设通信协议接收所述消息分发装置发送的所述第一消息并存储所述第一消息,从而在基于预设通信协议的条件下扩展数据库的功能,提高数据库的使用灵活性和兼容性,并且在分布式数据库系统的多个节点中实现消息的同步订阅、接收与存储,提高系统的可靠性。
图9示出根据本公开一实施方式的电子设备的结构框图。
本公开实施方式还提供了一种电子设备,如图9所示,包括至少一个处理器901;以及与至少一个处理器901通信连接的存储器902;其中,存储器902存储有可被至少一个处理器901执行的指令,指令被至少一个处理器901执行以实现以下步骤:
从数据库代理接收第一命令;
从所述第一命令解析出与订阅操作相关的属性;
根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息;
基于预设通信协议接收所述第一消息分发服务发送的所述第一消息并存储所述第一消息。
在本公开的一个实施例中,所述数据库是基于请求/响应范式的数据库,并且所述预设通信协议是基于发布/订阅范式的通信协议。
在本公开的一个实施例中,从所述第一消息分发服务接收的所述第一消息是所述第一消息分发服务从前端设备接收的第二消息中符合订阅要求的消息。
在本公开的一个实施例中,指令还被至少一个处理器901执行以实现以下步骤:
创建系统表;
在所述系统表中存储所述解析出的与订阅操作相关的属性的元数据。
在本公开的一个实施例中,指令还被至少一个处理器901执行以实现以下步骤:
基于所述解析出的与订阅操作相关的属性中的至少一部分,创建数据表;
在所述数据表中存储所述第一消息。
在本公开的一个实施例中,所述基于所述解析出的与订阅操作相关的属性中的至少一部分,创建数据表,包括:
基于需要订阅的消息主题和消息报文的定义,创建数据表。
在本公开的一个实施例中,所述解析出的与订阅操作相关的属性包括以下至少之一:第一消息分发服务的域名和/或地址和/或端口;需要订阅的消息主题;消息订阅的服务质量;第一消息分发服务所需的认证信息;消息报文的处理方式或数据结构。
在本公开的一个实施例中,指令还被至少一个处理器901执行以实现以下步骤:
生成第一消息服务连接池,
其中,通过第一消息服务连接池保持与所述第一消息分发服务的多个连接;和/或
通过所述第一消息服务连接池保持与包括所述第一消息分发服务的多个消息分发服务的连接。
在本公开的一个实施例中,指令还被至少一个处理器901执行以实现以下步骤:
在所述根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息之后,向第二数据库节点发送建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知。
在本公开的一个实施例中,执行所述方法的当前节点和所述第二数据库节点属于同一数据库集群。
存储器902还存储有可被至少一个处理器901执行的指令,指令被至少一个处理器901执行以实现以下步骤:
数据库代理接收第一命令并将所述第一命令传送到数据库中的第一数据库节点;
所述第一数据库节点从所述第一命令解析出与订阅操作相关的属性;
所述第一数据库节点根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息;所述第一数据库节点基于预设通信协议接收所述第一消息分发服务发送的所述第一消息并存储所述第一消息。
在本公开的一个实施例中,所述数据库是基于请求/响应范式的数据库,并且所述预设通信协议是基于发布/订阅范式的通信协议。
在本公开的一个实施例中,在所述第一数据库节点基于预设通信协议基于预设通信协议接收所述第一消息分发服务发送的所述第一消息并存储所述第一消息之前,指令还被至少一个处理器901执行以实现以下步骤:
所述第一消息分发服务接收前端设备发送的第二消息并将所述第二消息中的所述第一消息发送到所述第一数据库节点。
在本公开的一个实施例中,指令还被至少一个处理器901执行以实现以下步骤:
所述第一数据库节点创建系统表;
所述第一数据库节点在所述系统表中存储所述解析出的与订阅操作相关的属性的元数据。
在本公开的一个实施例中,指令还被至少一个处理器901执行以实现以下步骤:
基于所述解析出的与订阅操作相关的属性中的至少一部分,所述第一数据库节点创建数据表;
所述第一数据库节点在所述数据表中存储所述第一消息。
在本公开的一个实施例中,所述基于所述解析出的与订阅操作相关的属性中的至少一部分,所述第一数据库节点创建数据表,包括:
基于需要订阅的消息主题和消息报文的定义,所述第一数据库节点创建数据表。
根据本公开实施例提供的技术方案,通过所述基于所述解析出的与订阅操作相关的属性中的至少一部分,所述第一数据库节点创建数据表,包括:基于需要订阅的消息主题和消息报文的定义,所述第一数据库节点创建数据表,从而提高数据库的使用灵活性和兼容性。
在本公开的一个实施例中,所述解析出的与订阅操作相关的属性包括以下至少之一:第一消息分发服务的域名和/或地址和/或端口;需要订阅的消息主题;消息订阅的服务质量;第一消息分发服务所需的认证信息;消息报文的处理方式或数据结构。
在本公开的一个实施例中,指令还被至少一个处理器901执行以实现以下步骤:
所述第一数据库节点生成第一消息服务连接池,
其中,所述第一消息服务连接池保持与所述第一消息分发服务的多个连接;和/或
所述第一消息服务连接池保持与包括所述第一消息分发服务在内的多个消息分发服务的连接。
在本公开的一个实施例中,指令还被至少一个处理器901执行以实现以下步骤:
所述第一数据库节点向第二数据库节点发送建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知;
所述第二数据库节点响应于所述建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知向所述第一消息分发服务订阅所述第一消息;
所述第二数据库节点基于预设通信协议接收所述第一消息分发服务发送的所述第一消息并存储所述第一消息。
在本公开的一个实施例中,所述第一数据库节点和所述第二数据库节点属于同一数据库集群,其中,所述数据库代理接收第一命令并将所述第一命令传送到第一数据库节点,包括:
所述数据库代理接收第一命令并将所述第一命令传送到所述同一数据库集群中的任一数据库节点。
图10是适于用来实现根据本公开一实施方式的基于数据库的消息处理方法的计算机系统的结构示意图。
如图10所示,计算机系统1000包括处理单元1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(RAM)1003中的程序而执行上述附图所示的实施方式中的各种处理。在RAM1003中,还存储有系统1000操作所需的各种程序和数据。处理单元1001、ROM1002以及RAM1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
以下部件连接至I/O接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。其中,所述处理单元1001可实现为CPU、GPU、TPU、FPGA、NPU等处理单元。
特别地,根据本公开的实施方式,上文参考附图描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行附图中的方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。
附图中的流程图和框图,图示了按照本公开各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述节点中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (35)

1.一种基于数据库的消息处理方法,包括:
从数据库代理接收第一命令;
从所述第一命令解析出与订阅操作相关的属性;
根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息;
基于预设通信协议接收所述第一消息分发服务发送的所述第一消息并存储所述第一消息。
2.根据权利要求1所述的方法,所述数据库是基于请求/响应范式的数据库,并且所述预设通信协议是基于发布/订阅范式的通信协议。
3.根据权利要求1所述的方法,从所述第一消息分发服务接收的所述第一消息是所述第一消息分发服务从前端设备接收的第二消息中符合订阅要求的消息。
4.根据权利要求1至3任一项所述的方法,还包括:
创建系统表;
在所述系统表中存储所述解析出的与订阅操作相关的属性的元数据。
5.根据权利要求4所述的方法,还包括:
基于所述解析出的与订阅操作相关的属性中的至少一部分,创建数据表;
在所述数据表中存储所述第一消息。
6.根据权利要求5所述的方法,所述基于所述解析出的与订阅操作相关的属性中的至少一部分,创建数据表,包括:
基于需要订阅的消息主题和消息报文的定义,创建数据表。
7.根据权利要求4所述的方法,所述解析出的与订阅操作相关的属性包括以下至少之一:第一消息分发服务的域名和/或地址和/或端口;需要订阅的消息主题;消息订阅的服务质量;第一消息分发服务所需的认证信息;消息报文的处理方式或数据结构。
8.根据权利要求1至3任一项所述的方法,还包括:
生成第一消息服务连接池,
其中,通过第一消息服务连接池保持与所述第一消息分发服务的多个连接;和/或
通过所述第一消息服务连接池保持与包括所述第一消息分发服务的多个消息分发服务的连接。
9.根据权利要求1至3任一项所述的方法,在所述根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息之后,还包括:
向第二数据库节点发送建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知。
10.根据权利要求9所述的方法,执行所述方法的当前节点和所述第二数据库节点属于同一数据库集群。
11.一种基于数据库的消息处理方法,包括:
数据库代理接收第一命令并将所述第一命令传送到数据库中的第一数据库节点;
所述第一数据库节点从所述第一命令解析出与订阅操作相关的属性;
所述第一数据库节点根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息;
所述第一数据库节点基于预设通信协议接收所述第一消息分发服务发送的所述第一消息并存储所述第一消息。
12.根据权利要求11所述的方法,所述数据库是基于请求/响应范式的数据库,并且所述预设通信协议是基于发布/订阅范式的通信协议。
13.根据权利要求11所述的方法,在所述第一数据库节点基于预设通信协议接收所述第一消息分发服务发送的所述第一消息并存储所述第一消息之前,还包括:
所述第一消息分发服务接收前端设备发送的第二消息并将所述第二消息中的所述第一消息发送到所述第一数据库节点。
14.根据权利要求11至13任一项所述的方法,还包括:
所述第一数据库节点创建系统表;
所述第一数据库节点在所述系统表中存储所述解析出的与订阅操作相关的属性的元数据。
15.根据权利要求14所述的方法,还包括:
基于所述解析出的与订阅操作相关的属性中的至少一部分,所述第一数据库节点创建数据表;
所述第一数据库节点在所述数据表中存储所述第一消息。
16.根据权利要求15所述的方法,所述基于所述解析出的与订阅操作相关的属性中的至少一部分,所述第一数据库节点创建数据表,包括:
基于需要订阅的消息主题和消息报文的定义,所述第一数据库节点创建数据表。
17.根据权利要求14所述的方法,所述解析出的与订阅操作相关的属性包括以下至少之一:第一消息分发服务的域名和/或地址和/或端口;需要订阅的消息主题;消息订阅的服务质量;第一消息分发服务所需的认证信息;消息报文的处理方式或数据结构。
18.根据权利要求11至13任一项所述的方法,还包括:
所述第一数据库节点生成第一消息服务连接池,
其中,所述第一消息服务连接池保持与所述第一消息分发服务的多个连接;和/或
所述第一消息服务连接池保持与包括所述第一消息分发服务在内的多个消息分发服务的连接。
19.根据权利要求11至13任一项所述的方法,还包括:
所述第一数据库节点向第二数据库节点发送建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知;
所述第二数据库节点响应于所述建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知向所述第一消息分发服务订阅所述第一消息;
所述第二数据库节点基于预设通信协议接收所述第一消息分发服务发送的所述第一消息并存储所述第一消息。
20.根据权利要求19所述的方法,所述第一数据库节点和所述第二数据库节点属于同一数据库集群,其中,所述数据库代理接收第一命令并将所述第一命令传送到第一数据库节点,包括:
所述数据库代理接收第一命令并将所述第一命令传送到所述同一数据库集群中的任一数据库节点。
21.一种基于数据库的消息处理装置,包括:
第一命令接收模块,被配置为从数据库代理接收第一命令;
第一命令解析模块,被配置为从所述第一命令解析出与订阅操作相关的属性;
第一消息订阅模块,被配置为根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息;
第一消息接收存储模块,被配置为基于预设通信协议接收所述第一消息分发服务发送的所述第一消息并存储所述第一消息。
22.一种基于数据库的消息处理系统,包括数据库代理装置、数据库中的第一数据库节点和第一消息分发装置,其中,
所述数据库代理装置被配置为接收第一命令并将所述第一命令传送到数据库中的第一数据库节点,
其中,所述第一数据库节点被配置为:
从数据库代理接收第一命令;
从所述第一命令解析出与订阅操作相关的属性;
根据解析出的与订阅操作相关的属性,基于预设通信协议向所述第一消息分发装置订阅第一消息;
基于预设通信协议接收所述第一消息分发装置发送的所述第一消息并存储所述第一消息。
23.根据权利要求22所述的系统,所述数据库是基于请求/响应范式的数据库,并且所述预设通信协议是基于发布/订阅范式的通信协议。
24.根据权利要求22所述的系统,所述第一消息分发装置被配置为接收前端设备发送的第二消息,并响应于所述第一数据库节点订阅第一消息,将所述第二消息中的所述第一消息发送到所述第一数据库节点。
25.根据权利要求22至24任一项所述的系统,所述第一数据库节点还被配置为:
创建系统表;
在所述系统表中存储所述解析出的与订阅操作相关的属性的元数据。
26.根据权利要求25所述的系统,所述第一数据库节点还被配置为:
基于所述解析出的与订阅操作相关的属性中的至少一部分,创建数据表;
在所述数据表中存储所述第一消息。
27.根据权利要求26所述的系统,所述第一数据库节点还被配置为:
基于需要订阅的消息主题和消息报文的定义,创建数据表。
28.根据权利要求25所述的系统,所述解析出的与订阅操作相关的属性包括以下至少之一:第一消息分发装置的域名和/或地址和/或端口;需要订阅的消息主题;消息订阅的服务质量;第一消息分发装置所需的认证信息;消息报文的处理方式或数据结构。
29.根据权利要求22至24任一项所述的系统,所述第一数据库节点还被配置为:生成第一消息服务连接池,
其中,所述第一消息服务连接池保持与所述第一消息分发装置的多个连接;和/或
所述第一消息服务连接池保持与包括所述第一消息分发装置在内的多个消息分发装置的连接。
30.根据权利要求22至24任一项所述的系统,所述第一数据库节点还被配置为:
在所述根据解析出的与订阅操作相关的属性,基于预设通信协议向第一消息分发服务订阅第一消息之后,向第二数据库节点发送建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知。
31.根据权利要求30所述的系统,还包括:第二数据库节点,所述第二数据库节点被配置为:
响应于所述建立与所述第一消息分发服务的基于预设通信协议的连接并且以共享订阅方式订阅所述第一消息的通知向所述第一消息分发装置订阅所述第一消息;
基于预设通信协议接收所述第一消息分发装置发送的所述第一消息并存储所述第一消息。
32.根据权利要求31所述的系统,所述第一数据库节点和所述第二数据库节点属于同一消息处理装置集群,其中,所述数据库代理装置接收第一命令并将所述第一命令传送到第一数据库节点,包括:
所述数据库代理装置接收第一命令并将所述第一命令传送到所述同一消息处理装置集群中的任一消息处理装置。
33.一种基于数据库的消息订阅系统,包括消息提供设备、消息分发装置、数据库中的消息处理装置、数据库代理装置,其中,
所述消息提供设备被配置为向所述消息分发装置发送所述第一消息;
所述消息分发装置被配置为接收消息提供设备发送的第二消息,并响应于所述数据库中的消息处理装置订阅第一消息,将所述第二消息中的所述第一消息发送到所述数据库中的消息处理装置;
所述数据库代理装置被配置为接收第一命令并将所述第一命令传送到所述数据库中的消息处理装置;
所述数据库中的消息处理装置被配置为:
从数据库代理装置接收第一命令;
从所述第一命令解析出与订阅操作相关的属性;
根据解析出的与订阅操作相关的属性,基于预设通信协议向消息分发装置订阅第一消息;
基于预设通信协议接收所述消息分发装置发送的所述第一消息并存储所述第一消息。
34.一种电子设备,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如权利要求1-20任一项所述的方法。
35.一种可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现如权利要求1-20任一项所述的方法。
CN202010730056.8A 2020-07-27 2020-07-27 消息处理方法、装置、系统、电子设备及可读存储介质 Active CN113301088B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010730056.8A CN113301088B (zh) 2020-07-27 2020-07-27 消息处理方法、装置、系统、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010730056.8A CN113301088B (zh) 2020-07-27 2020-07-27 消息处理方法、装置、系统、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN113301088A true CN113301088A (zh) 2021-08-24
CN113301088B CN113301088B (zh) 2022-06-03

Family

ID=77318236

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010730056.8A Active CN113301088B (zh) 2020-07-27 2020-07-27 消息处理方法、装置、系统、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN113301088B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114547511A (zh) * 2022-04-27 2022-05-27 成都瑞华康源科技有限公司 基于物联网mqtt协议的系统数据字典使用方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140229504A1 (en) * 2013-02-12 2014-08-14 Samsung Techwin Co., Ltd. System and method for managing database in data distribution service
CN107113341A (zh) * 2015-01-16 2017-08-29 华为技术有限公司 用于数据划分的分布式关系数据库管理系统中事务的高吞吐量处理的系统
CN109413043A (zh) * 2018-09-25 2019-03-01 聚好看科技股份有限公司 实现数据库动态配置的方法及装置、电子设备、存储介质
CN110336736A (zh) * 2019-05-27 2019-10-15 四川长虹电器股份有限公司 基于mqtt服务器集群实现共享订阅的方法
CN110557423A (zh) * 2018-06-04 2019-12-10 珠海全志科技股份有限公司 一种消息推送方法及系统
CN110574342A (zh) * 2017-05-02 2019-12-13 西门子股份公司 运行自动化网络的方法、自动化网络和计算机程序产品
CN111212135A (zh) * 2019-12-31 2020-05-29 北京金山云网络技术有限公司 消息订阅方法、装置、系统、电子设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140229504A1 (en) * 2013-02-12 2014-08-14 Samsung Techwin Co., Ltd. System and method for managing database in data distribution service
CN107113341A (zh) * 2015-01-16 2017-08-29 华为技术有限公司 用于数据划分的分布式关系数据库管理系统中事务的高吞吐量处理的系统
CN110574342A (zh) * 2017-05-02 2019-12-13 西门子股份公司 运行自动化网络的方法、自动化网络和计算机程序产品
CN110557423A (zh) * 2018-06-04 2019-12-10 珠海全志科技股份有限公司 一种消息推送方法及系统
CN109413043A (zh) * 2018-09-25 2019-03-01 聚好看科技股份有限公司 实现数据库动态配置的方法及装置、电子设备、存储介质
CN110336736A (zh) * 2019-05-27 2019-10-15 四川长虹电器股份有限公司 基于mqtt服务器集群实现共享订阅的方法
CN111212135A (zh) * 2019-12-31 2020-05-29 北京金山云网络技术有限公司 消息订阅方法、装置、系统、电子设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘芳,陈义明: "一种面向大数据分析的物联网平台架构", 《电脑知识与技术》 *
邢少波,张龙信,赵玉来,满君丰,周立前: "基于Hadoop 的鼓风机工业数据处理和存储系统", 《湖 南 工 业 大 学 学 报》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114547511A (zh) * 2022-04-27 2022-05-27 成都瑞华康源科技有限公司 基于物联网mqtt协议的系统数据字典使用方法及系统

Also Published As

Publication number Publication date
CN113301088B (zh) 2022-06-03

Similar Documents

Publication Publication Date Title
US10367852B2 (en) Multiplexed demand signaled distributed messaging
US20070061282A1 (en) Data network information distribution
US20190132276A1 (en) Unified event processing for data/event exchanges with existing systems
EP2141645A1 (en) Method and apparatus for distributed application context-aware transaction processing
US7836123B2 (en) System and method for non-HTTP session based publish/subscribe support using pre-emptive subscriptions
US6167451A (en) Multiple push protocol unifying system
CN108390950A (zh) 一种消息推送方法、装置及设备
EP3817338B1 (en) Method and apparatus for acquiring rpc member information, electronic device and storage medium
CN113391979A (zh) 监控数据展示的处理方法、设备、系统及存储介质
CN109151056B (zh) 基于Canal的消息推送方法和系统
US6442596B1 (en) Shared data views for large-scale multimode environments
CN113301088B (zh) 消息处理方法、装置、系统、电子设备及可读存储介质
CN113067865A (zh) 航天测控数据实时交互方法和装置
CN110545324B (zh) 数据处理方法、装置、系统、网络设备和存储介质
CN111917838A (zh) 基于微服务的处理方法及装置、存储介质、电子装置
CN111711675A (zh) 一种针对局域网内并发消息传递的解决方法
CN117194039A (zh) K8s驱动集成系统、请求处理方法、设备及存储介质
CN113472598B (zh) 云服务方法、电子设备和计算机可读存储介质
US20140215011A1 (en) Message exchange via generic tlv generator and parser
US10320663B2 (en) Communication device, communication system, and computer program product for performing interactive communication via relay servers
CN115695512A (zh) 基于微服务架构的数据订阅方法、系统、设备和存储介质
CN112559472B (zh) 一种文件传输方法、装置、计算机设备及存储介质
CN112073487B (zh) 信令发送、信令展示方法、装置、电子设备及存储介质
JP2002318722A (ja) サーバシステム,クライアントシステムおよび差分更新システムならびに差分更新プログラム
US6678742B1 (en) Object-oriented computer system and computer-readable storage medium which stores program

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40057840

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant