CN112637335A - 主备模式服务部署方法、装置、设备及存储介质 - Google Patents
主备模式服务部署方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112637335A CN112637335A CN202011531179.5A CN202011531179A CN112637335A CN 112637335 A CN112637335 A CN 112637335A CN 202011531179 A CN202011531179 A CN 202011531179A CN 112637335 A CN112637335 A CN 112637335A
- Authority
- CN
- China
- Prior art keywords
- service
- service instance
- instance
- main
- standby
- 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
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/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Hardware Redundancy (AREA)
Abstract
本公开提供一种主备模式服务部署方法、装置、设备及存储介质,用于解决基于服务注册中心的主备有状态服务部署的技术问题。本公开通过使用服务注册中心类应用实现主备模式下有状态服务的部署,无需直接关注服务实例的具体分布情况。主备转换完全由服务实例自身控制,客户端或服务调用方对其无感知,无需自己维护服务实例列表及具体参与服务实例的主备切换逻辑,简化了部署逻辑。此外,本公开提供的主备服务部署方法,在服务端无需额外的复杂配置操作,简化了部署配置。本公开能够实现基于服务注册中心的微服务或非微服务主备有状态模式的服务简洁高效的部署。
Description
技术领域
本公开涉及软件及通讯技术领域,尤其涉及一种主备模式服务部署方法、装置、设备及存储介质。
背景技术
随着当前用户量、业务量以及数据量的快速增长,软件服务功能以及数量也需要为满足各种业务需求进行扩展。由此面临一个非常现实的问题,所有服务功能如果全部整合到一个软件应用中,所有功能在同一应用内部快速交互,效率会比较高;但是如果需要修改某个功能模块的逻辑代码或者配置,可能需要将整个应用代码全部重新编译、打包和部署,工作量之大不仅损耗各种人力物力,同时也会让服务的更新升级等周期变得非常长,效率低下。
基于对业务功能模块进行拆分,将原有的单体服务应用拆分为多个相互独立的模块,可以对每个模块进行独立的开发、修改、编译以及部署,大大提升了开发和维护效率,同时能够降低不必要的问题的引入。微服务设计理念就是在这样的需求场景中产生的,是当前非常流行的一种服务部署模式。各个服务及实例统一注册到同一个注册中心,服务间请求时通过服务名查询注册中心中对应的实例注册信息(包括ip、端口等),然后根据注册信息请求服务实例获取结果。服务注册中心类应用目前有很多,比如Netflix的Eruka,阿里的nacos,以及apache的zookeeper等,如何选择具体的注册中心可以根据实际项目需求进行判断。
在微服务模式下,可以针对某一个服务快速启动多个实例,通常情况下,每个服务实例都是平等的、无状态的,可以通过客户端负载均衡或者网关反向代理负载均衡实现对所有服务实例的请求负载均衡。但是,如果在整个微服务体系中,有某个或某些服务是有状态的即同一个服务的每个服务实例不是平等的,例如服务实例有主备之分、会话与服务绑定等情况,则现有服务注册中心类应用还不能很好的支持。
发明内容
有鉴于此,本公开提供一种主备模式服务部署方法、装置、设备及存储介质,用于解决基于服务注册中心的主备有状态服务部署的技术问题。
基于本公开一实施例提供了一种主备模式服务部署方法,该方法包括:
当指定服务名下的服务实例启动时,服务实例从服务注册中心组件获取该指定服务名下已注册的服务实例的服务注册信息;
根据获取的服务注册信息判断主服务实例是否存在;
若判定主服务实例不存在,则服务实例在所述服务注册中心注册为主服务实例并启动主服务实例的初始化流程;主服务实例启动后以所述指定服务名对外提供服务;
若判定主服务实例存在,则服务实例注册为备服务实例并启动备服务实例的初始化流程;
备服务实例通过故障感知组件检测主服务实例的健康状态,若检测到主服务实例异常,则备服务实例向服务注册中心发起注册以切换为主服务实例。
进一步地,所述方法还包括:在字典服务组件中,配置有所述指定服务名的分布式锁,在所述服务实例启动时或主备切换时,服务实例首先从字典服务组件中获取指定服务名的分布式锁,所述分布式锁用来在多个服务实例同时启动时保障主服务实例注册的唯一性和安全性。
进一步地,所述主服务实例启动后以服务名对外提供服务具体为:
服务注册中心接收到客户端的服务查询请求时,向客户端响应携带主服务实例的服务注册信息的服务查询请求响应,以使客户端根据所述主服务实例的服务注册信息向主服务实例发起业务请求。
进一步地,所述服务实例注册为备服务实例的方法具体为:
所述服务实例以区别于所述指定服务名的名称在所述服务注册中心注册为备服务实例或在字典服务组件中注册为备服务实例;
所述故障感知组件基于主服务实例和备服务实例的注册信息进行健康状态的检测。
进一步地,所述服务注册中心为Eruka、nacos或Zookeeper;所述字典服务组件为远程字典服务Redis组件或数据库。
基于本公开实施例还提供了一种主备模式服务部署装置,该装置包括:
主服务注册信息获取模块,用于当指定服务名下的服务实例启动时,服务实例从服务注册中心组件获取该指定服务名下已注册的服务实例的服务注册信息;
判断模块,用于根据获取的服务注册信息判断主服务实例是否存在;
主服务注册及初始化模块,用于在判定主服务实例不存在时,所述服务实例在所述服务注册中心注册为主服务实例并启动主服务实例的初始化流程;主服务实例启动后以所述指定服务名对外提供服务;
备服务注册及初始化模块,用于在判定主服务实例存在时,所述服务实例注册为备服务实例并启动备服务实例的初始化流程;
故障感知及切换模块,用于备服务实例通过故障感知组件检测主服务实例的健康状态,若检测到主服务实例异常,则备服务实例向服务注册中心发起注册以切换为主服务实例。
进一步地,所述装置还包括:字典服务模块,用于存储所述指定服务名的分布式锁,在所述服务实例启动时或主备切换时,服务实例首先从字典服务模块中获取指定服务名的分布式锁,所述分布式锁用来在多个服务实例同时启动时保障主服务实例注册的唯一性和安全性。
进一步地,所述主服务注册及初始化模块将主服务实例以所述指定服务名注册在所述服务注册中心和字典服务模块;所述备服务注册及初始化模块将备服务实例以区别于所述指定服务名的名称注册在所述服务注册中心或字典服务模块;所述故障感知及切换模块基于主服务实例和备服务实例的注册信息进行健康状态的检测。
本公开通过使用服务注册中心类应用实现主备模式下有状态服务的部署,无需直接关注服务实例的具体分布情况。主备转换完全由服务实例自身控制,客户端或服务调用方对其无感知,无需自己维护服务实例列表及具体参与服务实例的主备切换逻辑,简化了部署逻辑。此外,本公开提供的主备服务部署方法,在服务端无需额外的复杂配置操作,简化了部署配置。本公开能够实现基于服务注册中心的微服务或非微服务主备有状态模式的服务简洁高效的部署。
附图说明
为了更加清楚地说明本公开实施例或者现有技术中的技术方案,下面将对本公开实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本公开实施例的这些附图获得其他的附图。
图1为本公开一实施例提供的一种主备模式服务部署方法的步骤流程图;
图2为本公开一实施例提供的一种主备模式服务部署装置结构示意图;
图3为本公开一实施例提供的一种电子设备结构示意图。
具体实施方式
在本公开实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本公开实施例。本公开实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。本公开中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本公开提供了一种主备模式服务部署方法,该方法基于具有服务注册、发现及配置管理功能的服务注册中心类组件实现,可应用于对业务功能模块化拆分的多服务应用场景中,例如微服务应用场景,该方法能够实现服务的主备部署模式进而实现对有状态服务的部署和访问。本公开一实施例可实现使用如nacos的注册中心组件来部署主备模式的服务,在主备模式下,始终只有一个服务实例对外提供功能接口,其它服务实例作为备用服务。
图1为本公开一实施例提供的一种主备模式服务部署方法的步骤流程图,该方法包括:
步骤101.当指定服务名下的服务实例启动时,该服务实例从服务注册中心组件获取该指定服务名下已注册的服务实例的服务注册信息;
该步骤中的指定服务名为需要主备模式部署的服务的名称。本公开通过服务注册中心组件对外暴露服务的提供接口,用户需要首先从服务注册中心获取服务注册信息,例如服务IP地址、端口等,客户端通过根据服务注册信息及接口路径访问对应的服务实例。服务注册信息包括但不限于服务实例的IP地址、端口等信息。
指定服务名下的一个服务实例刚启动时或该服务名下的已启动的备服务实例准备进行主备切换时,都需要首先向服务注册中心发起服务注册流程,在服务注册流程中需要首先从服务注册中心组件获取该指定服务名下已注册的服务实例的服务注册信息,以判断是否存在主服务实例。
本公开不限制服务注册中心组件具体类型,例如可以为Netflix的Eruka,阿里的nacos,以及Apache的Zookeeper等。
步骤102.根据获取的服务注册信息判断主服务实例是否存在;
该步骤中,如果获取的服务注册信息为空,说明主服务实例不存在;如果获取的服务注册信息不为空且注册信息也不为该服务实例,则判定为主服务实例存在;如果获取的服务注册信息不为空且注册信息为该服务实例自身,则可判定为主服务实例不存在的一种特例。
步骤103.若判定主服务实例不存在,则该服务实例在所述服务注册中心注册为主服务实例并启动主服务实例的初始化流程;主服务实例启动后以所述指定服务名对外提供服务;
主服务实例启动后以服务名对外提供服务具体为:
步骤103a.需要访问服务的客户端,首先向服务注册中心发送服务查询请求,请求中携带所要访问的服务名等信息,注册服务中心接收到服务查询请求后,基于服务名查询该服务名下是否有主服务实例存在,根据查询结果响应服务查询请求,如果主服务实例存在,则在服务查询请求的响应消息中携带主服务实例的服务注册信息以供客户端基于所述服务注册信息获取服务。
步骤103b.客户端接收到服务查询请求的响应后,根据响应信息判断如果主服务实例存在,则根据服务注册信息中主服务实例的IP地址和端口等信息向主服务实例发起业务请求,主服务实例对业务请求进行处理和响应。
步骤104.若判定主服务实例存在,则该服务实例注册为备服务实例并启动备服务实例的初始化流程;
该步骤中,备服务实例可以注册在服务注册中心也可以注册在独立的字典服务组件中。如果注册在服务注册中心,则需要以服务名区别于主服务实例注册的对外提供服务的服务名称。
本公开不限制所述字典服务组件的类型,可以为远程字典服务(RemoteDictionary Server,Redis)组件、数据库等。
步骤105.备服务实例通过故障感知组件检测主服务实例的健康状态,若检测到主服务实例异常,则备服务实例向服务注册中心发起注册以切换为主服务实例。
备服务实例的初始化流程中包括启动故障感知组件任务,故障感知组件功能一般实现为一种定时任务,用于对主服务实例或备服务实例和其它服务实例进行健康状态的检测,以实现对健康状态异常的主服务实例进行切换或对健康状态异常的服务实例进行告警等相关操作。
在本公开一实施例中,在字典服务组件-例如Redis中,配置有服务名的分布式锁,在服务实例启动时,服务实例首先从字典服务组件中获取指定服务名的分布式锁,分布式锁用来在多个服务实例同时启动时,主服务实例注册的唯一性和安全性,防止多个服务实例同时注册为主服务实例。
基于以上主备模式服务部署方法,本公开通过使用类似nacos服务发现与注册功能实现主备模式下有状态服务的部署,无需直接关注服务实例的具体分布情况,比如主服务实例master和备服务实例slave部署的位置、slave的数量以及master和slave的角色转换等。本公开实施例中,主备转换完全由服务实例自身控制,客户端或服务调用方对其无感知,无需自己维护服务实例列表及具体参与服务实例的主备切换逻辑,简化了部署逻辑。此外,本公开提供的主备服务部署方法,在服务端无需额外的复杂配置操作,简化了部署配置。本公开能够实现基于服务注册中心的微服务或非微服务主备有状态模式的服务简洁高效的部署。
以下以一具体实施例来实例化描述本公开提供的主备模式服务部署方法整体实现过程,其中服务注册中心以nacos为例,为指定服务提供互斥访问的分布式锁的组件以redis为例,但本领域技术人员可以理解的是,在本公开提供的发明构思下,本领域技术人员可以采用具有相同类似功能的组件进行等同替换。
在一个服务实例启动后,进入服务注册流程。首先,从redis组件中获取指定服务名对应的redis分布式锁,分布式锁用于保障在多个服务实例同时启动时的主服务实例master的注册唯一性和安全性,防止多个服务实例同时注册为master。在获得分布式锁后,根据当前实例所属的服务名等信息请求服务注册中心nacos获取对应的服务实例列表,一般地,nacos中一个服务名可以注册多个实例,所以接口返回的是一个服务列表,但就本公开的场景,主备模式下nacos上服务名所对应的注册实例可以有且只有一个。
服务实例获取到服务列表后,首先判断该服务列表是否为空,如果为空,则表明当前服务名的master暂未注册即master不存在;此时,由于存在redis分布式锁的排他性,中间不可能有其它服务实例注册为master,所以,当前服务实例可以直接注册为master到nacos上并将其信息保存到redis中,同时服务实例启动master的初始化流程。如果判定该服务列表不为空,则说明master已注册,此时可能对应两种情况的出现:
第一种场景,从nacos中查询的主服务实例就是当前启动的服务实例(可能由于服务异常并快速重启导致nacos中保留的服务实例信息未过期);
第二种场景,就是nacos中保存的主服务实例信息非当前启动的服务实例,即master已被其它服务实例注册过了。
针对上述两种情况,需要对当前服务实例信息与从nacos中获取的master服务实例信息(主要是ip、port和实例id等)进行比较,如果两者不相同,则当前服务实例不能注册为master,直接启动为slave并将其信息注册到redis中,同时服务实例启动slave的初始化流程;如果两者相同,则当前服务实例可以直接注册为master到nacos上并将其信息保存到redis中,同时服务实例启动master的初始化流程。
该实施例中将服务实例信息注册到redis的目的是为了故障感知组件能够获取到对应的master和slave服务信息,并根据该信息对服务实例进行心跳检测确认是否正常。而注册到nacos是为了通过服务发现与注册来实现服务对客户端的透明,客户端只需要知道服务名而无需关心服务及其实例的物理信息(比如:ip、端口等),由此可以对客户端和服务进行解耦。
无论服务实例启动为master还是slave,都需要进行一系列的初始化操作,初始化操作包括基本的系统逻辑和业务逻辑的初始化;业务逻辑初始化与具体业务相关,本公开不做具体论述。系统逻辑初始化,包括但不限于服务负载信息注册到redis、故障感知组件或任务的启动等。
负载信息注册一般实现为一种定时任务,周期性向redis或其它类似的缓存服务中注册服务实例的负载信息,用于外部获取当前服务实例的运行负载。
slave的故障感知组件功能主要是周期性从redis获取master的服务注册信息(ip、port等),通过rest请求master对外开放的故障检测接口进行master的健康状态判断,如果接口请求状态异常,则重试n次(n根据实际环境设置,这里设置为3),重试后如果仍然异常则判定master故障,slave准备注册为master角色继续对外提供服务;如果第一次接口请求成功或重试n次过程中有一次成功,则不认为master故障,slave仍然保持为slave角色继续工作。
如果slave需要转换、注册为master,那么需要进行类似于服务实例启动时注册为master的服务注册流程及相应的初始化操作;同时,原来的master在服务恢复后(重启或其它恢复处理),会重新根据nacos中注册的master信息判断自己当前状态是master还是slave并做相应的操作。
类似地,master对slave的故障感知逻辑、流程与上述slave对master的故障感知相似,区别主要在于master在感知slave故障后,只会生成基本的告警信息而不会做主备角色的转换。
应当认识到,本公开的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术,包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
此外,可按任何合适的顺序来执行本公开描述的过程的操作,除非本公开另外指示或以其他方式明显地与上下文矛盾。本公开描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本公开的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本公开所述的公开包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本公开所述的方法和技术编程时,本公开还包括计算机本身。
图2为本公开一实施例提供的一种主备模式服务部署装置结构示意图,该装置中的各功能模块可以采用软件模块形式实现,也可以采用硬件单元方式实现。该装置200包括:主服务注册信息获取模块210、判断模块220、主服务注册及初始化模块230、备服务注册及初始化模块240、故障感知及切换模块250。
主服务注册信息获取模块210用于当指定服务名下的服务实例启动时,服务实例从服务注册中心组件获取该指定服务名下已注册的服务实例的服务注册信息;
判断模块220用于根据获取的服务注册信息判断主服务实例是否存在;
主服务注册及初始化模块230用于在判定主服务实例不存在时,所述服务实例在所述服务注册中心注册为主服务实例并启动主服务实例的初始化流程;主服务实例启动后以所述指定服务名对外提供服务;
备服务注册及初始化模块240用于在判定主服务实例存在时,所述服务实例注册为备服务实例并启动备服务实例的初始化流程;
故障感知及切换模块250用于备服务实例通过故障感知组件检测主服务实例的健康状态,若检测到主服务实例异常,则备服务实例向服务注册中心发起注册以切换为主服务实例。
优选地,该装置200还包括字典服务模块,字典服务模块用于存储所述指定服务名的分布式锁,在所述服务实例启动时或主备切换时,服务实例首先从字典服务模块中获取指定服务名的分布式锁,分布式锁用来在多个服务实例同时启动时保障主服务实例注册的唯一性和安全性。
优选地,主服务注册及初始化模块230将主服务实例以指定服务名注册在服务注册中心和字典服务模块;备服务注册及初始化模块240将备服务实例以区别于指定服务名的名称注册在服务注册中心或字典服务模块;故障感知及切换模块250基于主服务实例和备服务实例的注册信息进行健康状态的检测。
图3为本公开一实施例提供的一种电子设备结构示意图,该设备300包括:诸如中央处理单元(CPU)的处理器310、内部总线320、网络接口340以及计算机可读存储介质330。其中,处理器310与计算机可读存储介质330可以通过内部总线320相互通信。计算机可读存储介质330内可存储本公开提供的用于实施上述方法的计算机程序,当计算机程序被处理器310执行时即可实现本公开提供的方法的各步骤功能。
机器可读存储介质可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。另外,机器可读存储介质还可以是至少一个位于远离前述处理器的存储装置。处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本公开实施例提供的设备与本公开实施例提供的方法出于相同的技术构思,具有与其采用、运行或实现的方法相同的有益效果。以上所述仅为本公开的实施例而已,并不用于限制本公开。对于本领域技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种主备模式服务部署方法,其特征在于,所述方法包括:
当指定服务名下的服务实例启动时,服务实例从服务注册中心组件获取该指定服务名下已注册的服务实例的服务注册信息;
根据获取的服务注册信息判断主服务实例是否存在;
若判定主服务实例不存在,则服务实例在所述服务注册中心注册为主服务实例并启动主服务实例的初始化流程;主服务实例启动后以所述指定服务名对外提供服务;
若判定主服务实例存在,则服务实例注册为备服务实例并启动备服务实例的初始化流程;
备服务实例通过故障感知组件检测主服务实例的健康状态,若检测到主服务实例异常,则备服务实例向服务注册中心发起注册以切换为主服务实例。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在字典服务组件中,配置有所述指定服务名的分布式锁,在所述服务实例启动时或主备切换时,服务实例首先从字典服务组件中获取指定服务名的分布式锁,所述分布式锁用来在多个服务实例同时启动时保障主服务实例注册的唯一性和安全性。
3.根据权利要求1所述的方法,其特征在于,所述主服务实例启动后以服务名对外提供服务具体为:
服务注册中心接收到客户端的服务查询请求时,向客户端响应携带主服务实例的服务注册信息的服务查询请求响应,以使客户端根据所述主服务实例的服务注册信息向主服务实例发起业务请求。
4.根据权利要求1所述的方法,其特征在于,所述服务实例注册为备服务实例的方法具体为:
所述服务实例以区别于所述指定服务名的名称在所述服务注册中心注册为备服务实例或在字典服务组件中注册为备服务实例;
所述故障感知组件基于主服务实例和备服务实例的注册信息进行健康状态的检测。
5.根据权利要求4所述的方法,其特征在于,
所述服务注册中心为Eruka、nacos或Zookeeper;
所述字典服务组件为远程字典服务Redis组件或数据库。
6.一种主备模式服务部署装置,其特征在于,该装置包括:
主服务注册信息获取模块,用于当指定服务名下的服务实例启动时,服务实例从服务注册中心组件获取该指定服务名下已注册的服务实例的服务注册信息;
判断模块,用于根据获取的服务注册信息判断主服务实例是否存在;
主服务注册及初始化模块,用于在判定主服务实例不存在时,所述服务实例在所述服务注册中心注册为主服务实例并启动主服务实例的初始化流程;主服务实例启动后以所述指定服务名对外提供服务;
备服务注册及初始化模块,用于在判定主服务实例存在时,所述服务实例注册为备服务实例并启动备服务实例的初始化流程;
故障感知及切换模块,用于备服务实例通过故障感知组件检测主服务实例的健康状态,若检测到主服务实例异常,则备服务实例向服务注册中心发起注册以切换为主服务实例。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
字典服务模块,用于存储所述指定服务名的分布式锁,在所述服务实例启动时或主备切换时,服务实例首先从字典服务模块中获取指定服务名的分布式锁,所述分布式锁用来在多个服务实例同时启动时保障主服务实例注册的唯一性和安全性。
8.根据权利要求7所述的装置,其特征在于,
所述主服务注册及初始化模块将主服务实例以所述指定服务名注册在所述服务注册中心和字典服务模块;
所述备服务注册及初始化模块将备服务实例以区别于所述指定服务名的名称注册在所述服务注册中心或字典服务模块;
所述故障感知及切换模块基于主服务实例和备服务实例的注册信息进行健康状态的检测。
9.一种主备模式服务部署设备,其特征在于,包括处理器、通信接口、存储介质和通信总线,其中,处理器、通信接口、存储介质通过通信总线完成相互间的通信;
存储介质,用于存放计算机程序;
处理器,用于执行存储介质上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序当被处理器执行时实现如权利要求1至5中任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011531179.5A CN112637335B (zh) | 2020-12-22 | 2020-12-22 | 主备模式服务部署方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011531179.5A CN112637335B (zh) | 2020-12-22 | 2020-12-22 | 主备模式服务部署方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112637335A true CN112637335A (zh) | 2021-04-09 |
CN112637335B CN112637335B (zh) | 2022-02-22 |
Family
ID=75321066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011531179.5A Active CN112637335B (zh) | 2020-12-22 | 2020-12-22 | 主备模式服务部署方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112637335B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190371A (zh) * | 2021-05-18 | 2021-07-30 | 京东数科海益信息科技有限公司 | 一种任务补偿方法、装置、电子设备及可读存储介质 |
CN113407382A (zh) * | 2021-06-15 | 2021-09-17 | 北京城建设计发展集团股份有限公司 | 一种服务故障动态调控方法与系统 |
CN116192863A (zh) * | 2023-01-13 | 2023-05-30 | 中科驭数(北京)科技有限公司 | 微服务流量处理方法、dpu服务网格部署方法及系统 |
CN117289951A (zh) * | 2023-11-22 | 2023-12-26 | 华信咨询设计研究院有限公司 | 一种基于递归原则的软件系统多应用自动部署方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1650662A (zh) * | 2002-03-11 | 2005-08-03 | 高通股份有限公司 | 支持多服务实例的通信系统内切换的方法和装置 |
CN109995805A (zh) * | 2017-12-29 | 2019-07-09 | 深圳市优必选科技有限公司 | 一种智能机器人的管理方法、终端设备及介质 |
CN111190736A (zh) * | 2019-12-31 | 2020-05-22 | 苏宁云计算有限公司 | 基于微服务的低入侵分布式定时任务调度系统及方法 |
CN111615066A (zh) * | 2020-02-07 | 2020-09-01 | 中国海洋大学 | 一种基于广播的分布式微服务注册及调用方法 |
US20200344135A1 (en) * | 2019-04-26 | 2020-10-29 | EMC IP Holding Company LLC | Method, device and computer program product for configuring service instance |
-
2020
- 2020-12-22 CN CN202011531179.5A patent/CN112637335B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1650662A (zh) * | 2002-03-11 | 2005-08-03 | 高通股份有限公司 | 支持多服务实例的通信系统内切换的方法和装置 |
CN109995805A (zh) * | 2017-12-29 | 2019-07-09 | 深圳市优必选科技有限公司 | 一种智能机器人的管理方法、终端设备及介质 |
US20200344135A1 (en) * | 2019-04-26 | 2020-10-29 | EMC IP Holding Company LLC | Method, device and computer program product for configuring service instance |
CN111190736A (zh) * | 2019-12-31 | 2020-05-22 | 苏宁云计算有限公司 | 基于微服务的低入侵分布式定时任务调度系统及方法 |
CN111615066A (zh) * | 2020-02-07 | 2020-09-01 | 中国海洋大学 | 一种基于广播的分布式微服务注册及调用方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190371A (zh) * | 2021-05-18 | 2021-07-30 | 京东数科海益信息科技有限公司 | 一种任务补偿方法、装置、电子设备及可读存储介质 |
CN113190371B (zh) * | 2021-05-18 | 2024-04-05 | 京东科技信息技术有限公司 | 一种任务补偿方法、装置、电子设备及可读存储介质 |
CN113407382A (zh) * | 2021-06-15 | 2021-09-17 | 北京城建设计发展集团股份有限公司 | 一种服务故障动态调控方法与系统 |
CN116192863A (zh) * | 2023-01-13 | 2023-05-30 | 中科驭数(北京)科技有限公司 | 微服务流量处理方法、dpu服务网格部署方法及系统 |
CN116192863B (zh) * | 2023-01-13 | 2023-11-28 | 中科驭数(北京)科技有限公司 | 微服务流量处理方法、dpu服务网格部署方法及系统 |
CN117289951A (zh) * | 2023-11-22 | 2023-12-26 | 华信咨询设计研究院有限公司 | 一种基于递归原则的软件系统多应用自动部署方法 |
CN117289951B (zh) * | 2023-11-22 | 2024-04-02 | 华信咨询设计研究院有限公司 | 一种基于递归原则的软件系统多应用自动部署方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112637335B (zh) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112637335B (zh) | 主备模式服务部署方法、装置、设备及存储介质 | |
CN109347675B (zh) | 服务器配置方法、装置以及电子设备 | |
US6854069B2 (en) | Method and system for achieving high availability in a networked computer system | |
CN116302719B (zh) | 用于启用高可用性受管理故障转移服务的系统和方法 | |
US8756455B2 (en) | Synchronized failover for active-passive applications | |
US20080140760A1 (en) | Service-oriented architecture system and methods supporting dynamic service provider versioning | |
CN111431740A (zh) | 数据的传输方法、装置、设备及计算机可读存储介质 | |
CN112506702B (zh) | 数据中心容灾方法、装置、设备及存储介质 | |
CN104486108A (zh) | 基于Zookeeper的节点配置方法和基于Zookeeper的节点配置系统 | |
US20070124380A1 (en) | Method and system for servicing requests in a dynamic cluster | |
CN113067875B (zh) | 基于微服务网关动态流控的访问方法和装置以及设备 | |
CN111258851A (zh) | 一种集群的告警方法、装置、设置及存储介质 | |
CN112363775A (zh) | 动态修改微服务配置信息的方法及系统、存储介质 | |
CN108089972B (zh) | 接口测试方法及装置 | |
CN113965576B (zh) | 基于容器的大数据采集方法、装置、存储介质和设备 | |
CN112000444B (zh) | 数据库事务处理方法、装置、存储介质和电子设备 | |
CN110781039B (zh) | 哨兵进程选举方法及装置 | |
CN112492011A (zh) | 分布式存储系统故障切换方法、系统、终端及存储介质 | |
CN115580658A (zh) | 一种服务访问方法及装置、存储介质及电子设备 | |
Ghosh et al. | On the design of fault-tolerance in a decentralized software platform for power systems | |
CN115766715A (zh) | 一种高可用的超融合集群监控方法和系统 | |
CN113032477B (zh) | 基于gtid的长距离数据同步方法、装置及计算设备 | |
US20200014602A1 (en) | Dynamic resiliency framework | |
WO2020115551A1 (en) | Simultaneously testing whether a plurality of electronic devices connected via a communication network correctly handle exceptions | |
CN114124680B (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 |