CN114371943A - 基于微服务架构的优雅发布方法及其装置、设备和介质 - Google Patents
基于微服务架构的优雅发布方法及其装置、设备和介质 Download PDFInfo
- Publication number
- CN114371943A CN114371943A CN202111623832.5A CN202111623832A CN114371943A CN 114371943 A CN114371943 A CN 114371943A CN 202111623832 A CN202111623832 A CN 202111623832A CN 114371943 A CN114371943 A CN 114371943A
- Authority
- CN
- China
- Prior art keywords
- service
- state
- eureka
- issuing
- calling
- 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
Images
Classifications
-
- 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
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种基于微服务架构的优雅发布方法及其装置、设备和介质,通过调用优雅发布脚步发布新服务;依据所述脚本查询当前服务进程号并检测当前是否存在服务进程;若不存在,则直接发布最新服务;若存在,则跳转下一步;通过所述脚本查询当前服务器的ip,依据对应该ip的服务实例调用eureka服务状态变更接口并将所述服务实例状态设为暂停;调用eureka服务列表接口循环检测所述服务实例状态是否变更为暂停,当变更为暂停后关闭所述服务进程,并发布最新服务。本申请保证了在发包过程,接口依然是可用的,避免了发包过程的接口不可用问题;针对当前存在的服务进程进入正常关闭流程,关闭时可以完成收尾操作,避免了强制关闭导致的程序强制中断关闭。
Description
技术领域
本申请涉及微服务发布技术领域。尤其是涉及一种基于微服务架构的优雅发布方法及其装置、设备和介质。
背景技术
如图1所示,在基于springcloud的微服务架构的web后台服务发布过程中,通常使用eureka作为注册中心,zuul作为网关,用户请求会先进入网关,网关中会通过ribbon组件缓存eureka中注册的服务列表,在服务列表中进行选择分发,分发到相应的服务。服务间的调用的逻辑也是类似于zuul网关的分发逻辑。当有服务有新版本或修复服务bug后,需要对原有服务进行重新发布部署,现有做法是采用强制发布去发布服务,但总是会导致服务接口不可用和业务未处理完中断的问题。而在发布过程中,先强制关闭现有服务或当前服务后,再发布新服务,往往导致发布过程中接口、服务的不可用和业务处理的强制中断。
申请内容
鉴于以上所述现有技术的缺点,本申请的目的在于提供一种基于微服务架构的优雅发布方法及其装置、设备和介质,用于解决现有技术中传统强制发布过程中用户体验差和可用性低的问题。
为实现上述目的及其他相关目的,本申请提供一种基于微服务架构的优雅发布方法,所述方法包括:调用优雅发布脚步发布新服务;依据所述脚本查询当前服务进程号并检测当前是否存在服务进程;若不存在,则直接发布最新服务;若存在,则跳转下一步;通过所述脚本查询当前服务器的ip,依据对应该ip的服务实例调用eureka服务状态变更接口并将所述服务实例状态设为暂停;调用eureka服务列表接口循环检测所述服务实例状态是否变更为暂停,当变更为暂停后关闭所述服务进程,并发布最新服务。
于本申请的一实施例中,所述脚本的参数包括:服务名、jar包名、java服务占用的端口。
于本申请的一实施例中,所述服务实例要求注册到eureka的实例id为$ip+:+$port。
于本申请的一实施例中,所述调用eureka服务列表接口循环检测所述服务实例状态是否变更为暂停,包括:调用eureka服务列表接口循环检测所述服务实例状态是否变更为暂停;若在第一预设时间未变更为暂停,则中断发布;若变更为暂停,则等待第二预设时间后再关闭所述服务进程。
于本申请的一实施例中,所述关闭所述服务进程包括:使用kill-15pid关闭所述服务进程;循环检查所述服务进程是否正常退出;若在第三预设时间内仍未关闭,则使用kill-9pid强制关闭所述服务进程。
于本申请的一实施例中,所述方法还包括:最新服务发布后,调用eureka服务列表接口循环检测所述服务实例是否已经注册到服务列表中;若已注册到服务列表中,则调用eureka服务状态变更接口将所述服务实例状态设为启动;若在第四预设时间内未检测已注册到服务列表中,则中断发布;调用eureka服务列表接口检测所述服务实例状态是否变更为启动;若未变更为启动,则判断是否达到第五预设时间;若未达到,则跳转至调用eureka服务状态变更接口将所述服务实例状态设为启动的步骤;若达到,则中断发布;若变更为启动,则判定最新服务发布成功,以供发布下一个或多个服务器。
为实现上述目的及其他相关目的,本申请提供一种基于微服务架构的优雅发布装置,所述装置包括:获取模块,用于调用优雅发布脚步发布新服务;处理模块,用于依据所述脚本查询当前服务进程号并检测当前是否存在服务进程;若不存在,则直接发布最新服务;若存在,则跳转下一步;通过所述脚本查询当前服务器的ip,依据对应该ip的服务实例调用eureka服务状态变更接口并将所述服务实例状态设为暂停;调用eureka服务列表接口循环检测所述服务实例状态是否变更为暂停,当变更为暂停后关闭所述服务进程,并发布最新服务。
为实现上述目的及其他相关目的,本申请提供一种计算机设备,所述设备包括:存储器、处理器、及通信器;所述存储器存储有数据传输程序,所述处理器执行所述数据传输程序实现如上所述的方法;所述通信器通信连接外部设备。
为实现上述目的及其他相关目的,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该数据传输程序被处理器执行时实现如上所述的方法。
如上所述,本申请的一种基于微服务架构的优雅发布方法及其装置、设备和介质,通过调用优雅发布脚步发布新服务;依据所述脚本查询当前服务进程号并检测当前是否存在服务进程;若不存在,则直接发布最新服务;若存在,则跳转下一步;通过所述脚本查询当前服务器的ip,依据对应该ip的服务实例调用eureka服务状态变更接口并将所述服务实例状态设为暂停;调用eureka服务列表接口循环检测所述服务实例状态是否变更为暂停,当变更为暂停后关闭所述服务进程,并发布最新服务。
具有以下有益效果:
本申请保证了在发包过程,接口依然是可用的,避免了发包过程的接口不可用问题;针对当前存在的服务进程进入正常关闭流程,关闭时可以完成收尾操作,避免了强制关闭导致的程序强制中断关闭。
附图说明
图1显示为本申请于一实施例中的基于springcloud的微服务架构的场景示意图。
图2显示为本申请于一实施例中的基于springcloud的微服务架构的传统强制发布的场景示意图。
图3显示为本申请于一实施例中的基于微服务架构的优雅发布方法的流程示意图。
图4显示为本申请于一实施例中的基于微服务架构的优雅发布装置的模块示意图。
图5显示为本申请于一实施例中的计算机设备的结构示意图。
具体实施方式
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,遂图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能、
Spring Cloud Ribbon是一个基于Http和TCP的客服端负载均衡工具,它是基于Netflix Ribbon实现的。客户端负载均衡即是当浏览器向后台发出请求的时候,客户端会向Eureka Server读取注册到服务器的可用服务信息列表,根据设定的负载均衡策略(没有设置即用默认的),选择向哪台服务器发送请求。
Zuul是spring cloud中的微服务网关。网关:是一个网络整体系统中的前置门户入口。请求首先通过网关,进行路径的路由,定位到具体的服务节点上。Zuul是一个微服务网关,首先是一个微服务。也是会在Eureka注册中心中进行服务的注册和发现。也是一个网关,请求应该通过Zuul来进行路由。
如图1所示,通常基于springcloud的微服务架构中,使用eureka作为注册中心,zuul作为网关,用户请求会先进入网关,网关中会通过ribbon组件缓存eureka中注册的服务列表,在服务列表中进行选择分发,分发到相应的服务。服务间的调用的逻辑也是类似于zuul网关的分发逻辑。当有服务有新版本或修复服务bug后,需要对原有服务进行重新发布部署,在以往会使用传统的强制发布去发布服务,传统的发布过程在检测到当前存在服务进程时,会通过kill-9强制关闭服务进程来发布新服务。
如图2所示,假设正在发布的是A服务,由于A服务在发布时kill-9pid没有通知到eureka,euraka服务列表中暂时还会存在这个已经被杀死的服务A,当前的A服务是不可用的,那么当用户请求时如果分发到此服务将不可用,导致用户请求失败。并且在kill-9pid结束服务进程时可能存在正在处理的业务或者功能,强制的结束会导致异常中断,脏数据等问题。
因此,传统的强制发布过程严重降低了服务的可用性,在生产环境中服务发布过程中对于用户的体验是极差的不能接受的。进而本申请设计了一套基于微服务架构的优雅发布方法。
如图3所示,展示本申请于一实施例中的基于微服务架构的优雅发布方法的流程示意图。如图所述,所述方法包括:
步骤S1:调用优雅发布脚步发布新服务。
于本申请一实施例中,所述脚本的参数包括:服务名(appID)、jar包名、java服务占用的端口($port)。
优选地,在新服务发布前,保证有两台或以上服务在运行并且注册到服务中心,两台依次发布。
步骤S2:依据所述脚本查询当前服务进程号并检测当前是否存在服务进程;若不存在,则直接发布最新服务;若存在,则跳转下一步。
例如,通过jar包名,使用脚本(ps)查询当前服务进程号。
步骤S3:通过所述脚本查询当前服务器的ip(ip addr),依据对应该ip的服务实例调用eureka服务状态变更接口并将所述服务实例状态设为暂停。
例如,通过服务名,服务实例id=$ip:$port,其中要求注册到eureka的实例id为$ip+:+$port,调用eureka服务状态变更接口设置服务实例状态为暂停(OUT_OF_SERVICE)。其中,OUT_OF_SERVICE表示将某个实例设置为暂停服务,这个和删除服务(DOWN)不同,如果手动调用删除,但如果客户端还活着,定时任务还是会将实例注册上去。但是改成这个状态,定时任务更新不了这个状态。
需要说明的是,这一步主要是告知eureka当前服务实例需要暂停提供服务,但是由于ribbon的缓存机制,服务间的服务列表缓存是不会及时刷新的,并且这个服务实例内可能还存在未处理完的请求,所以不能立即执行关闭服务(kill-15)操作。
步骤S4:调用eureka服务列表接口循环检测所述服务实例状态是否变更为暂停,当变更为暂停后关闭所述服务进程,并发布最新服务。
步骤S41:调用eureka服务列表接口循环检测所述服务实例状态是否在第一预设时间内变更为暂停;
步骤S42:若未变更为暂停,则中断发布;若变更为暂停,则等待第二预设时间后再关闭所述服务进程。
优选地,所述第一预设时间优选为420秒。上述过程是一个check的过程,用于保证调用的服务状态变更为暂停接口一定成功,故这里需要设置一个最大的check时间,即420s,以避免无限循环。
优选地,第二预设时间为70秒,用于保证剩余web请求处理完。
需要说明的是,这里的70s主要是考虑到ribbon的服务列表缓存刷新时间和最后请求到达的最大处理时间,所以这里的时间大于等于ribbon的服务列表缓存刷新时间(ribbon.ServerListRefreshInterval默认为30秒)+请求最大处理时间(ribbon.ReadTimeout默认值为5秒,本申请服务设置为30秒)。一般来说还需要考虑在ribbon从eureka获取列表所花的时间,所以再在上调10秒,故最终设定为70秒。
于本申请一实施例中,所述关闭所述服务进程包括:
步骤S431:使用kill-15pid关闭所述服务进程。
需要说明的是,使用kill-15pid可以使程序进入正常关闭流程,保证java中的关闭钩子正常运行,程序执行收尾操作,避免了强制关闭导致的程序强制中断关闭。
步骤S432:循环检查所述服务进程是否正常退出;
步骤S433:若在第三预设时间内仍未关闭,则使用kill-9pid强制关闭所述服务进程。
需要说明的是,由于kill-15pid可以被阻塞和处理,要求程序自己正常退出,存在程序退出逻辑堵塞的可能,所以需要增加一个check的机制,设置一个程序正常处理完剩余任务的最大等待时间,这里设置120秒的超时时间,若超出这个时间,则最终通过kill-9pid保证程序一定被关闭。
kill-9和kill-15的区别在于:kill-9)SIGKILL用来立即结束程序的运行.本信号不能被阻塞、处理和忽略。如果管理员发现某个进程终止不了,可尝试发送这个信号;15)SIGTERM,程序结束(terminate)信号,与SIGKILL不同的是该信号可以被阻塞和处理。通常用来要求程序自己正常退出,shell命令kill缺省产生这个信号。如果进程终止不了,才会尝试SIGKILL。
于本申请一实施例中,所述方法还包括:
步骤S51:最新服务发布后,调用eureka服务列表接口循环检测所述服务实例是否已经注册到服务列表中;
步骤S52:若已注册到服务列表中,则调用eureka服务状态变更接口将所述服务实例状态设为启动;若在第四预设时间内未检测已注册到服务列表中,则中断发布。
举例来说,所述第四预设时间可设为200秒。
步骤S53:调用eureka服务列表接口检测所述服务实例状态是否变更为启动(UP);
步骤S54:若未变更为启动,则判断是否达到第五预设时间;若未达到,则跳转至步骤S52调用eureka服务状态变更接口将所述服务实例状态设为启动的步骤;若达到,则中断发布。
简单来说,服务启动后,还需要循环调用eureka服务列表接口判断服务实例是否已经注册到服务列表中,只有真正注册到eureka服务列表后才能证明服务是真正的启动,才可以被各个服务的ribbon获取到。由于存在服务内部出错导致注册失败的情况,这里也需要设置一个最大的超时时间,优选这里设置的为420秒,以避免无限循环检测的问题。
其中,可在最大尝试时间-第五预设时间内设置循环的次数,即跳转至步骤S52的次数,以多次尝试进行启动状态的设置。例如,会设置个检测频率,这个最大的尝试时间/频率=次数,比如设置2秒一次,420/2=最大210次。
步骤S55:若变更为启动,则判定最新服务发布成功,以供发布下一个或多个服务器。
需要说明的是,这里主要是考虑之前设置了服务实例状态为暂停(OUT_OF_SERVICE),有时eureka会遗留这状态,为免这个问题,可以主动调用一次状态变更为UP即可。
简单来说,该步骤用于保证最新服务发布成功,再发布其他服务器(同时发布)的最新服务。
如图4所示,展示本申请于一实施例中的基于微服务架构的优雅发布装置的模块示意图,如图所示,所述基于微服务架构的优雅发布装置400包括:
获取模块401,用于调用优雅发布脚步发布新服务;
处理模块402,用于依据所述脚本查询当前服务进程号并检测当前是否存在服务进程;若不存在,则直接发布最新服务;若存在,则跳转下一步;通过所述脚本查询当前服务器的ip,依据对应该ip的服务实例调用eureka服务状态变更接口并将所述服务实例状态设为暂停;调用eureka服务列表接口循环检测所述服务实例状态是否变更为暂停,当变更为暂停后关闭所述服务进程,并发布最新服务。
可以理解的是,所述基于微服务架构的优雅发布装置400通过各模块的运行,能够实现如图3所述的基于微服务架构的优雅发布方法。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,处理模块402可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上处理模块402的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital signal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
如图5所示,展示本申请于一实施例中的计算机设备的结构示意图,如图所示,所述计算机设备500包括:存储器501、处理器502、及通信器503。所述存储器501存储有数据传输程序,所述处理器502执行所述数据传输程序实现如图3所述的基于微服务架构的优雅发布方法;所述通信器503通信连接外部设备。所述外部设备可以服务器或客服端。
所述存储器501可能包含随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
所述处理器502可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
所述通信器503用于实现其他设备(例如客户端、控制器、读写库和只读库)之间的通信连接。其可包含一组或多组不同通信方式的模块。所述通信连接可以是一个或多个有线/无线通讯方式及其组合。通信方式包括:互联网、CAN、内联网、广域网(WAN)、局域网(LAN)、无线网络、数字用户线(DSL)网络、帧中继网络、异步传输模式(ATM)网络、虚拟专用网络(VPN)和/或任何其它合适的通信网络中的任何一个或多个。例如:WIFI、蓝牙、NFC、GPRS、GSM、及以太网中任意一种及多种组合。
于本申请的一实施例中,一种计算机可读存储介质,其上存储有数据传输程序,该数据传输程序被处理器执行时实现如图3所述的基于微服务架构的优雅发布方法。
所述计算机可读存储介质,本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的图像处理程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
这些计算机程序程序也可装载到计算机或其他可编程数据处理设备上,使在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带式磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
综上所述,本申请提供一种基于微服务架构的优雅发布方法及其装置、设备和介质,有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。
Claims (9)
1.一种基于微服务架构的优雅发布方法,其特征在于,所述方法包括:
调用优雅发布脚步发布新服务;
依据所述脚本查询当前服务进程号并检测当前是否存在服务进程;若不存在,则直接发布最新服务;若存在,则跳转下一步;
通过所述脚本查询当前服务器的ip,依据对应该ip的服务实例调用eureka服务状态变更接口并将所述服务实例状态设为暂停;
调用eureka服务列表接口循环检测所述服务实例状态是否变更为暂停,当变更为暂停后关闭所述服务进程,并发布最新服务。
2.根据权利要求1所述的基于微服务架构的优雅发布方法,其特征在于,所述脚本的参数包括:服务名、jar包名、java服务占用的端口。
3.根据权利要求1所述的基于微服务架构的优雅发布方法,其特征在于,所述服务实例要求注册到eureka的实例id为$ip+:+$port。
4.根据权利要求1所述的基于微服务架构的优雅发布方法,其特征在于,所述调用eureka服务列表接口循环检测所述服务实例状态是否变更为暂停,包括:
调用eureka服务列表接口循环检测所述服务实例状态是否变更为暂停;
若在第一预设时间未变更为暂停,则中断发布;
若变更为暂停,则等待第二预设时间后再关闭所述服务进程。
5.根据权利要求1或4所述的基于微服务架构的优雅发布方法,其特征在于,所述关闭所述服务进程包括:
使用kill-15pid关闭所述服务进程;
循环检查所述服务进程是否正常退出;
若在第三预设时间内仍未关闭,则使用kill-9pid强制关闭所述服务进程。
6.根据权利要求1所述的基于微服务架构的优雅发布方法,其特征在于,所述方法还包括:
最新服务发布后,调用eureka服务列表接口循环检测所述服务实例是否已经注册到服务列表中;
若已注册到服务列表中,则调用eureka服务状态变更接口将所述服务实例状态设为启动;若在第四预设时间内未检测已注册到服务列表中,则中断发布;
调用eureka服务列表接口检测所述服务实例状态是否变更为启动;
若未变更为启动,则判断是否达到第五预设时间;若未达到,则跳转至调用eureka服务状态变更接口将所述服务实例状态设为启动的步骤;若达到,则中断发布;
若变更为启动,则判定最新服务发布成功,以供发布下一个或多个服务器。
7.一种基于微服务架构的优雅发布装置,其特征在于,所述装置包括:
获取模块,用于调用优雅发布脚步发布新服务;
处理模块,用于依据所述脚本查询当前服务进程号并检测当前是否存在服务进程;若不存在,则直接发布最新服务;若存在,则跳转下一步;通过所述脚本查询当前服务器的ip,依据对应该ip的服务实例调用eureka服务状态变更接口并将所述服务实例状态设为暂停;调用eureka服务列表接口循环检测所述服务实例状态是否变更为暂停,当变更为暂停后关闭所述服务进程,并发布最新服务。
8.一种计算机设备,其特征在于,所述设备包括:存储器、处理器、及通信器;
所述存储器存储有数据传输程序,所述处理器执行所述数据传输程序实现如权利要求1-6中任意一项所述的方法;所述通信器通信连接外部设备。
9.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该数据传输程序被处理器执行时实现如权利要求1-6中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111623832.5A CN114371943A (zh) | 2021-12-28 | 2021-12-28 | 基于微服务架构的优雅发布方法及其装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111623832.5A CN114371943A (zh) | 2021-12-28 | 2021-12-28 | 基于微服务架构的优雅发布方法及其装置、设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114371943A true CN114371943A (zh) | 2022-04-19 |
Family
ID=81142387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111623832.5A Pending CN114371943A (zh) | 2021-12-28 | 2021-12-28 | 基于微服务架构的优雅发布方法及其装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114371943A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114785861A (zh) * | 2022-06-22 | 2022-07-22 | 飞狐信息技术(天津)有限公司 | 一种服务请求转发系统、方法、计算机设备和存储介质 |
CN117155994A (zh) * | 2023-10-27 | 2023-12-01 | 广州市千钧网络科技有限公司 | 服务注册管理方法、装置、设备、可读存储介质 |
CN117331675A (zh) * | 2023-11-27 | 2024-01-02 | 云筑信息科技(成都)有限公司 | 一种微服务中优雅启停的方法 |
-
2021
- 2021-12-28 CN CN202111623832.5A patent/CN114371943A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114785861A (zh) * | 2022-06-22 | 2022-07-22 | 飞狐信息技术(天津)有限公司 | 一种服务请求转发系统、方法、计算机设备和存储介质 |
CN117155994A (zh) * | 2023-10-27 | 2023-12-01 | 广州市千钧网络科技有限公司 | 服务注册管理方法、装置、设备、可读存储介质 |
CN117155994B (zh) * | 2023-10-27 | 2024-02-02 | 广州市千钧网络科技有限公司 | 服务注册管理方法、装置、设备、可读存储介质 |
CN117331675A (zh) * | 2023-11-27 | 2024-01-02 | 云筑信息科技(成都)有限公司 | 一种微服务中优雅启停的方法 |
CN117331675B (zh) * | 2023-11-27 | 2024-03-26 | 云筑信息科技(成都)有限公司 | 一种微服务中优雅启停的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114371943A (zh) | 基于微服务架构的优雅发布方法及其装置、设备和介质 | |
WO2020211222A1 (zh) | 基于数据服务平台提供微服务的方法、装置、存储介质 | |
CN108365993B (zh) | 区块链节点动态变更方法、系统和计算机可读存储介质 | |
WO2016184175A1 (zh) | 数据库处理方法及装置 | |
WO2017097130A1 (zh) | 一种分布式存储系统的服务节点切换方法和装置 | |
US7933947B2 (en) | Connection manager that supports failover protection | |
CN109981716B (zh) | 一种微服务调用方法及装置 | |
US10798218B2 (en) | Environment isolation method and device | |
CN112035228A (zh) | 一种资源调度方法及装置 | |
CN111190586A (zh) | 软件开发框架的搭建及使用方法、计算设备和存储介质 | |
US20060248283A1 (en) | System and method for monitoring threads in a clustered server architecture | |
JP2014523026A (ja) | 仮想機械移行ツール | |
US20220078230A1 (en) | System and method for dynamic auto-scaling based on roles | |
US11507479B2 (en) | High availability for a relational database management system as a service in a cloud platform | |
CN111010422B (zh) | 一种优雅停机的系统及方法 | |
US10977007B2 (en) | Apparatus and method for executing function | |
CN112860282B (zh) | 集群插件的升级方法、装置和服务器 | |
CN112433863A (zh) | 微服务调用方法、装置、终端设备以及存储介质 | |
CN111181865A (zh) | 一种基于业务的流量分发方法及系统、存储介质及终端 | |
CN106789308A (zh) | 一种微服务架构可自动伸缩的gis服务装置及其控制方法 | |
US8370448B2 (en) | API for worker node retrieval of session request | |
CN113726566A (zh) | 一种服务网关装置 | |
US10846156B2 (en) | Methods, devices and computer program products for managing software function | |
CN111737028B (zh) | Dubbo服务检测方法及装置 | |
CN110545328A (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 |