CN114020279A - 应用软件分布式部署方法、系统、终端及存储介质 - Google Patents
应用软件分布式部署方法、系统、终端及存储介质 Download PDFInfo
- Publication number
- CN114020279A CN114020279A CN202111155482.4A CN202111155482A CN114020279A CN 114020279 A CN114020279 A CN 114020279A CN 202111155482 A CN202111155482 A CN 202111155482A CN 114020279 A CN114020279 A CN 114020279A
- Authority
- CN
- China
- Prior art keywords
- service
- node
- application
- nodes
- main
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000012544 monitoring process Methods 0.000 claims abstract description 7
- 230000002085 persistent effect Effects 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 14
- 238000012546 transfer Methods 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 3
- 230000008859 change Effects 0.000 abstract description 6
- 238000012423 maintenance Methods 0.000 abstract description 6
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 241000412611 Consul Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
Abstract
本发明提供一种应用软件分布式部署方法、系统、终端及存储介质,包括:选取多个服务节点,并在每个服务节点上部署服务端,选取多个应用节点,并在每个应用节点上部署客户端,将多个服务节点和多个应用节点组建为服务集群;采用选举的方式从多个服务节点中确定主服务节点,其余服务节点作为从服务节点,主服务节点与从服务节点保持数据同步;将主服务节点的信息发送至多个应用节点,在多个应用节点中指定主应用节点,其余应用节点作为从应用节点;通过主服务节点监控各应用节点的状态,如果监控到主应用节点离线,则将业务转移至处于在线状态的目标从服务节点。本发明通过节点状态的变化实现高可用服务的管理和升级,降低运维难度。
Description
技术领域
本发明涉及应用软件技术领域,具体涉及一种应用软件分布式部署方法、系统、终端及存储介质。
背景技术
软件的功能与业务场景息息相关,随着业务场景的增加,规模的扩大,软件的规模也会随之增长。一款成熟的平台级应用软件往往需要同时满足不同的业务场景,这意味着在业务不断扩大的场景下,软件的功能也在逐步增加,在这种场景下,如何在低成本的研发中兼顾软件的可扩展性是一个关键问题。传统的单体软件架构将众多业务组件存放在同一个业务内部,便于开发但扩展能力差,当软件规模逐渐扩大时,新功能的开发和旧功能的维护难度会逐步增加。
为了解决该问题,许多软件逐步采用分布式的微服务架构,将单体架构下的应用进行服务化的拆分,通过上层的数据中心进行服务的发现注册、服务调用的转发。在这种模式下,单体软件应用内部的调用变为了服务之间的调用,由于服务是分布式部署并由数据中心自动发现,因此在编码时不需要硬性指定调用服务的地址,同时新增服务时也无需修改之前的部署配置,只需将新的服务和配置项注册至数据中心即可。
分布式的服务架构解决了单体软甲架构组件耦合,扩展性差的问题,但是在由于服务由原本的一个变为多个,因此服务的管理和运行稳定性难以保证,同时多服务高可用的运行模式中,服务的升级维护也十分困难。因此本发明基于数据中心,提出了一种分布式服务高可用的部署方案,混合使用单节点主备部署和多节点部署,提高服务运行稳定性,同时提出了三种节点状态,通过节点状态的变化实现高可用服务的管理和升级,降低运维难度。
发明内容
针对现有技术的上述不足,本发明提供一种应用软件分布式部署方法、系统、终端及存储介质,以解决上述技术问题。
第一方面,本发明提供一种应用软件分布式部署方法,包括:
选取多个服务节点,并在每个服务节点上部署服务端,选取多个应用节点,并在每个应用节点上部署客户端,将多个服务节点和多个应用节点组建为服务集群;
采用选举的方式从多个服务节点中确定主服务节点,其余服务节点作为从服务节点,主服务节点与从服务节点保持数据同步;
将主服务节点的信息发送至多个应用节点,在多个应用节点中指定主应用节点,其余应用节点作为从应用节点;
通过主服务节点监控各应用节点的状态,如果监控到主应用节点离线,则将业务转移至处于在线状态的目标从服务节点。
进一步的,选取多个服务节点,并在每个服务节点上部署服务端,选取多个应用节点,并在每个应用节点上部署客户端,将多个服务节点和多个应用节点组建为服务集群,包括:
在应用节点上部署客户端,所述客户端包括服务注册模块和状态检测模块;
将各应用节点的持久化数据保存至各服务节点,所述持久化数据包括服务名称、端口、地址。
进一步的,采用选举的方式从多个服务节点中确定主服务节点,其余服务节点作为从服务节点,主服务节点与从服务节点保持数据同步,包括:
从服务节点定期接收主服务节点的心跳信息,若超期未接收到主服务节点的心跳信息,则判定主服务节点故障;
采用选举的方式生成新的主服务节点,并将新的主服务节点的信息发送至各从服务节点和各应用节点。
进一步的,采用选举的方式从多个服务节点中确定主服务节点,其余服务节点作为从服务节点,主服务节点与从服务节点保持数据同步,包括:
从服务节点监控主服务节点的数据更新情况,并将主服务节点更新的数据复制至本地;
从服务节点定期对本地数据与主服务节点的数据进行一致性校验,若校验未通过则生成报错信息。
进一步的,所述方法还包括:
主服务节点将升级文件发送至主应用节点,以使主应用节点进行服务升级;
主服务节点监控到主应用节点在服务升级过程中处于离线状态,将业务转移至处于在线状态的目标从服务节点;
主服务节点监控到完成服务升级的主应用节点处于在线状态,将业务转移至主应用节点,所述主应用节点将升级文件同步至各从应用节点,以使从应用节点完成服务升级。
第二方面,本发明提供一种应用软件分布式部署系统,包括:
节点部署单元,用于选取多个服务节点,并在每个服务节点上部署服务端,选取多个应用节点,并在每个应用节点上部署客户端,将多个服务节点和多个应用节点组建为服务集群;
服务设置单元,用于采用选举的方式从多个服务节点中确定主服务节点,其余服务节点作为从服务节点,主服务节点与从服务节点保持数据同步;
应用设置单元,用于将主服务节点的信息发送至多个应用节点,在多个应用节点中指定主应用节点,其余应用节点作为从应用节点;
应用切换单元,用于通过主服务节点监控各应用节点的状态,如果监控到主应用节点离线,则将业务转移至处于在线状态的目标从服务节点。
进一步的,所述节点部署单元用于:
在应用节点上部署客户端,所述客户端包括服务注册模块和状态检测模块;
将各应用节点的持久化数据保存至各服务节点,所述持久化数据包括服务名称、端口、地址。
进一步的,所述服务设置单元用于:
从服务节点定期接收主服务节点的心跳信息,若超期未接收到主服务节点的心跳信息,则判定主服务节点故障;
采用选举的方式生成新的主服务节点,并将新的主服务节点的信息发送至各从服务节点和各应用节点。
进一步的,所述服务设置单元还用于:
从服务节点监控主服务节点的数据更新情况,并将主服务节点更新的数据复制至本地;
从服务节点定期对本地数据与主服务节点的数据进行一致性校验,若校验未通过则生成报错信息。
进一步的,所述系统还包括:
主服务节点将升级文件发送至主应用节点,以使主应用节点进行服务升级;
主服务节点监控到主应用节点在服务升级过程中处于离线状态,将业务转移至处于在线状态的目标从服务节点;
主服务节点监控到完成服务升级的主应用节点处于在线状态,将业务转移至主应用节点,所述主应用节点将升级文件同步至各从应用节点,以使从应用节点完成服务升级。
第三方面,提供一种终端,包括:
处理器、存储器,其中,
该存储器用于存储计算机程序,
该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本发明的有益效果在于,本发明提供的应用软件分布式部署方法、系统、终端及存储介质,在服务部署中基于consul注册中心实现服务的注册发现,部署方案中包含多个server节点和多个client节点,应用服务通过主备的形式安装在client节点中,同时结合多client部署的方式实现多个应用服务的高可用。同时,本发明在升级方法中提出基于状态控制的服务控制方法,服务的升级操作基于服务的当前状态,服务的状态通过事件触发,并且在不同的状态下执行不同的动作,通过主备服务状态的变化来推动升级流程的执行,实现了升级过程中服务依旧稳定对外提供服务。本发明混合使用单节点主备部署和多节点部署,提高服务运行稳定性,同时提出了三种节点状态,通过节点状态的变化实现高可用服务的管理和升级,降低运维难度。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的系统的示意性框图。
图3为本发明实施例提供的一种终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种应用软件分布式部署系统。
如图1所示,该方法包括:
步骤110,选取多个服务节点,并在每个服务节点上部署服务端,选取多个应用节点,并在每个应用节点上部署客户端,将多个服务节点和多个应用节点组建为服务集群;
步骤120,采用选举的方式从多个服务节点中确定主服务节点,其余服务节点作为从服务节点,主服务节点与从服务节点保持数据同步;
步骤130,将主服务节点的信息发送至多个应用节点,在多个应用节点中指定主应用节点,其余应用节点作为从应用节点;
步骤140,通过主服务节点监控各应用节点的状态,如果监控到主应用节点离线,则将业务转移至处于在线状态的目标从服务节点。
为了便于对本发明的理解,下面以本发明应用软件分布式部署方法的原理,结合实施例中对应用软件进行分布式部署的过程,对本发明提供的应用软件分布式部署方法做进一步的描述。
具体的,所述应用软件分布式部署方法包括:
S1、选取多个服务节点,并在每个服务节点上部署服务端,选取多个应用节点,并在每个应用节点上部署客户端,将多个服务节点和多个应用节点组建为服务集群。
在应用节点上部署客户端,所述客户端包括服务注册模块和状态检测模块;将各应用节点的持久化数据保存至各服务节点,所述持久化数据包括服务名称、端口、地址。
consul-server通过持久化的方式保存各consul-client节点的服务,避免consul-client节点故障丢失重要数据。
S2、采用选举的方式从多个服务节点中确定主服务节点,其余服务节点作为从服务节点,主服务节点与从服务节点保持数据同步。
从服务节点定期接收主服务节点的心跳信息,若超期未接收到主服务节点的心跳信息,则判定主服务节点故障;采用选举的方式生成新的主服务节点,并将新的主服务节点的信息发送至各从服务节点和各应用节点。通过该种方式实现服务节点的容易,提高容灾性。
从服务节点监控主服务节点的数据更新情况,并将主服务节点更新的数据复制至本地;从服务节点定期对本地数据与主服务节点的数据进行一致性校验,若校验未通过则生成报错信息。在接收到报错信息后可人工进行两者数据同步,也可解析报错信息将未通过一致性校验的部分数据从主服务节点复制到从服务节点,此外一致性校验时采用模块化数据一致性校验,即将两个节点的数据按照所属的功能模块进行划分,然后分别进行对应模块的一致性校验,一致性校验技术可采用MD5值一致性比对。
S3、将主服务节点的信息发送至多个应用节点,在多个应用节点中指定主应用节点,其余应用节点作为从应用节点。
各从应用节点接收到主服务节点的信息(地址信息)后定期向主服务节点发送状态信息。
S4、通过主服务节点监控各应用节点的状态,如果监控到主应用节点离线,则将业务转移至处于在线状态的目标从服务节点。
上述部署方法的具体执行过程例如,consul-client负责本地服务的注册以及状态检测,同时将服务的调用转发给consul-server角色;consul-server通过持久化的方式保存各consul-client节点的服务,汇总节点状态,当收到consul-client转发的服务请求后根据服务名称返回所有consul-client节点中状态正常的服务。在部署方式上,由三个consul-server节点组成consul-server高可用组,通过选举的方式选出leader节点,由leader节点提供服务,其余节点为follow节点,负责consul-server之间的数据同步以及一致性校验;consul-client节点数量根据应用场景可以持续性增加,部署时加入consul-server并定期向leader节点发送服务状态检测结果;应用服务service部署在consul-client节点上,在服务启动时将服务的信息注册在consul-client节点上并转发给consul-server节点保存,在应用服务的高可用部署中,分为两部分1)本地主备服务,在部署应用服务时,本地部署主备两个service,service之间通过同步的方式互备份,正常运行时,主服务处于在线状态,备份服务处于离线状态,当主服务运行状态异常转为离线时,备份服务切换至在线状态。2)多节点部署,除了在单节点中进行主备切换外,应用服务还部署在多个consul-client节点中,当发生服务调用时由consul-server汇总所有状态正常的service,选择其中一个提供给调用者。在这种部署方式中,若consul-server的follow节点发生故障,对外部调用无感知,不影响注册服务的调用,当consul-server的leader节点发生故障,则consul-server高可用组重新选举新的leader节点对外提供服务;若部署在consul-client节点中的某service发生故障,首先本地进行主备切换,切换过程中本地该服务暂时离线,consul-server滤除该服务并选择其余consul-client中正常的同名服务进行调用,当本地服务主备切换完成后,备份服务重新加入consul-client,对外提供服务;由于consul-client仅负责服务的状态,不保存持久化的数据,因此consul-client通常运行较为稳定,若发生运行故障,则不再转发本地service的健康状态,因此consul-server端显示该consul-client中服务为离线状态,由其余服务正常节点提供服务。
在上述部署的基础上,对应用节点进行升级的方法如下:
主服务节点将升级文件发送至主应用节点,以使主应用节点进行服务升级;主服务节点监控到主应用节点在服务升级过程中处于离线状态,将业务转移至处于在线状态的目标从服务节点;主服务节点监控到完成服务升级的主应用节点处于在线状态,将业务转移至主应用节点,所述主应用节点将升级文件同步至各从应用节点,以使从应用节点完成服务升级。
具体的,应用服务service部署在各consul-client节点中,服务命名唯一,consul-server中持久化存储服务的名称、端口、地址并接收consul-client转发的服务运行状态,因此在服务升级时可以根据consul-server根据所需升级的服务名称获取服务安装地址,对部署有该服务的节点进行升级即可,同时可以根据监控的节点状态判断升级是否完成。
首先定义服务的三种状态:在线(Online)、离线(Offline)、等待(Waiting)状态,其中在线状态标明节点可以对外提供服务,离线状态表示节点暂时不对外提供服务,等待状态属于中间状态,当节点由离线转为在线时会首先转为waiting状态,当服务启动成功并自检通过时,节点转向在线状态否则转向离线状态。部署方案中对服务的控制均基于服务状态,只有处于online状态的服务接收外部事件(event);主备服务的同步仅发生在online状态和offline状态之间,可以保证备份服务总是可用的。
服务的升级过程包含三个步骤1)获取待升级节点信息,并记录。2)为待升级节点的主服务下发升级任务3)当待升级节点主服务升级完成后,为待升级节点备份服务下发同步备份任务。在执行第一步时,首先通过consul-server按照服务名称获取所有待升级服务的consul-client节点信息,记录该节点主备服务的端口和当前状态。记录完成后执行第二步,将升级任务下发给该节点中对应的在线主服务,并定时检测主备服务的状态。收到升级任务后主服务将状态设为离线状态,同时通知备份服务主节点离线;备份节点接收到事件后启动,状态转换为在线状态对外提供服务;此时主节点处于离线状态,并在后台执行下发的升级任务,当升级任务完成后服务启动,状态由离线转换为等待,并执行对应的自动化测试项,待测试结果通过,服务由等待转向在线。当检测到所有待升级的主服务均为在线状态时,表示升级完成,为所有待升级服务的备份服务下发备份同步任务。备份服务收到该任务后转向离线状态,同时同步主服务的程序文件。
2.2本发明技术实现的具体实施案例
由于多个应用服务的部署在2.1.1所述高可用方案中仅相当于consul-client节点的增加或consul-client节点下注册服务的增加,因此在描述具体实施案例时仅按照部署单个应用服务serviceA来描述。在实际部署时,首先需要安装三个consul-server节点,以“172.17.0.2、172.17.0.3、172.17.0.4”三个节点为例,在启动172.17.0.3、172.17.0.4节点时通过join命令加入172.17.0.2节点,即手动指定172.17.0.2节点为leader节点。部署完成后通过consulmembers命令可以观察到高可用组中包含三个server节点,其中172.17.0.2节点为leader节点。
部署完成后部署按照相同流程部署两个consul-client节点“172.17.0.10、172.17.0.11”,在启动时通过“-client”命令指定节点为client节点,并通过join命令加入172.17.0.2节点。部署完成后在两个consul-client节点分别安装两个serviceA服务作为主备服务,在配置文件中分使用8080和8081端口,其中8080端口为主服务,8081端口为备服务。安装完成后启动主服务,通过“curlhttp://172.17.0.2:8500/v1/catalog/service/serviceA”可以观察到有四个serviceA服务,其中两个服务端口为8080,状态为online,两个服务端口为8081,状态为offline。
在进行serviceA的服务升级时,首先通过“curlhttp://172.17.0.2:8500/v1/catalog/service/serviceA”命令获取所有serviceA主备服务的地址和状态,通过命令观察到“172.17.0.10:8080和172.17.0.11:8080”为主服务,状态为online,“172.17.0.10:8081和172.17.0.11:8081”为备服务,状态为offline。向serviceA主服务下发升级任务,等待一段时间后,使用相同命令观察服务状态,可以观察到serviceA的主服务均为离线状态,同时serviceA的备服务由offline转向waiting最终变为online。持续观察,待所有serviceA的主服务均为在线状态,备服务也为在线状态,此时证明服务已经升级完毕。向所有备节点发送备份同步任务,待观察到所有备份节点均为离线offline状态后,升级结束,此时所有serviceA的主服务通过升级任务完成了升级,备服务通过同步主服务的程序文件完成升级,且主服务升级过程中,备服务为online状态可以对外提供服务,实现了高可用下的服务升级。
如图2所示,该系统200包括:
节点部署单元210,用于选取多个服务节点,并在每个服务节点上部署服务端,选取多个应用节点,并在每个应用节点上部署客户端,将多个服务节点和多个应用节点组建为服务集群;
服务设置单元220,用于采用选举的方式从多个服务节点中确定主服务节点,其余服务节点作为从服务节点,主服务节点与从服务节点保持数据同步;
应用设置单元230,用于将主服务节点的信息发送至多个应用节点,在多个应用节点中指定主应用节点,其余应用节点作为从应用节点;
应用切换单元240,用于通过主服务节点监控各应用节点的状态,如果监控到主应用节点离线,则将业务转移至处于在线状态的目标从服务节点。
可选地,作为本发明一个实施例,所述节点部署单元用于:
在应用节点上部署客户端,所述客户端包括服务注册模块和状态检测模块;
将各应用节点的持久化数据保存至各服务节点,所述持久化数据包括服务名称、端口、地址。
可选地,作为本发明一个实施例,所述服务设置单元用于:
从服务节点定期接收主服务节点的心跳信息,若超期未接收到主服务节点的心跳信息,则判定主服务节点故障;
采用选举的方式生成新的主服务节点,并将新的主服务节点的信息发送至各从服务节点和各应用节点。
可选地,作为本发明一个实施例,所述服务设置单元还用于:
从服务节点监控主服务节点的数据更新情况,并将主服务节点更新的数据复制至本地;
从服务节点定期对本地数据与主服务节点的数据进行一致性校验,若校验未通过则生成报错信息。
可选地,作为本发明一个实施例,所述系统还包括:
主服务节点将升级文件发送至主应用节点,以使主应用节点进行服务升级;
主服务节点监控到主应用节点在服务升级过程中处于离线状态,将业务转移至处于在线状态的目标从服务节点;
主服务节点监控到完成服务升级的主应用节点处于在线状态,将业务转移至主应用节点,所述主应用节点将升级文件同步至各从应用节点,以使从应用节点完成服务升级。
图3为本发明实施例提供的一种终端300的结构示意图,该终端300可以用于执行本发明实施例提供的应用软件分布式部署方法。
其中,该终端300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。
处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(Integrated Circuit,简称IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器310可以仅包括中央处理器(Central Processing Unit,简称CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
因此,本发明在服务部署中基于consul注册中心实现服务的注册发现,部署方案中包含多个server节点和多个client节点,应用服务通过主备的形式安装在client节点中,同时结合多client部署的方式实现多个应用服务的高可用。同时,本发明在升级方法中提出基于状态控制的服务控制方法,服务的升级操作基于服务的当前状态,服务的状态通过事件触发,并且在不同的状态下执行不同的动作,通过主备服务状态的变化来推动升级流程的执行,实现了升级过程中服务依旧稳定对外提供服务。本发明混合使用单节点主备部署和多节点部署,提高服务运行稳定性,同时提出了三种节点状态,通过节点状态的变化实现高可用服务的管理和升级,降低运维难度,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种应用软件分布式部署方法,其特征在于,包括:
选取多个服务节点,并在每个服务节点上部署服务端,选取多个应用节点,并在每个应用节点上部署客户端,将多个服务节点和多个应用节点组建为服务集群;
采用选举的方式从多个服务节点中确定主服务节点,其余服务节点作为从服务节点,主服务节点与从服务节点保持数据同步;
将主服务节点的信息发送至多个应用节点,在多个应用节点中指定主应用节点,其余应用节点作为从应用节点;
通过主服务节点监控各应用节点的状态,如果监控到主应用节点离线,则将业务转移至处于在线状态的目标从服务节点。
2.根据权利要求1所述的方法,其特征在于,选取多个服务节点,并在每个服务节点上部署服务端,选取多个应用节点,并在每个应用节点上部署客户端,将多个服务节点和多个应用节点组建为服务集群,包括:
在应用节点上部署客户端,所述客户端包括服务注册模块和状态检测模块;
将各应用节点的持久化数据保存至各服务节点,所述持久化数据包括服务名称、端口、地址。
3.根据权利要求1所述的方法,其特征在于,采用选举的方式从多个服务节点中确定主服务节点,其余服务节点作为从服务节点,主服务节点与从服务节点保持数据同步,包括:
从服务节点定期接收主服务节点的心跳信息,若超期未接收到主服务节点的心跳信息,则判定主服务节点故障;
采用选举的方式生成新的主服务节点,并将新的主服务节点的信息发送至各从服务节点和各应用节点。
4.根据权利要求3所述的方法,其特征在于,采用选举的方式从多个服务节点中确定主服务节点,其余服务节点作为从服务节点,主服务节点与从服务节点保持数据同步,包括:
从服务节点监控主服务节点的数据更新情况,并将主服务节点更新的数据复制至本地;
从服务节点定期对本地数据与主服务节点的数据进行一致性校验,若校验未通过则生成报错信息。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
主服务节点将升级文件发送至主应用节点,以使主应用节点进行服务升级;
主服务节点监控到主应用节点在服务升级过程中处于离线状态,将业务转移至处于在线状态的目标从服务节点;
主服务节点监控到完成服务升级的主应用节点处于在线状态,将业务转移至主应用节点,所述主应用节点将升级文件同步至各从应用节点,以使从应用节点完成服务升级。
6.一种应用软件分布式部署系统,其特征在于,包括:
节点部署单元,用于选取多个服务节点,并在每个服务节点上部署服务端,选取多个应用节点,并在每个应用节点上部署客户端,将多个服务节点和多个应用节点组建为服务集群;
服务设置单元,用于采用选举的方式从多个服务节点中确定主服务节点,其余服务节点作为从服务节点,主服务节点与从服务节点保持数据同步;
应用设置单元,用于将主服务节点的信息发送至多个应用节点,在多个应用节点中指定主应用节点,其余应用节点作为从应用节点;
应用切换单元,用于通过主服务节点监控各应用节点的状态,如果监控到主应用节点离线,则将业务转移至处于在线状态的目标从服务节点。
7.根据权利要求6所述的系统,其特征在于,所述节点部署单元用于:
在应用节点上部署客户端,所述客户端包括服务注册模块和状态检测模块;
将各应用节点的持久化数据保存至各服务节点,所述持久化数据包括服务名称、端口、地址。
8.根据权利要求7所述的系统,其特征在于,所述服务设置单元用于:
从服务节点定期接收主服务节点的心跳信息,若超期未接收到主服务节点的心跳信息,则判定主服务节点故障;
采用选举的方式生成新的主服务节点,并将新的主服务节点的信息发送至各从服务节点和各应用节点。
9.一种终端,其特征在于,包括:
处理器;
用于存储处理器的执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-5任一项所述的方法。
10.一种存储有计算机程序的计算机可读存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111155482.4A CN114020279A (zh) | 2021-09-29 | 2021-09-29 | 应用软件分布式部署方法、系统、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111155482.4A CN114020279A (zh) | 2021-09-29 | 2021-09-29 | 应用软件分布式部署方法、系统、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114020279A true CN114020279A (zh) | 2022-02-08 |
Family
ID=80055238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111155482.4A Pending CN114020279A (zh) | 2021-09-29 | 2021-09-29 | 应用软件分布式部署方法、系统、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114020279A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114826892A (zh) * | 2022-04-28 | 2022-07-29 | 济南浪潮数据技术有限公司 | 一种集群节点控制方法、装置、设备及介质 |
CN115456640A (zh) * | 2022-08-17 | 2022-12-09 | 广东省第二人民医院(广东省卫生应急医院) | 一种药品监控溯源方法及系统 |
-
2021
- 2021-09-29 CN CN202111155482.4A patent/CN114020279A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114826892A (zh) * | 2022-04-28 | 2022-07-29 | 济南浪潮数据技术有限公司 | 一种集群节点控制方法、装置、设备及介质 |
CN115456640A (zh) * | 2022-08-17 | 2022-12-09 | 广东省第二人民医院(广东省卫生应急医院) | 一种药品监控溯源方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103414712B (zh) | 一种分布式虚拟桌面管理系统和方法 | |
CN114020279A (zh) | 应用软件分布式部署方法、系统、终端及存储介质 | |
CN112463448B (zh) | 分布式集群数据库同步方法、装置、设备及存储介质 | |
CN109474465A (zh) | 一种基于服务器集群的可动态流转的高可用性的实现方法和系统 | |
CN109446169B (zh) | 一种双控磁盘阵列共享文件系统 | |
CN109639773A (zh) | 一种动态构建的分布式数据集群控制系统及其方法 | |
CN113051110A (zh) | 集群切换方法、装置及设备 | |
CN111949444A (zh) | 一种基于分布式服务集群的数据备份与恢复系统及方法 | |
CN114064414A (zh) | 一种高可用的集群状态监控方法及系统 | |
CN107357800A (zh) | 一种数据库高可用零丢失解决方法 | |
CN110209526A (zh) | 一种存储层同步系统、及存储介质 | |
CN113515316A (zh) | 一种新型边缘云操作系统 | |
CN113467873A (zh) | 虚拟机的调度方法、装置、电子设备及存储介质 | |
CN105959145B (zh) | 一种适用高可用性集群的并行管理服务器的方法及系统 | |
CN110377487A (zh) | 一种处理高可用集群脑裂的方法及装置 | |
EP4060514A1 (en) | Distributed database system and data disaster backup drilling method | |
CN110716828B (zh) | 一种数据库实时备份方法 | |
CN115794769B (zh) | 高可用数据库管理的方法、电子设备及存储介质 | |
CN110399254A (zh) | 一种服务器cmc双机热活方法、系统、终端及存储介质 | |
CN114666201B (zh) | 一种高可用的分布式微服务架构 | |
CN113472891B (zh) | 一种sdn控制器集群数据处理方法、设备及介质 | |
JP5798056B2 (ja) | 呼処理情報の冗長化制御システムおよびこれに利用する予備保守サーバ | |
CN104052799A (zh) | 一种利用资源环实现高可用存储的方法 | |
CN107483257A (zh) | 一种基于x86和arm混合环境的应用系统部署方法及架构 | |
CN112256484A (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 |