CN114827171A - 信息同步方法、装置、计算机设备和存储介质 - Google Patents

信息同步方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN114827171A
CN114827171A CN202210287295.XA CN202210287295A CN114827171A CN 114827171 A CN114827171 A CN 114827171A CN 202210287295 A CN202210287295 A CN 202210287295A CN 114827171 A CN114827171 A CN 114827171A
Authority
CN
China
Prior art keywords
database instance
state information
service
database
client
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
CN202210287295.XA
Other languages
English (en)
Other versions
CN114827171B (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.)
Qingdao Zhongke Shuguang Technology Service Co ltd
Original Assignee
Qingdao Zhongke Shuguang Technology Service Co 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 Qingdao Zhongke Shuguang Technology Service Co ltd filed Critical Qingdao Zhongke Shuguang Technology Service Co ltd
Priority to CN202210287295.XA priority Critical patent/CN114827171B/zh
Publication of CN114827171A publication Critical patent/CN114827171A/zh
Application granted granted Critical
Publication of CN114827171B publication Critical patent/CN114827171B/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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种信息同步方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:当业务层中的目标业务节点消费消息队列中的数据库实例状态信息时,通过所述目标业务节点将所述数据库实例状态信息发布至远程字典数据库redis中;所述数据库实例状态信息为服务层监控到的发生变化的数据库实例状态信息;基于所述业务层的各业务节点与所述redis间预置的订阅关系,将所述redis中存储的所述数据库实例状态信息发布至所述各业务节点;基于各业务节点与客户端间的长连接关系,将所述数据库实例状态信息发送至对应的客户端。采用本方法实现了服务层与客户端间数据库实例状态信息的高效同步。

Description

信息同步方法、装置、计算机设备和存储介质
技术领域
本申请涉及互联网技术领域,特别是涉及一种信息同步方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
在业务***中,当服务层创建数据库实例时,需要将创建数据库实例产生的状态信息与客户端间进行信息同步,以保证用户获知当前服务层运行状态。
目前的服务层与客户端间的信息同步方法,主要在单节点部署的业务***中实施,即服务层与单节点业务层以及单一客户端之间建立唯一的长连接关系,进而,基于该唯一的长连接关系,服务层将创建数据库实例产生的状态信息经过单一业务节点(业务层)推送至对应唯一的客户端,完成本次长连接的数据消息传输。
然而,目前的业务***多采用集群部署形式,包含多个业务节点以及多个客户端,因此,每一客户端仅能在多个业务节点中选择一个进行长连接创建。当服务层将数据信息推送至业务层中某一业务节点时,则未与该业务节点建立连接的客户端则无法接收到数据库实例的状态信息,从而无法保证服务层与全部客户端间的消息同步。
发明内容
基于此,有必要针对上述技术问题,提供一种信息同步方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种信息同步方法。所述方法包括:
当业务层中的目标业务节点消费消息队列中的数据库实例状态信息时,通过所述目标业务节点将所述数据库实例状态信息发布至远程字典数据库redis中;所述数据库实例状态信息为服务层监控到的发生变化的数据库实例状态信息;
基于所述业务层的各业务节点与所述redis间预置的订阅关系,将所述redis中存储的所述数据库实例状态信息发布至所述各业务节点;
基于各业务节点与客户端间的长连接关系,将所述数据库实例状态信息发送至对应的客户端。
采用本方法,通过消息队列这一传输中间件实现数据库实例状态信息的异步传输处理,增强消息传输的稳定性,进而,根据redis的订阅发布机制,将某一业务节点消费的数据库实例状态信息同步到业务层其他业务节点,通过各业务节点与客户端间的长连接关系,实现了服务层与客户端间数据库实例状态信息的高效同步。
在其中一个实施例中,所述当业务层中的目标业务节点消费消息队列中的数据库实例状态信息时,通过所述目标业务节点将所述数据库实例状态信息发布至远程字典数据库redis中之前,所述方法还包括:
响应于客户端发送的长连接创建请求,通过代理服务器反向代理,将所述长连接创建请求发送至业务层的各业务节点;所述长连接创建请求中携带客户端对应的客户端标识信息;
建立所述各业务节点与所述客户端间的长连接关系,以用于向所述客户端推送数据库实例状态信息。
本实施例中,通过客户端与业务节点之间预先建立长连接关系,保证服务层、业务层与客户端之间形成传输通路,进而,能够满足服务层实时向客户端推送数据库实例状态信息,提高数据库实例状态信息的传输效率。
在其中一个实施例中,所述当业务层中的目标业务节点消费消息队列中的数据库实例状态信息时,通过所述目标业务节点将所述数据库实例状态信息发布至远程字典数据库redis中之前,所述方法还包括:
通过服务层监控业务层数据库中各数据库实例的运行状态;
若所述业务层数据库中存在目标数据库实例的运行状态发生变化,则通过所述服务层将变化后的所述目标数据库实例的数据库实例状态信息发送给预先创建的消息队列;
通过所述消息队列接收并存储所述数据库实例状态信息。
本实施例中,通过服务层对业务层数据库中存储的各数据库实例的运行状态进行监控,使得若数据库中记录的某一数据库实例的运行状态发生变化,则服务层可以及时感知,并将变化后的数据库实例的状态信息及时更新并推送至信息传输的中间件(消息队列)中进行异步处理,提高了数据库实例状态信息的传输及时性。
在其中一个实施例中,所述通过服务层监控业务层数据库中各数据库实例的运行状态之前,所述方法还包括:
响应于客户端发送的数据库实例的创建请求,根据所述数据库实例的创建请求中携带的配置参数信息,创建数据库实例;
将创建完成的所述数据库实例存储至业务层数据库。
本实施例中,客户端向业务层的业务节点发送数据库实例创建请求,在业务***中的业务层完成了对数据库实例的创建。
在其中一个实施例中,所述将所述redis中存储的所述数据库实例状态信息发布至所述各业务节点,包括:
在所述redis中查询并确定预先订阅目标传输频道的客户端标识;
根据所述客户端标识,通过所述目标传输频道向所述客户端标识对应的客户端发布数据库实例状态信息。
本申请实施例中,通过redis数据库的订阅发布机制,实现将某一业务节点消费的数据库实例状态信息经过redis的订阅发布处理,同步给业务层中其他各业务节点,解决了不同客户端与业务层中对应不同的业务节点间进行长连接后,都可以接收到该数据库实例状态信息,实现了集群部署情况下,服务层与多客户端之间的信息同步。
第二方面,本申请还提供了一种信息同步装置。所述装置包括:
消费传输模块,用于当业务层中的目标业务节点消费消息队列中的数据库实例状态信息时,通过所述目标业务节点将所述数据库实例状态信息发布至远程字典数据库redis中;所述数据库实例状态信息为服务层监控到的发生变化的数据库实例状态信息;
发布模块,用于基于所述业务层的各业务节点与所述redis间预置的订阅关系,将所述redis中存储的所述数据库实例状态信息发布至所述各业务节点;
发送模块,用于基于各业务节点与客户端间的长连接关系,将所述数据库实例状态信息发送至对应的客户端。
采用本装置,通过消息队列这一传输中间件实现数据库实例状态信息的异步传输处理,增强消息传输的稳定性,进而,根据redis的订阅发布机制,将某一业务节点消费的数据库实例状态信息同步到业务层其他业务节点,通过各业务节点与客户端间的长连接关系,实现了服务层与客户端间数据库实例状态信息的高效同步。
第三方面,本申请还提供了一种信息同步***。所述***包括:
服务层,用于监控业务层中各数据库实例运行状态是否发生变化;若存在目标数据库实例的运行状态发生变化,则将变化后的所述目标数据库实例的状态信息发送至预先创建的消息队列中;
所述业务层,用于当所述业务层中的目标业务节点消费所述消息队列中的所述数据库实例状态信息时,通过所述目标业务节点将所述数据库实例状态信息发布至远程字典数据库redis中;基于所述业务层的各业务节点与所述redis间预置的订阅关系,将所述redis中存储的所述数据库实例状态信息发布至所述各业务节点;基于业务节点与客户端间的长连接关系,将所述数据库实例状态信息发送至对应的客户端;
所述客户端,用于创建数据库实例以及接收所述业务层中所述各业务节点推送的数据库实例状态信息。
采用本***,通过消息队列这一传输中间件实现数据库实例状态信息的异步传输处理,增强消息传输的稳定性,进而,根据redis的订阅发布机制,将某一业务节点消费的数据库实例状态信息同步到业务层其他业务节点,通过各业务节点与客户端间的长连接关系,实现了服务层与客户端间数据库实例状态信息的高效同步。
第四方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
当业务层中的目标业务节点消费消息队列中的数据库实例状态信息时,通过所述目标业务节点将所述数据库实例状态信息发布至远程字典数据库redis中;所述数据库实例状态信息为服务层监控到的发生变化的数据库实例状态信息;
基于所述业务层的各业务节点与所述redis间预置的订阅关系,将所述redis中存储的所述数据库实例状态信息发布至所述各业务节点;
基于各业务节点与客户端间的长连接关系,将所述数据库实例状态信息发送至对应的客户端。
第五方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
当业务层中的目标业务节点消费消息队列中的数据库实例状态信息时,通过所述目标业务节点将所述数据库实例状态信息发布至远程字典数据库redis中;所述数据库实例状态信息为服务层监控到的发生变化的数据库实例状态信息;
基于所述业务层的各业务节点与所述redis间预置的订阅关系,将所述redis中存储的所述数据库实例状态信息发布至所述各业务节点;
基于各业务节点与客户端间的长连接关系,将所述数据库实例状态信息发送至对应的客户端。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
当业务层中的目标业务节点消费消息队列中的数据库实例状态信息时,通过所述目标业务节点将所述数据库实例状态信息发布至远程字典数据库redis中;所述数据库实例状态信息为服务层监控到的发生变化的数据库实例状态信息;
基于所述业务层的各业务节点与所述redis间预置的订阅关系,将所述redis中存储的所述数据库实例状态信息发布至所述各业务节点;
基于各业务节点与客户端间的长连接关系,将所述数据库实例状态信息发送至对应的客户端。
上述信息同步方法、装置、计算机设备、存储介质和计算机程序产品,当业务层中的目标业务节点消费消息队列中的数据库实例状态信息时,通过所述目标业务节点将所述数据库实例状态信息发布至远程字典数据库redis中;所述数据库实例状态信息为服务层监控到的发生变化的数据库实例状态信息;基于所述业务层的各业务节点与所述redis间预置的订阅关系,将所述redis中存储的所述数据库实例状态信息发布至所述各业务节点;基于各业务节点与客户端间的长连接关系,将所述数据库实例状态信息发送至对应的客户端。采用本方法,通过消息队列这一传输中间件实现数据库实例状态信息的异步传输处理,增强消息传输的稳定性,进而,根据redis的订阅发布机制,将某一业务节点消费的数据库实例状态信息同步到业务层其他业务节点,通过各业务节点与客户端间的长连接关系,实现了服务层与客户端间数据库实例状态信息的高效同步。
附图说明
图1为一个实施例中信息同步方法的应用环境图;
图2为一个实施例中信息同步方法的流程示意图;
图3为一个实施例中长连接关系创建步骤的流程示意图;
图4为一个实施例中服务层监控数据库实例状态信息步骤的流程示意图;
图5为一个实施例中数据库实例创建步骤的流程示意图;
图6为一个实施例中业务层与客户端间数据库实例状态信息推送步骤的流程示意图;
图7为一个实施例中信息同步装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的信息同步方法,可以应用于如图1所示的业务***100中。其中,客户端106通过网络与业务层104进行通信。数据存储***(即业务层数据库)可以存储业务层104需要的数据。数据存储***可以集成在业务层104的某一业务节点上,也可以放在云上或其他网络服务器上。具体地,业务***中,当业务层104中的目标业务节点消费消息队列中的数据库实例状态信息时,通过目标业务节点将数据库实例状态信息发布至远程字典数据库redis中。其中,数据库实例状态信息为服务层102监控到的发生变化的数据库实例状态信息。然后,基于业务层104的各业务节点与redis间预置的订阅关系,将redis中存储的数据库实例状态信息发布至各业务节点。最后,基于各业务节点与客户端106间的长连接关系,业务层104将数据库实例状态信息发送至对应的客户端106。
在一个实施例中,如图2所示,提供了一种信息同步方法,以该方法应用于图1中的业务***为例进行说明,包括以下步骤:
步骤202,当业务层中的目标业务节点消费消息队列中的数据库实例状态信息时,通过目标业务节点将数据库实例状态信息发布至远程字典数据库redis中。
其中,数据库实例状态信息为服务层监控到的发生变化的数据库实例状态信息;
在实施中,业务***的业务层采用集群部署方式,包含多个业务节点,每一业务节点预先与消费队列间建立订阅关系,即设定每一个业务节点均保持与消息队列同处于一个topic。在进行数据消费传输时,基于优先原则,消息队列中包含的各数据库实例状态信息每次只能被最先的业务节点进行消费,其他业务节点则无法获知该数据库实例状态信息,因此,当业务层中某一目标业务节点(即最先消费数据库实例状态信息的业务节点)消费消息队列中的数据库实例状态信息时,业务***将数据库实例状态信息发布到远程字典数据库redis(Remote Dictionary Server)中。
步骤204,基于业务层的各业务节点与redis间预置的订阅关系,将redis中存储的数据库实例状态信息发布至各业务节点。
在实施中,业务层中各业务节点与redis预先配置有订阅关系,即业务层中各业务节点与redis均保持在rdsRedisTopic频道,进而,当redis接收到消息队列传输的数据库实例状态信息时,redis将该信息再发布至业务层全部的业务节点,以使业务层中各业务节点全部获知该数据库实例状态信息。
步骤206,基于各业务节点与客户端间的长连接关系,将数据库实例状态信息发送至对应的客户端。
在实施中,客户端与业务层的业务节点间预先建立有长连接关系,其中,每一客户端被配置建立有长连接关系的业务节点并不是固定的,可以通过代理服务器进行反向代理,将多个客户端按照负载均衡的标准,调配与不同的业务节点确定长连接关系。当各客户端与业务节点建立好长连接关系之后,基于各业务节点间已同步的数据库实例状态信息,将接收到的数据库实例状态信息发送至已建立长连接的客户端。
上述信息同步方法中,业务***中,当业务层中的目标业务节点消费消息队列中的数据库实例状态信息时,通过目标业务节点将数据库实例状态信息发布至远程字典数据库redis中;然后,基于业务层的各业务节点与redis间预置的订阅关系,redis数据库将redis中存储的数据库实例状态信息发布至各业务节点。最后,基于各业务节点与客户端间的长连接关系,业务层将数据库实例状态信息发送至对应的客户端。采用本方法,通过消息队列这一传输中间件实现数据库实例状态信息的异步传输处理,增强消息传输的稳定性,进而,根据redis的订阅发布机制,将某一业务节点消费的数据库实例状态信息同步到业务层其他业务节点,通过各业务节点与客户端间的长连接关系,实现了服务层与客户端间数据库实例状态信息的高效同步。
在一个实施例中,如图3所示,在步骤102之前,该方法还包括:
步骤302,响应于客户端发送的长连接创建请求,通过代理服务器反向代理,将长连接创建请求发送至业务层的各业务节点。
其中,长连接创建请求中携带客户端对应的客户端标识信息。
在实施中,在业务***中,为了实现客户端与服务层间的数据信息的同步,采用websocket的方式实现信息传输,客户端首先发送websocket长连接创建请求。业务层中的各业务节点响应于客户端发送的长连接请求,通过代理服务器反向代理,将长连接创建请求发送至业务层的目标业务节点。其中,代理服务器可以为nginx服务器、Squid服务器、Varnish服务器、Apache TS服务器以及HAProxy服务器等,本申请实施例不做限定。
具体地,WebSocket传输形式允许服务端主动向客户端推送数据。在WebSocketAPI中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接(即长连接),并进行双向数据传输,因此,在websocket方法中,客户端预先与业务***中的业务层中的各业务节点建立长连接关系的,在通过业务节点与服务层间建立长连接关系,即可实现服务层至客户端之间信息的传输通路。故而,当多客户端同步发起长连接创建请求时,基于预先部署的代理服务器对多个长连接创建请求进行反向代理,按照负载均衡的标准,将多个长连接创建请求分配至业务层的各业务节点上,以使各业务节点响应于该长连接创建请求,进行长连接关系创建。
步骤304,建立各业务节点与客户端间的长连接关系,以用于向客户端推送数据库实例状态信息。
在实施中,各业务节点在接收到客户端发送的长连接创建请求后,响应于该长连接创建请求,基于客户端标识建立自身节点与对应客户端之间的长连接关系,以用于向客户端推送数据库实例状态信息。
本实施例中,通过客户端与业务节点之间预先建立长连接关系,保证服务层、业务层与客户端之间形成传输通路,进而,能够满足服务层实时向客户端推送数据库实例状态信息,提高数据库实例状态信息的传输效率。
在一个实施例中,如图4所示,在步骤102之前,该方法还包括:
步骤402,通过服务层监控业务层数据库中各数据库实例的运行状态。
在实施中,业务***中,数据库实例的配置信息以及运行状态信息等均存储于业务层的数据库中,业务***通过服务层监控业务层数据库中存储的各数据库实例的运行状态,检测其是否发生运行状态的更新,例如,某一数据库实例的运行状态信息由停止变化为运行中。
步骤404,若业务层数据库中存在目标数据库实例的运行状态发生变化,则通过服务层将变化后的目标数据库实例的数据库实例状态信息发送给预先创建的消息队列。
在实施中,若服务层监控到业务层数据库中存在目标数据库实例的运行状态发生变化,则服务层将变化后的目标数据库实例的数据库实例状态信息发送给预先创建的消息队列(例如,RabbitMQ)。
其中,消息队列是业务***的服务层与业务层之间预先部署的中间件,通过该消息队列实现异步传输服务层与业务层之间的数据库实例状态信息。
步骤406,通过消息队列接收并存储数据库实例状态信息。
在实施中,业务***通过服务层将该目标数据库实例(即发生运行状态变化的数据库实例)变化后的数据库实例状态信息发送至预先创建的消息队列中。其中,该消息队列可以为RabbitMQ消息队列,该RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件),通过该RabbitMQ消息队列,实现服务层与业务层间消息的异步传输。
本实施例中,通过服务层对业务层数据库中存储的各数据库实例的运行状态进行监控,使得若数据库中记录的某一数据库实例的运行状态发生变化,则服务层可以及时感知,并将变化后的数据库实例的状态信息及时更新并推送至信息传输的中间件(消息队列)中进行异步处理,提高了数据库实例状态信息的传输及时性。
在一个实施例中,如图5所示,在步骤402之前,该方法还包括:
步骤502,响应于客户端发送的数据库实例的创建请求,根据数据库实例的创建请求中携带的配置参数信息,创建数据库实例。
其中,数据库实例的创建请求中携带配置参数信息。
在实施中,用户基于实际业务需求,通过客户端向业务层发送数据库实例的创建请求,该数据库实例的创建请求中携带有待创建的数据库实例创建所需的配置参数信息。然后,业务层中接收到创建请求的业务节点,根据创建请求中携带的配置参数信息,创建对应的数据库实例。
可选的,由于客户端与业务层中的业务节点建立有长连接关系,并非固定为一对一的对应关系,而可以是多对一的对应关系,即多个客户端均可以与同一业务节点间建立长连接关系。因此,当客户端向对应的业务节点发送数据库实例的创建请求时,该创建请求中还携带有客户端的客户端标识。
步骤504,将创建完成的数据库实例存储至业务层数据库。
在实施中,业务节点将创建完成的数据库实例存储至业务层数据库。其中,该业务层数据库中可以记录客户端标识,数据库实例、该数据库实例当前运行状态等,本申请实施例对于业务层的数据库中包含的数据库实例信息不做限定。
可选的,用户基于业务***提供给客户端的显示页面,还可以对各数据库实例进行删除、启停等操作,本申请实施例不限定数据库实例的配置处理。
本实施例中,客户端向业务层的业务节点发送数据库实例创建请求,在业务***中的业务层完成了对数据库实例的创建。
在一个实施例中,如图6所示,步骤106中的将redis中存储的数据库实例状态信息发布至各业务节点的具体处理过程包括如下步骤:
步骤602,在redis中查询并确定预先订阅目标传输频道的客户端标识。
在实施中,redis数据库中存在订阅发布机制,该发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。因此,当目标业务节点将数据库实例状态信息发送至redis中后,基于各业务节点与redis的预先订阅关系,redis查询并确定每一订阅关系中的目标传输频道以及对应的客户端标识。
例如,本申请中为了保持redis数据库与各业务节点间的订阅传输关系,可以设置将redis数据库与各业务节点间同处于rdsRedisTopic频道(目标传输频道),通过该频道实现数据库实例状态信息的推送,对此本申请实施例不做限定。
步骤604,根据客户端标识,通过目标传输频道向客户端标识对应的客户端发布数据库实例状态信息。
在实施中,redis根据查询确定出的客户端标识,通过目标传输频道向客户端标识对应的客户端发布数据库实例状态信息。
本申请实施例中,通过redis数据库的订阅发布机制,实现将某一业务节点消费的数据库实例状态信息经过redis的订阅发布处理,同步给业务层中其他各业务节点,解决了不同客户端与业务层中对应不同的业务节点间进行长连接后,都可以接收到该数据库实例状态信息,实现了集群部署情况下,服务层与多客户端之间的信息同步。
在一个实施例中,步骤108的具体处理过程包括如下步骤:
根据预先创建的业务节点与客户端间的长连接关系,通过业务层的各业务节点,将数据库实例状态信息推送至对应的客户端。
在实施中,业务层中各业务节点根据与客户端预先创建的长连接关系,将redis发布的数据库实例状态信息推送给对应的客户端,以使客户端将更新后的数据库实例状态信息及时反馈至用户。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的信息同步方法的信息同步装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个信息同步装置实施例中的具体限定可以参见上文中对于信息同步方法的限定,在此不再赘述。
在一个实施例中,如图7所示,提供了一种信息同步装置700,包括:消费传输模块710、发布模块720和发送模块730,其中:
消费传输模块710,用于当业务层中的目标业务节点消费消息队列中的数据库实例状态信息时,通过目标业务节点将数据库实例状态信息发布至远程字典数据库redis中;数据库实例状态信息为服务层监控到的发生变化的数据库实例状态信息;
发布模块720,用于基于业务层的各业务节点与redis间预置的订阅关系,将redis中存储的数据库实例状态信息发布至各业务节点;
发送模块730,用于基于各业务节点与客户端间的长连接关系,将数据库实例状态信息发送至对应的客户端。
采用本装置,通过消息队列这一传输中间件实现数据库实例状态信息的异步传输处理,增强消息传输的稳定性,进而,根据redis的订阅发布机制,将某一业务节点消费的数据库实例状态信息同步到业务层其他业务节点,通过各业务节点与客户端间的长连接关系,实现了服务层与客户端间数据库实例状态信息的高效同步。
在一个实施例中,该装置700还包括:
请求模块,用于响应于客户端发送的长连接创建请求,通过代理服务器反向代理,将所述长连接创建请求发送至业务层的各业务节点;所述长连接创建请求中携带客户端对应的客户端标识信息;
创建模块,用于建立所述各业务节点与所述客户端间的长连接关系,以用于向所述客户端推送数据库实例状态信息。
在一个实施例中,该装置700还包括:
监控模块,用于通过服务层监控业务层数据库中各数据库实例的运行状态;
传输模块,用于若所述业务层数据库中存在目标数据库实例的运行状态发生变化,则通过所述服务层将变化后的所述目标数据库实例的数据库实例状态信息发送给预先创建的消息队列;
存储模块,用于通过所述消息队列接收并存储所述数据库实例状态信息。
在一个实施例中,该装置700还包括:
创建模块,用于响应于客户端发送的数据库实例的创建请求,根据所述数据库实例的创建请求中携带的配置参数信息,创建数据库实例;
存储模块,用于将创建完成的所述数据库实例存储至业务层数据库。
在一个实施例中,该装置700还包括:
确定模块,用于在所述redis中查询并确定预先订阅目标传输频道的客户端标识;
发布模块,用于根据所述客户端标识,通过所述目标传输频道向所述客户端标识对应的客户端发布数据库实例状态信息。
上述信息同步装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,如图1所示,提供了一种信息同步***100,该***100包括:
服务层102,用于监控业务层中各数据库实例运行状态是否发生变化;若存在目标数据库实例的运行状态发生变化,则将变化后的目标数据库实例的状态信息发送至预先创建的消息队列中;
业务层104,用于当业务层中的目标业务节点消费消息队列中的数据库实例状态信息时,通过目标业务节点将数据库实例状态信息发布至远程字典数据库redis中;基于业务层的各业务节点与redis间预置的订阅关系,将redis中存储的数据库实例状态信息发布至各业务节点;基于业务节点与客户端间的长连接关系,将数据库实例状态信息发送至对应的客户端;
客户端106,用于创建数据库实例以及接收业务层中各业务节点推送的数据库实例状态信息。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过***总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种信息同步方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
当业务层中的目标业务节点消费消息队列中的数据库实例状态信息时,通过目标业务节点将数据库实例状态信息发布至远程字典数据库redis中;数据库实例状态信息为服务层监控到的发生变化的数据库实例状态信息;
基于业务层的各业务节点与redis间预置的订阅关系,将redis中存储的数据库实例状态信息发布至各业务节点;
基于各业务节点与客户端间的长连接关系,将数据库实例状态信息发送至对应的客户端。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
响应于客户端发送的长连接创建请求,通过代理服务器反向代理,将长连接创建请求发送至业务层的各业务节点;长连接创建请求中携带客户端对应的客户端标识信息;
建立各业务节点与客户端间的长连接关系,以用于向客户端推送数据库实例状态信息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
通过服务层监控业务层数据库中各数据库实例的运行状态;
若业务层数据库中存在目标数据库实例的运行状态发生变化,则通过服务层将变化后的目标数据库实例的数据库实例状态信息发送给预先创建的消息队列;
通过消息队列接收并存储数据库实例状态信息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
响应于客户端发送的数据库实例的创建请求,根据数据库实例的创建请求中携带的配置参数信息,创建数据库实例;
将创建完成的数据库实例存储至业务层数据库。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
在redis中查询并确定预先订阅目标传输频道的客户端标识;
根据客户端标识,通过目标传输频道向客户端标识对应的客户端发布数据库实例状态信息。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种信息同步方法,其特征在于,所述方法包括:
当业务层中的目标业务节点消费消息队列中的数据库实例状态信息时,通过所述目标业务节点将所述数据库实例状态信息发布至远程字典数据库redis中;所述数据库实例状态信息为服务层监控到的发生变化的数据库实例状态信息;
基于所述业务层的各业务节点与所述redis间预置的订阅关系,将所述redis中存储的所述数据库实例状态信息发布至所述各业务节点;
基于各业务节点与客户端间的长连接关系,将所述数据库实例状态信息发送至对应的客户端。
2.根据权利要求1所述的方法,其特征在于,所述当业务层中的目标业务节点消费消息队列中的数据库实例状态信息时,通过所述目标业务节点将所述数据库实例状态信息发布至远程字典数据库redis中之前,所述方法还包括:
响应于客户端发送的长连接创建请求,通过代理服务器反向代理,将所述长连接创建请求发送至业务层的各业务节点;所述长连接创建请求中携带客户端对应的客户端标识信息;
建立所述各业务节点与所述客户端间的长连接关系,以用于向所述客户端推送数据库实例状态信息。
3.根据权利要求1所述的方法,其特征在于,所述当业务层中的目标业务节点消费消息队列中的数据库实例状态信息时,通过所述目标业务节点将所述数据库实例状态信息发布至远程字典数据库redis中之前,所述方法还包括:
通过服务层监控业务层数据库中各数据库实例的运行状态;
若所述业务层数据库中存在目标数据库实例的运行状态发生变化,则通过所述服务层将变化后的所述目标数据库实例的数据库实例状态信息发送给预先创建的消息队列;
通过所述消息队列接收并存储所述数据库实例状态信息。
4.根据权利要求3所述的方法,其特征在于,所述通过服务层监控业务层数据库中各数据库实例的运行状态之前,所述方法还包括:
响应于客户端发送的数据库实例的创建请求,根据所述数据库实例的创建请求中携带的配置参数信息,创建数据库实例;
将创建完成的所述数据库实例存储至业务层数据库。
5.根据权利要求1所述的方法,其特征在于,所述将所述redis中存储的所述数据库实例状态信息发布至所述各业务节点,包括:
在所述redis中查询并确定预先订阅目标传输频道的客户端标识;
根据所述客户端标识,通过所述目标传输频道向所述客户端标识对应的客户端发布数据库实例状态信息。
6.一种信息同步装置,其特征在于,所述装置包括:
消费传输模块,用于当业务层中的目标业务节点消费消息队列中的数据库实例状态信息时,通过所述目标业务节点将所述数据库实例状态信息发布至远程字典数据库redis中;所述数据库实例状态信息为服务层监控到的发生变化的数据库实例状态信息;
发布模块,用于基于所述业务层的各业务节点与所述redis间预置的订阅关系,将所述redis中存储的所述数据库实例状态信息发布至所述各业务节点;
发送模块,用于基于各业务节点与客户端间的长连接关系,将所述数据库实例状态信息发送至对应的客户端。
7.一种信息同步***,其特征在于,所述***包括:
服务层,用于监控业务层中各数据库实例运行状态是否发生变化;若存在目标数据库实例的运行状态发生变化,则将变化后的所述目标数据库实例的状态信息发送至预先创建的消息队列中;
所述业务层,用于当所述业务层中的目标业务节点消费所述消息队列中的所述数据库实例状态信息时,通过所述目标业务节点将所述数据库实例状态信息发布至远程字典数据库redis中;基于所述业务层的各业务节点与所述redis间预置的订阅关系,将所述redis中存储的所述数据库实例状态信息发布至所述各业务节点;基于业务节点与客户端间的长连接关系,将所述数据库实例状态信息发送至对应的客户端;
所述客户端,用于创建数据库实例以及接收所述业务层中所述各业务节点推送的数据库实例状态信息。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
CN202210287295.XA 2022-03-23 2022-03-23 信息同步方法、装置、计算机设备和存储介质 Active CN114827171B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210287295.XA CN114827171B (zh) 2022-03-23 2022-03-23 信息同步方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210287295.XA CN114827171B (zh) 2022-03-23 2022-03-23 信息同步方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN114827171A true CN114827171A (zh) 2022-07-29
CN114827171B CN114827171B (zh) 2023-12-15

Family

ID=82531294

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210287295.XA Active CN114827171B (zh) 2022-03-23 2022-03-23 信息同步方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN114827171B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115292097A (zh) * 2022-08-22 2022-11-04 广州鼎甲计算机科技有限公司 数据库实例创建方法、装置、设备、存储介质和程序产品
CN117271152A (zh) * 2023-09-04 2023-12-22 中电金信软件有限公司 应用实例信息的注册和查询方法

Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080177857A1 (en) * 2007-01-19 2008-07-24 International Business Machines Corporation Autonomic optimization of presence server performance
CN104408132A (zh) * 2014-11-28 2015-03-11 北京京东尚科信息技术有限公司 数据推送方法和***
CN104935658A (zh) * 2015-06-17 2015-09-23 交通银行股份有限公司 一种银行任务分配方法及装置
CN106657394A (zh) * 2017-02-10 2017-05-10 山东浪潮商用***有限公司 一种基于物联网大数据的设备信息采集***及方法
CN107026917A (zh) * 2017-06-16 2017-08-08 智者四海(北京)技术有限公司 用于消息推送的方法及***
US20180019985A1 (en) * 2016-07-18 2018-01-18 Fugue, Inc. Distributed key/value store system using asynchronous messaging systems
US20180176122A1 (en) * 2016-12-20 2018-06-21 Striim, Inc. Data Stream Processor with Both in Memory and Persisted Messaging
CN108197263A (zh) * 2017-12-30 2018-06-22 苏州精易会信息技术有限公司 数据同步方法
WO2020062793A1 (zh) * 2018-09-29 2020-04-02 平安科技(深圳)有限公司 基于消息队列的请求处理方法、装置、设备及存储介质
CN111131501A (zh) * 2019-12-31 2020-05-08 郑州信大捷安信息技术股份有限公司 一种基于mqtt协议的消息推送***及方法
CN111241101A (zh) * 2020-01-09 2020-06-05 深圳市东深电子股份有限公司 一种分布式水利rtu数据采集***及方法
CN111787055A (zh) * 2020-05-22 2020-10-16 中国科学院信息工程研究所 一种基于Redis且面向事务机制和多数据中心的数据分发方法和***
CN112351068A (zh) * 2020-09-29 2021-02-09 苏宁云计算有限公司 信息同步方法、***、装置、计算机设备和存储介质
CN113190778A (zh) * 2021-04-30 2021-07-30 深圳壹账通创配科技有限公司 业务数据推送方法、***、计算机设备及计算机存储介质
CN113382048A (zh) * 2021-05-28 2021-09-10 广东好太太智能家居有限公司 一种消息推送方法、***、设备及存储介质
CN113452774A (zh) * 2021-06-25 2021-09-28 睿视(苏州)视频科技有限公司 消息推送方法、装置、设备及存储介质
CN113867958A (zh) * 2021-09-29 2021-12-31 浪潮通用软件有限公司 一种任务角标推送的方法、装置、设备及可读介质
CN114024972A (zh) * 2021-10-28 2022-02-08 平安科技(深圳)有限公司 一种长连接通信方法、***、装置、设备及存储介质
CN114039961A (zh) * 2021-10-08 2022-02-11 中移(杭州)信息技术有限公司 基于WebSocket的消息推送方法、设备、服务器及存储介质

Patent Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080177857A1 (en) * 2007-01-19 2008-07-24 International Business Machines Corporation Autonomic optimization of presence server performance
CN104408132A (zh) * 2014-11-28 2015-03-11 北京京东尚科信息技术有限公司 数据推送方法和***
CN104935658A (zh) * 2015-06-17 2015-09-23 交通银行股份有限公司 一种银行任务分配方法及装置
US20180019985A1 (en) * 2016-07-18 2018-01-18 Fugue, Inc. Distributed key/value store system using asynchronous messaging systems
US20180176122A1 (en) * 2016-12-20 2018-06-21 Striim, Inc. Data Stream Processor with Both in Memory and Persisted Messaging
CN106657394A (zh) * 2017-02-10 2017-05-10 山东浪潮商用***有限公司 一种基于物联网大数据的设备信息采集***及方法
CN107026917A (zh) * 2017-06-16 2017-08-08 智者四海(北京)技术有限公司 用于消息推送的方法及***
CN108197263A (zh) * 2017-12-30 2018-06-22 苏州精易会信息技术有限公司 数据同步方法
WO2020062793A1 (zh) * 2018-09-29 2020-04-02 平安科技(深圳)有限公司 基于消息队列的请求处理方法、装置、设备及存储介质
CN111131501A (zh) * 2019-12-31 2020-05-08 郑州信大捷安信息技术股份有限公司 一种基于mqtt协议的消息推送***及方法
CN111241101A (zh) * 2020-01-09 2020-06-05 深圳市东深电子股份有限公司 一种分布式水利rtu数据采集***及方法
CN111787055A (zh) * 2020-05-22 2020-10-16 中国科学院信息工程研究所 一种基于Redis且面向事务机制和多数据中心的数据分发方法和***
CN112351068A (zh) * 2020-09-29 2021-02-09 苏宁云计算有限公司 信息同步方法、***、装置、计算机设备和存储介质
CN113190778A (zh) * 2021-04-30 2021-07-30 深圳壹账通创配科技有限公司 业务数据推送方法、***、计算机设备及计算机存储介质
CN113382048A (zh) * 2021-05-28 2021-09-10 广东好太太智能家居有限公司 一种消息推送方法、***、设备及存储介质
CN113452774A (zh) * 2021-06-25 2021-09-28 睿视(苏州)视频科技有限公司 消息推送方法、装置、设备及存储介质
CN113867958A (zh) * 2021-09-29 2021-12-31 浪潮通用软件有限公司 一种任务角标推送的方法、装置、设备及可读介质
CN114039961A (zh) * 2021-10-08 2022-02-11 中移(杭州)信息技术有限公司 基于WebSocket的消息推送方法、设备、服务器及存储介质
CN114024972A (zh) * 2021-10-28 2022-02-08 平安科技(深圳)有限公司 一种长连接通信方法、***、装置、设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李洋;: "基于消息队列遥测传输协议的智能家居消息中间件设计", 计算机应用, no. 1 *
王苗苗;: "基于分布式架构的光伏电站远程监测***设计", 西安航空学院学报, no. 05 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115292097A (zh) * 2022-08-22 2022-11-04 广州鼎甲计算机科技有限公司 数据库实例创建方法、装置、设备、存储介质和程序产品
CN117271152A (zh) * 2023-09-04 2023-12-22 中电金信软件有限公司 应用实例信息的注册和查询方法

Also Published As

Publication number Publication date
CN114827171B (zh) 2023-12-15

Similar Documents

Publication Publication Date Title
US9843551B2 (en) Systems and methods for storing and transferring message data
US9800691B2 (en) Stream processing using a client-server architecture
US20100100626A1 (en) Methods and apparatus related to inter-widget interactions managed by a client-side master
CN112069265B (zh) 配置数据的同步方法、业务数据***、计算机***和介质
CN102333029B (zh) 一种服务器集群***中的路由方法
US20160261480A1 (en) Client-side fault tolerance in a publish-subscribe system
CN108353020A (zh) 用于传送消息数据的***和方法
US7970856B2 (en) System and method for managing and distributing assets over a network
US10579595B2 (en) Method and device for calling a distributed file system
CN114827171B (zh) 信息同步方法、装置、计算机设备和存储介质
US20150363340A1 (en) Providing multiple synchronous serial console sessions using data buffering
CN109783151B (zh) 规则变更的方法和装置
CA2923896C (en) Email webclient notification queuing
US11922059B2 (en) Method and device for distributed data storage
CN110837423A (zh) 一种自动导引运输车数据采集的方法和装置
CN112351068A (zh) 信息同步方法、***、装置、计算机设备和存储介质
WO2019227473A1 (en) Method and apparatus for performing communication in internet of things
CN111460038A (zh) 一种数据准实时同步方法及装置
CN110798495B (zh) 用于在集群架构模式下端到端的消息推送的方法和服务器
US9137331B2 (en) Adaptive replication
CN110324384B (zh) 数据推送的方法和装置
EP3345345A1 (en) Systems and methods for remote network topology discovery
CN110233791B (zh) 数据去重方法和装置
CN116192927A (zh) 基于SaaS服务的数据传输方法、装置、计算机设备和介质
CN110417850B (zh) 软件配置获取方法、***、服务器及介质

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
GR01 Patent grant
GR01 Patent grant