CN112653753B - 基于rpc的多机房独立多活方法、系统及电子设备 - Google Patents
基于rpc的多机房独立多活方法、系统及电子设备 Download PDFInfo
- Publication number
- CN112653753B CN112653753B CN202011506815.9A CN202011506815A CN112653753B CN 112653753 B CN112653753 B CN 112653753B CN 202011506815 A CN202011506815 A CN 202011506815A CN 112653753 B CN112653753 B CN 112653753B
- Authority
- CN
- China
- Prior art keywords
- machine room
- room
- registration agent
- agent middleware
- registration
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/535—Tracking the activity of the user
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/59—Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明实施例提供了一种基于RPC的多机房独立多活系统,包括:第一机房和第二机房,第一机房包括第一注册中心服务、第一注册代理中间件及多个第一微服务,第二机房包括第二注册代理中间件和第二注册中心服务;第一注册中心服务监听所述第一机房是否正常运行;当第一注册中心服务监听到第一机房宕机或者发生网络故障时,第一注册代理中间件断开与所述第二机房的连接;及第一注册代理中间件与第二注册代理中间件进行心跳检测,当第二注册代理中间件在预设时间内未接收到所述第一注册代理中间件的心跳信息时,则第二注册中心服务将第一同步数据删除。通过本发明实施例能够保证各个机房间的独立多活高可用,也保证各个机房数据的正确。
Description
技术领域
本发明实施例涉及基架运维技术领域,尤其涉及一种基于RPC的多机房独立多活方法、系统及电子设备。
背景技术
在大数据背景下,多活方案已经成为解决大数据瓶颈的重要手段。多活指不同地理位置上的系统都能够提供业务服务。目前业界的多活方案,基本都是依赖注册中心中间件(例如,consul和eureka)自身的能力。
在国内,目前使用最广的中间件则是ZooKeeper。ZooKeeper作为老牌的开源中间件,活跃在各大公司的系统设计中,并作为核心中间件。当存在多数据中心时,ZooKeeper没有数据中心隔离及同步功能。当将ZooKeeper作为注册中心使用时,无法在其中任何一个机房宕机的情况下,通过自身能力同步多机房的数据,也就无法满足现在企业日益严格的异地多活高可能的要求。
在现有ZooKeeper中间的双活及多活方案都是基于一个集群,使用多个机房的集群节点组合构成大集群,从而达到一个集群,这样既实现了多机房部署,又实现了各机房数据的自动同步,各机房就像同机房一样使用,但是这种部署方式也带来了非常大的隐患。
由于所述集群的双活或多活的实现是基于ZooKeeper的选举算法,要求集群中存活机器数必须大于n/2,比如现有生产集群是7台服务器,那么可接受宕机数量为3台,当宕机数量超过3台时,就会导致整个集群不可用。例如:如图1,由于A机房服务器数量为3, B机房服务器数量为4,当A机房中所有服务器宕机时,B机房不受影响;当B机房所有服务器宕机时,则导致A、B两个机房所有服务器全部宕机。
因此,本方案旨在解决在任何一个机房宕机的前提下,如何不影响其他机房独立存活的技术问题。
发明内容
有鉴于此,有必要提供一种基于RPC的多机房独立多活方法、系统、电子设备、计算机设备及可读存储介质,能够解决在任何一个机房宕机的前提下,如何不影响其他机房独立存活的技术问题。
为实现上述目的,本发明实施例提供了一种基于RPC的多机房独立多活系统,包括:
第一机房和第二机房,所述第一机房包括第一注册中心服务、第一注册代理中间件及多个第一微服务,所述第二机房包括第二注册代理中间件和第二注册中心服务,所述第一机房和所述第二机房基于RPC进行通信连接;
所述第一注册中心服务监听所述第一机房是否正常运行;
当所述第一注册中心服务监听到所述第一机房正常运行时,所述第一注册代理中间件获取所述第一机房的第一同步数据,并将所述第一同步数据写入至所述第二注册中心服务;
当所述第一注册中心服务监听到所述第一机房宕机或者发生网络故障时,所述第一注册代理中间件断开与所述第二机房的连接;及
所述第一注册代理中间件与所述第二注册代理中间件进行心跳检测,当所述第二注册代理中间件在预设时间内未接收到所述第一注册代理中间件的心跳信息时,则所述第二注册中心服务将所述第一同步数据删除。
可选地,当所述第一注册中心服务监听到所述第一机房恢复正常时,所述系统还包括:
所述第一注册中心服务恢复监听;
所述第一注册代理中间件将所述第一机房的第二同步数据写入至所述第二注册中心服务。
可选地,所述第二机房还包括多个第二微服务,所述多个第一微服务和所述第一注册中心服务构成第一集群,所述多个第二微服务和所述第二注册中心服务构成第二集群。
可选地,所述第一机房还包括至少一个其他第一注册代理中间件,所述第一注册代理中间件与所述至少一个其他第一注册代理中间件组成第一注册代理中间件集群,当所述第一注册中心服务监听到所述第一注册代理中间件宕机时,则所述其他第一注册代理中间件接替所述第一注册代理中间件执行后续操作。
为实现上述目的,本发明实施例提供了一种基于RPC的多机房独立多活方法,应用于第一注册代理中间件中,所述第一注册代理中间件放置于第一机房中,并从所述第一机房的第一注册中心服务获取所述第一机房的监听信息,所述第一机房与第二机房基于RPC进行通信连接,所述方法包括:
当所述监听信息为所述第一机房正常运行时,获取所述第一机房的第一同步数据;
将所述第一同步数据写入至所述第二机房的第二注册中心服务中;
当所述监听信息为所述第一机房宕机或者发生网络故障时,断开与所述第二机房的连接。
可选地,当所述第一注册中心服务恢复监听时,所述方法还包括:
将所述第一机房的第二同步数据写入至所述第二注册中心服务中,并将所述第二同步数据上传至区块链中。
可选地,所述方法还包括:
对所述第二注册代理中间件进行心跳检测,以使所述第二注册中心服务根据检测结果判断是否将所述第一同步数据删除。
为实现上述目的,本发明实施例还提供了一种电子设备,所述电子设备放置于第一机房中,并从所述第一机房的第一注册中心服务获取所述第一机房的监听信息,所述第一机房与第二机房基于RPC进行通信连接,包括:
获取模块,用于当所述监听信息为所述第一机房正常运行时,获取所述第一机房的第一同步数据;
写入模块,用于将所述第一同步数据写入至所述第二机房的第二注册中心服务中;
断开连接模块,用于当所述监听信息为所述第一机房宕机或者发生网络故障时,断开与所述第二机房的连接。
为实现上述目的,本发明实施例还提供了一种计算机设备,所述计算机设备存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被处理器执行时实现如上所述的基于RPC的多机房独立多活方法的步骤。
为实现上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上所述的基于RPC的多机房独立多活方法的步骤。
本发明实施例提供的基于RPC的多机房独立多活方法、系统、电子设备、计算机设备及可读存储介质,通过在每个机房新增注册代理中间件,当第一机房均正常运行时,通过第一注册代理中间件将所述第一机房的第一同步数据写入至第二机房的注册中心服务,实现机房间的信息同步,同时解耦了各个机房间的相互依赖。当所述第一机房宕机或发生网络故障时,所述第一注册代理中间件断开与所述第二机房的连接。当所述第二机房的第二注册代理中间件超过预设时间未接收到所述第一注册代理中间件的心跳信息时,所述第二机房的第二注册中心服务将所述第一同步数据删除,以保证各个机房间的独立多活高可用,也保证各个机房数据的正确。
附图说明
图1为现有的多机房多活方法的应用环境架构图;
图2为本发明实施例之基于RPC的多机房独立多活系统的一种示例性的模块示意图;
图3为本发明实施例之基于RPC的多机房独立多活方法的步骤流程图;
图4为本发明实施例之电子设备的程序模块示意图;
图5为本发明实施例之计算机设备的硬件架构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
实施例一
参阅图2,图2为基于RPC的多机房独立多活系统的一种示例性的模块示意图。所述多机房独立多活系统包括第一机房和第二机房。当然,在实际应用中,所述多机房独立多活系统可以包括多个机房,在本发明实施例中,仅以所述第一机房和所述第二机房这两个机房为例进行示例性的说明。所述第一机房包括多个微服务、第一注册中心服务及第一注册代理中间件。所述多个微服务包括,例如,微服务A、微服务B及微服务C。所述第二机房包括多个微服务、第二注册中心服务及第二注册代理中间件。所述多个微服务包括,例如,微服务A’、微服务B’,微服务C’。所述第一机房和所述第二机房基于远程过程调用(RemoteProcedure Call,RPC)进行通信连接。所述第一注册中心服务监听所述多个微服务的工作状态,并将监听结果发送至所述第一注册代理中间件。所述第一注册代理中间件根据监听结果实现与所述第二机房的数据同步或断连。所述第二注册中心服务与所述第一注册中心服务的工作原理相同,在此不作赘述。所述多个第一微服务和所述第一注册中心服务构成第一集群,所述多个第二微服务和所述第二注册中心服务构成第二集群,所述第一集群和所述第二集群可以为ZooKeeper集群。
下面将对所述基于RPC的机房独立多活系统进行详细说明。
所述第一注册中心服务监听所述第一机房是否正常运行。
具体地,所述第一注册中心服务通过监听所述第一机房的所述多个第一微服务的工作状态,以判断所述第一机房是否正常运行。当所述多个第一微服务中存在至少一个微服务正常运行时,则判断所述第一机房正常运行。当所述多个第一微服务均宕机或者发生网络故障时,则判断所述第一机房宕机或者发生网络故障。例如:结合图2,如果微服务A、微服务 B和微服务C中存在一个微服务正常运行,则所述第一注册中心服务判断所述第一机房正常,也即所述第一注册中心服务监听所述第一机房的结果为所述第一机房正常运行。如果微服务 A、微服务B和微服务C均宕机或者发生网络故障,则所述第一注册中心服务判断所述第一机房宕机或者发生网络故障,也即所述第一注册中心服务监听所述第一机房的结果为所述第一机房宕机或者发生网络故障。
当所述第一注册中心服务监听到所述第一机房正常运行时,所述第一注册代理中间件获取所述第一机房的第一同步数据,并将所述第一同步数据写入至所述第二注册中心服务。
具体地,所述第一同步数据可以为所述第一机房在此次正常运行过程中本地的第一注册中心服务的数据。所述第一注册中心服务和所述第二注册中心服务可以为ZooKeeper。通过直接将所述第一同步数据写入至所述第二机房的第二注册中心服务中,可以保证所述第一机房的数据同步至所述第二机房。
当所述第一注册中心服务监听到所述第一机房宕机或者发生网络故障时,所述第一注册代理中间件断开与所述第二机房的连接。
具体地,当所述第一注册中心服务监听到所述第一机房宕机或者发生网络故障时,所述第一注册中心服务监听失效,同时所述第一注册中心服务的数据保持不变。在本发明实施例中,当所述第一机房宕机或者发生网络故障时,所述第一注册代理中间件通过断开与所述第二机房或者其他机房的连接,可以保证所述第二机房或者其他机房数据的实时性和准确性。
所述第一注册代理中间件与所述第二注册代理中间件进行心跳检测,当所述第二注册代理中间件在预设时间内未接收到所述第一注册代理中间件的心跳信息时,则所述第二注册中心服务将所述第一同步数据删除。
具体地,当所述第一注册代理中间件断开与所述第二机房的连接时,由于所述第二注册代理中间件的心跳检测存在时间限制,当检测到超过预设时间没有心跳时,则表示所述第一注册代理中间件断开与所述第二注册代理中间件的连接,此时所述第二注册中心服务自动将所述第一同步数据删除,所述第二机房所有的应用不会调用所述第一机房的服务,均只调用所述第二机房的服务。
在一示例性的实施例中,当所述第一注册代理中间件断开与所述第二机房的连接时,所述第二机房的显示装置还显示所述第一机房发生故障的信息,所述第二机房不能调用所述第一机房的服务,以保证机房高可用。
在示例性的实施例中,当所述第一注册中心服务监听到所述第一机房恢复正常时,所述第一注册中心服务恢复监听,所述第一注册代理中间件将所述第一机房的第二同步数据写入至所述第二注册中心服务。
所述第二同步数据可以为所述第一机房在恢复正常运行过程后,所述第一注册中心服务的数据。在所述第一机房恢复正常后,通过将所述第二同步数据写入至所述第二注册中心服务,可以保证所述第一机房和所述第二机房永远同步正确的状态。
在一示例性的实施例中,所述第一注册代理中间件还将所述第二同步数据上传至区块链中。所述区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
在示例性的实施例中,所述第一机房还包括至少一个其他第一注册代理中间件,所述第一注册代理中间件与所述至少一个其他第一注册代理中间件组成第一注册代理中间件集群,当所述第一注册中心服务监听到所述第一注册代理中间件宕机时,则所述其他第一注册代理中间件接替所述第一注册代理中间件执行后续操作。需要说明的是,所述第一注册代理中间件集群呈分布式部署。例如:当所述第一注册中心服务监听到所述第一机房正常运行时,若所述第一注册代理中间件宕机,则所述其他第一注册代理中间件将获取的所述第一同步数据写入至所述第二注册中心服务。同理,所述第一机房也可以包括至少一个其他第二注册代理中间件,工作方式如所述第一机房,在此不作赘述。
本发明实施例通过在每个机房新增注册代理中间件,当第一机房均正常运行时,通过第一注册代理中间件将所述第一机房的第一同步数据写入至第二机房的注册中心服务,实现机房间的信息同步,同时解耦了各个机房间的相互依赖。当所述第一机房宕机或发生网络故障时,所述第一注册代理中间件断开与所述第二机房的连接。当所述第二机房的第二注册代理中间件超过预设时间未接收到所述第一注册代理中间件的心跳信息时,所述第二机房的第二注册中心服务将所述第一同步数据删除,以保证各个机房间的独立多活高可用,也保证各个机房数据的正确。当所述第一机房恢复正常时,所述第一注册代理中间件将所述第一机房的第二同步数据写入至所述第二注册中心服务,可以保证所述第一机房和所述第二机房永远同步正确的状态。
实施例二
基于同一发明构思,本发明实施例还提供了一种基于RPC的多机房独立多活方法。请参阅图3,示出了本发明实施例之基于RPC的多机房独立多活方法的步骤流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。所述计算机设备可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal DigitalAssistant,PDA)、便携式媒体播放器(Portable Media Player,PMP)、导航装置、可穿戴设备、智能手环、计步器等移动终端,以及诸如数字TV、台式计算机等固定终端。需要说明是,本实施例以计算机设备为执行主体进行示例性描述,所述计算机设备可以为图2中所述第一注册代理中间件。在本发明实施例中,以所述第一注册代理中间件为例进行说明。
所述第一注册代理中间件放置于第一机房中,并从所述第一机房的第一注册中心服务获取所述第一机房的监听信息,所述第一机房与第二机房基于RPC进行通信连接,所述方法具体包括以下步骤:
步骤S100:当所述监听信息为所述第一机房正常运行时,获取所述第一机房的第一同步数据。
具体地,所述第一注册中心服务通过监听所述第一机房的所述多个第一微服务的工作状态,以判断所述第一机房是否正常运行。当所述多个第一微服务中存在至少一个微服务正常运行时,则判断所述第一机房正常运行。当所述多个第一微服务均宕机或者发生网络故障时,则判断所述第一机房宕机或者发生网络故障。例如:结合图2,如果微服务A、微服务B和微服务C中存在一个微服务正常运行,则所述第一注册中心服务判断所述第一机房正常,也即所述第一注册中心服务监听所述第一机房的结果为所述第一机房正常运行。如果微服务A、微服务B和微服务C均宕机或者发生网络故障,则所述第一注册中心服务判断所述第一机房宕机或者发生网络故障,也即所述第一注册中心服务监听所述第一机房的结果为所述第一机房宕机或者发生网络故障。所述第一同步数据可以为所述第一机房在此次正常运行过程中本地的第一注册中心服务的数据。
步骤S102:将所述第一同步数据写入至所述第二机房的第二注册中心服务中。
通过直接将所述第一同步数据写入至所述第二机房的第二注册中心服务中,可以保证所述第一机房的数据同步至所述第二机房。
步骤S104:当所述监听信息为所述第一机房宕机或者发生网络故障时,断开与所述第二机房的连接。
具体地,当所述第一注册中心服务监听到所述第一机房宕机或者发生网络故障时,所述第一注册中心服务监听失效,同时所述第一注册中心服务的数据保持不变,所述第一注册代理中间件通过断开与所述第二机房或者其他机房的连接,可以保证所述第二机房或者其他机房数据的实时性和准确性。
在示例性的实施例中,当所述第一注册中心服务恢复监听时,所述方法还包括:
将所述第一机房的第二同步数据写入至所述第二注册中心服务中。
具体地,由于所述第一注册中心服务监听所述第一机房中所有微服务的工作状态,当所述第一机房恢复正常时,所述第一注册中心服务恢复监听。然后所述第一注册代理中间件将所述第一机房的第二同步数据写入至所述第二注册中心服务。所述第二同步数据可以为所述第一机房在恢复正常运行过程后,所述第一注册中心服务的数据。在所述第一机房恢复正常后,通过将所述第二同步数据写入至所述第二注册中心服务,可以保证所述第一机房和所述第二机房永远同步正确的状态。
在一示例性的实施例中,所述方法还包括:将所述第二同步数据上传至区块链中。所述区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
在实际应用中,当所述多机房独立多活系统中的所有机房均正常工作时,每个机房中的注册代理中间件均会将各自机房中的同步数据写入至其他机房的注册中心服务中,以保证每个机房的注册中心服务均有其他机房的同步数据,同时每个注册代理中间件间均进行心跳检测。当其中一个机房宕机或者发生网络故障时,其他机房中的注册代理中间件会断开与该机房的连接。
例如,结合图2,所述第一机房与所述第二机房均正常工作时,所述第一注册代理中间件在将所述第一机房的第一同步数据写入至所述第二机房的第二注册中心服务的同时,所述第二注册代理中间件也将所述第二机房的第三同步数据写入至所述第一机房的第一注册中心服务。当所述第二机房宕机时,所述第二机房中的第二注册代理中间件断开与所述第一机房的连接。
在示例性的实施例中,所述方法还包括:对所述第二注册代理中间件进行心跳检测,以使所述第二注册中心服务根据检测结果判断是否将所述第一同步数据删除。具体地,当所述第一注册代理中间件断开与所述第二机房的连接时,由于所述第一注册代理中间件的心跳检测存在时间限制,当监测到超过预设时间没有心跳时,则表示所述第二注册代理中间件断开与所述第一注册代理中间件的连接,此时所述第二注册中心服务自动将所述第一同步数据删除,所述第二机房所有的应用不会调用所述第一机房的服务,均只调用所述第二机房的服务。
本发明实施例提供的基于RPC的多机房独立多活方法,当第一机房均正常运行时,将所述第一机房的第一同步数据写入至第二机房的注册中心服务,实现机房间的信息同步,同时解耦了各个机房间的相互依赖。当所述第一机房宕机或发生网络故障时,断开与所述第二机房的连接。对所述第二注册代理中间件进行心跳检测,当超过预设时间未接收到所述第二注册代理中间件的心跳信息时,所述第二机房的第二注册中心服务将所述第一同步数据删除,以保证各个机房间的独立多活高可用,也保证各个机房数据的正确。当所述第一机房恢复正常时,所述第一注册代理中间件将所述第一机房的第二同步数据写入至所述第二注册中心服务,可以保证所述第一机房和所述第二机房永远同步正确的状态。
实施例三
基于上述实施例提供的基于RPC的多机房独立多活方法,请参阅图4,示出了本发明实施例之电子设备的程序模块示意图。在本实施例中,电子设备20可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述基于RPC的多机房独立多活方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述所述电子设备20在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
所述电子设备放置于第一机房中,并从所述第一机房的第一注册中心服务获取所述第一机房的监听信息,所述第一机房与第二机房基于RPC进行通信连接。所述电子设备包括获取模块201、写入模块202及断开模块203。
所述获取模块201,用于当所述监听信息为所述第一机房正常运行时,获取所述第一机房的第一同步数据。
具体地,所述第一注册中心服务通过监听所述第一机房的所述多个第一微服务的工作状态,以判断所述第一机房是否正常运行。当所述多个第一微服务中存在至少一个微服务正常运行时,则判断所述第一机房正常运行。当所述多个第一微服务均宕机或者发生网络故障时,则判断所述第一机房宕机或者发生网络故障。例如:结合图2,如果微服务A、微服务B和微服务C中存在一个微服务正常运行,则所述第一注册中心服务判断所述第一机房正常,也即所述第一注册中心服务监听所述第一机房的结果为所述第一机房正常运行。如果微服务A、微服务B和微服务C均宕机或者发生网络故障,则所述第一注册中心服务判断所述第一机房宕机或者发生网络故障,也即所述第一注册中心服务监听所述第一机房的结果为所述第一机房宕机或者发生网络故障。所述第一同步数据可以为所述第一机房在此次正常运行过程中本地的第一注册中心服务的数据。
所述写入模块202,用于将所述第一同步数据写入至所述第二机房的第二注册中心服务中。
通过直接将所述第一同步数据写入至所述第二机房的第二注册中心服务中,可以保证所述第一机房的数据同步至所述第二机房。
所述断开模块203,用于当所述监听信息为所述第一机房宕机或者发生网络故障时,断开与所述第二机房的连接。
具体地,当所述第一注册中心服务监听到所述第一机房宕机或者发生网络故障时,所述第一注册中心服务监听失效,同时所述第一注册中心服务的数据保持不变,所述断开模块203 通过断开与所述第二机房或者其他机房的连接,可以保证所述第二机房或者其他机房数据的实时性和准确性。
在示例性的实施例中,当所述第一注册中心服务恢复监听时,所述写入模块202还用于:
将所述第一机房的第二同步数据写入至所述第二注册中心服务中。
具体地,由于所述第一注册中心服务监听所述第一机房中所有微服务的工作状态,当所述第一机房恢复正常时,所述第一注册中心服务恢复监听。然后所述写入模块202将所述第一机房的第二同步数据写入至所述第二注册中心服务。所述第二同步数据可以为所述第一机房在恢复正常运行过程后,所述第一注册中心服务的数据。在所述第一机房恢复正常后,通过将所述第二同步数据写入至所述第二注册中心服务,可以保证所述第一机房和所述第二机房永远同步正确的状态。
在一示例性的实施例中,所述电子设备还将所述第二同步数据上传至区块链中。所述区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
在实际应用中,当所述多机房独立多活系统中的所有机房均正常工作时,每个机房中的注册代理中间件均会将各自机房中的同步数据写入至其他机房的注册中心服务中,以保证每个机房的注册中心服务均有其他机房的同步数据,同时每个注册代理中间件间均进行心跳检测。当其中一个机房宕机或者发生网络故障时,其他机房中的注册代理中间件会断开与该机房的连接。
例如,结合图2,所述第一机房与所述第二机房均正常工作时,所述第一注册代理中间件在将所述第一机房的第一同步数据写入至所述第二机房的第二注册中心服务的同时,所述第二注册代理中间件也将所述第二机房的第三同步数据写入至所述第一机房的第一注册中心服务。当所述第二机房宕机时,所述第二机房中的第二注册代理中间件断开与所述第一机房的连接。
在示例性的实施例中,所述电子设备还包括心跳检测模块,用于对所述第二注册代理中间件进行心跳检测,以使所述第二注册中心服务根据检测结果判断是否将所述第一同步数据删除。
具体地,当所述断开模块203断开与所述第二机房的连接时,由于所述第一注册代理中间件的心跳检测存在时间限制,当所述心跳检测模块检测到超过预设时间没有心跳时,则表示所述第二注册代理中间件断开与所述第一注册代理中间件的连接,此时所述第二注册中心服务自动将所述第一同步数据删除,所述第二机房所有的应用不会调用所述第一机房的服务,均只调用所述第二机房的服务。
本发明实施例提供的电子设备,当第一机房均正常运行时,将所述第一机房的第一同步数据写入至第二机房的注册中心服务,实现机房间的信息同步,同时解耦了各个机房间的相互依赖。当所述第一机房宕机或发生网络故障时,断开与所述第二机房的连接。对所述第二注册代理中间件进行心跳检测,当超过预设时间未接收到所述第二注册代理中间件的心跳信息时,所述第二机房的第二注册中心服务将所述第一同步数据删除,以保证各个机房间的独立多活高可用,也保证各个机房数据的正确。当所述第一机房恢复正常时,所述第一注册代理中间件将所述第一机房的第二同步数据写入至所述第二注册中心服务,可以保证所述第一机房和所述第二机房永远同步正确的状态。
实施例四
请参阅图5,示出了本发明实施例四之计算机设备的硬件架构示意图。计算机设备2包括,但不仅限于,可通过系统总线相互通信连接存储器21、处理22以及网络接口23,图5仅示出了具有组件21-23的计算机设备2,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。本实施例中,所述计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。
所述存储器21至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器21 可以是所述计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,所述存储器也可以是所述计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器21还可以既包括所述计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,所述存储器21通常用于存储安装于所述计算机设备2的操作系统和各类应用软件,例如电子设备20的程序代码等。此外,所述存储器21 还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制所述计算机设备2的总体操作。本实施例中,所述处理器22用于运行所述存储器21中存储的程序代码或者处理数据,例如运行所述电子设备20的程序代码等。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述计算机设备2与其他电子设备之间建立通信连接。例如,所述网络接口23用于通过网络将所述计算机设备2与外部终端相连,在所述计算机设备2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(WidebandCode Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图5仅示出了具有部件21-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
实施例五
本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的基于RPC的多机房独立多活方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD 或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的基于RPC的多机房独立多活方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种基于RPC的多机房独立多活系统,其特征在于,包括:第一机房和第二机房,所述第一机房包括第一注册中心服务、第一注册代理中间件及多个第一微服务,所述第二机房包括第二注册代理中间件和第二注册中心服务,所述第一机房和所述第二机房基于RPC进行通信连接;
所述第一注册中心服务监听所述第一机房是否正常运行;
当所述第一注册中心服务监听到所述第一机房正常运行时,所述第一注册代理中间件获取所述第一机房的第一同步数据,并将所述第一同步数据写入至所述第二注册中心服务;
当所述第一注册中心服务监听到所述第一机房宕机或者发生网络故障时,所述第一注册代理中间件断开与所述第二机房的连接;及
所述第一注册代理中间件与所述第二注册代理中间件进行心跳检测,当所述第二注册代理中间件在预设时间内未接收到所述第一注册代理中间件的心跳信息时,则所述第二注册中心服务将所述第一同步数据删除。
2.如权利要求1所述的基于RPC的多机房独立多活系统,其特征在于,当所述第一注册中心服务监听到所述第一机房恢复正常时,所述系统还包括:
所述第一注册中心服务恢复监听;
所述第一注册代理中间件将所述第一机房的第二同步数据写入至所述第二注册中心服务,并将所述第二同步数据上传至区块链中。
3.如权利要求1所述的基于RPC的多机房独立多活系统,其特征在于,所述第二机房还包括多个第二微服务,所述多个第一微服务和所述第一注册中心服务构成第一集群,所述多个第二微服务和所述第二注册中心服务构成第二集群。
4.如权利要求1所述的基于RPC的多机房独立多活系统,其特征在于,所述第一机房还包括至少一个其他第一注册代理中间件,所述第一注册代理中间件与所述至少一个其他第一注册代理中间件组成第一注册代理中间件集群,当所述第一注册中心服务监听到所述第一注册代理中间件宕机时,则所述其他第一注册代理中间件接替所述第一注册代理中间件执行后续操作。
5.一种基于RPC的多机房独立多活方法,其特征在于,应用于第一注册代理中间件中,所述第一注册代理中间件放置于第一机房中,并从所述第一机房的第一注册中心服务获取所述第一机房的监听信息,所述第一机房与第二机房基于RPC进行通信连接,所述方法包括:
当所述监听信息为所述第一机房正常运行时,获取所述第一机房的第一同步数据;
将所述第一同步数据写入至所述第二机房的第二注册中心服务中;
当所述监听信息为所述第一机房宕机或者发生网络故障时,断开与所述第二机房的连接;
所述方法还包括:
与第二注册代理中间件进行心跳检测,以使所述第二注册中心服务根据检测结果判断是否将所述第一同步数据删除。
6.如权利要求5所述的基于RPC的多机房独立多活方法,其特征在于,当所述第一注册中心服务恢复监听时,所述方法还包括:
将所述第一机房的第二同步数据写入至所述第二注册中心服务中,并将所述第二同步数据上传至区块链中。
7.一种电子设备,其特征在于,所述电子设备放置于第一机房中,并从所述第一机房的第一注册中心服务获取所述第一机房的监听信息,所述第一机房与第二机房基于RPC进行通信连接,包括:
获取模块,用于当所述监听信息为所述第一机房正常运行时,获取所述第一机房的第一同步数据;
写入模块,用于将所述第一同步数据写入至所述第二机房的第二注册中心服务中;
断开连接模块,用于当所述监听信息为所述第一机房宕机或者发生网络故障时,断开与所述第二机房的连接;
所述电子设备还包括心跳检测模块,用于与第二注册代理中间件进行心跳检测,以使所述第二注册中心服务根据检测结果判断是否将所述第一同步数据删除。
8.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被处理器执行时实现如权利要求5-6中任一项所述的基于RPC的多机房独立多活方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求5-6中任一项所述的基于RPC的多机房独立多活方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011506815.9A CN112653753B (zh) | 2020-12-18 | 2020-12-18 | 基于rpc的多机房独立多活方法、系统及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011506815.9A CN112653753B (zh) | 2020-12-18 | 2020-12-18 | 基于rpc的多机房独立多活方法、系统及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112653753A CN112653753A (zh) | 2021-04-13 |
CN112653753B true CN112653753B (zh) | 2023-04-07 |
Family
ID=75354912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011506815.9A Active CN112653753B (zh) | 2020-12-18 | 2020-12-18 | 基于rpc的多机房独立多活方法、系统及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112653753B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114785465B (zh) * | 2022-04-26 | 2024-04-12 | 上海识装信息科技有限公司 | 一种异地多活的实现方法、服务器及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104202375A (zh) * | 2014-08-22 | 2014-12-10 | 广州华多网络科技有限公司 | 同步数据的方法及系统 |
CN108228397A (zh) * | 2016-12-22 | 2018-06-29 | 深圳市优朋普乐传媒发展有限公司 | 一种集群间跨机房同步的方法和装置 |
CN109618005A (zh) * | 2019-01-18 | 2019-04-12 | 华为终端有限公司 | 调用服务器的方法和代理服务器 |
CN110808874A (zh) * | 2019-10-25 | 2020-02-18 | 北京大米科技有限公司 | 一种跨机房服务监控方法、装置、存储介质及服务器 |
CN111858161A (zh) * | 2020-06-24 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 云主机的容灾方法、装置、设备及计算机可读存储介质 |
CN111930570A (zh) * | 2020-08-17 | 2020-11-13 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种多机房数据库高可用的处理系统及处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9514010B2 (en) * | 2014-09-19 | 2016-12-06 | Netapp, Inc | Cluster-wide service agents |
-
2020
- 2020-12-18 CN CN202011506815.9A patent/CN112653753B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104202375A (zh) * | 2014-08-22 | 2014-12-10 | 广州华多网络科技有限公司 | 同步数据的方法及系统 |
CN108228397A (zh) * | 2016-12-22 | 2018-06-29 | 深圳市优朋普乐传媒发展有限公司 | 一种集群间跨机房同步的方法和装置 |
CN109618005A (zh) * | 2019-01-18 | 2019-04-12 | 华为终端有限公司 | 调用服务器的方法和代理服务器 |
CN110808874A (zh) * | 2019-10-25 | 2020-02-18 | 北京大米科技有限公司 | 一种跨机房服务监控方法、装置、存储介质及服务器 |
CN111858161A (zh) * | 2020-06-24 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 云主机的容灾方法、装置、设备及计算机可读存储介质 |
CN111930570A (zh) * | 2020-08-17 | 2020-11-13 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种多机房数据库高可用的处理系统及处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112653753A (zh) | 2021-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103201724B (zh) | 在高可用性虚拟机环境中提供高可用性应用程序 | |
CN111124755B (zh) | 集群节点的故障恢复方法、装置、电子设备及存储介质 | |
US8935576B2 (en) | Automated cabling process for a complex environment | |
CN102546135B (zh) | 主备服务器切换系统及方法 | |
CN102402395A (zh) | 基于仲裁磁盘的高可用系统不间断运行方法 | |
CN105242990A (zh) | 基于云平台的数据备份方法和装置 | |
CN106980647B (zh) | 一种分布式文件系统数据分布方法及装置 | |
CN103780687A (zh) | 一种基于位置的多数据中心云桌面管理方法 | |
CN113360579A (zh) | 数据库高可用处理方法、装置、电子设备及存储介质 | |
CN111897697A (zh) | 服务器硬件故障修复方法和装置 | |
CN112653753B (zh) | 基于rpc的多机房独立多活方法、系统及电子设备 | |
CN114816820A (zh) | chproxy集群故障修复方法、装置、设备及存储介质 | |
CN109445517A (zh) | 一种同步bmc和os时间的方法、装置、终端及存储介质 | |
CN103516734A (zh) | 数据处理方法、设备和系统 | |
CN112600690B (zh) | 一种配置数据同步方法、装置、设备及存储介质 | |
CN109491909A (zh) | 一种cpld刷新验证方法、装置、终端及存储介质 | |
US9491132B2 (en) | System and method for providing push service for reducing network loads | |
CN115396296A (zh) | 业务处理方法、装置、电子设备及计算机可读存储介质 | |
CN110968456A (zh) | 分布式存储系统中故障磁盘的处理方法及装置 | |
CN115373799A (zh) | 一种集群管理的方法、装置及电子设备 | |
CN107426320A (zh) | 用于Openstack的信息处理方法和信息处理系统 | |
CN115102862A (zh) | 一种用于sdn设备的自动同步方法及装置 | |
CN110908644B (zh) | 状态节点的配置方法、装置、计算机设备和存储介质 | |
CN112260902A (zh) | 网络设备监控方法、装置、设备及存储介质 | |
CN112291083B (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 |