CN114466026B - 应用程序接口的更新方法、装置、存储介质和计算设备 - Google Patents
应用程序接口的更新方法、装置、存储介质和计算设备 Download PDFInfo
- Publication number
- CN114466026B CN114466026B CN202210005386.XA CN202210005386A CN114466026B CN 114466026 B CN114466026 B CN 114466026B CN 202210005386 A CN202210005386 A CN 202210005386A CN 114466026 B CN114466026 B CN 114466026B
- Authority
- CN
- China
- Prior art keywords
- interface
- application program
- target
- service
- identifier
- 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
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000004044 response Effects 0.000 claims abstract description 16
- 238000012544 monitoring process Methods 0.000 claims description 6
- 230000008447 perception Effects 0.000 abstract description 3
- 238000007726 management method Methods 0.000 description 69
- 230000000007 visual effect Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000001960 triggered effect Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000000523 sample Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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
-
- 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/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- 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/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- 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/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本公开的实施方式提供了一种应用程序接口的更新方法、装置、存储介质和计算设备。所述方法应用于分布式协调组件,所述分布式协调组件用于在管理服务和查询服务之间提供数据同步,包括:接收管理服务发送的针对目标应用程序接口的更新请求;其中,所述更新请求包括所述目标应用程序接口的接口标识;响应于所述更新请求,向所述查询服务提供所述接口标识;以使所述查询服务从与所述管理服务对应的数据库中获取所述接口标识对应的接口配置信息,并在本地更新所述接口配置信息,基于更新后的目标应用程序接口提供线上服务。应用该方法可以满足了高可用性场景的需求,做到了用户无感知的线上更新。
Description
技术领域
本公开的实施方式涉及计算机技术领域,更具体地,本公开的实施方式涉及一种应用程序接口的更新方法、装置、存储介质和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
应用程序接口(Application Programming Interface,API),又称为应用编程接口,是软件应用不同组成部分进行衔接的接口。通常应用程序接口可以提供不同组件、系统之间的交互能力。
随着软件应用的快速发展,不断会出现旧的产品需求被新的产品需求取代的情况;为了适应新的产品需求,一般需要对应用程序接口进行更新,以将新产品需求替换旧产品需求。
在相关技术中,对应用程序接口进行更新时,需要将应用程序接口暂时下线,经过线下更新后再上线。
发明内容
但是,在下线到上线这段时间内用户将无法访问该应用程序接口,无法满足一些高可用性场景的需求,无法做到用户无感知的线上更新。
为此,本公开实施方式提供了以下应用程序接口的更新方法、装置、存储介质和设备,用于实现用户无感知的线上更新。
本公开实施方式的第一方面中,提供了一种应用程序接口的更新方法包括:
管理服务向分布式协调组件发起针对目标应用程序接口的更新请求;其中,所述更新请求包括所述目标应用程序接口的接口标识;
所述分布式协调组件响应于所述更新请求,向查询服务提供所述接口标识;
所述查询服务从与所述管理服务对应的数据库中获取所述接口标识对应的接口配置信息,并在本地更新所述接口配置信息,基于更新后的目标应用程序接口提供线上服务。
可选的,所述分布式协调组件响应于所述更新请求,向查询服务提供所述接口标识,包括:
所述分布式协调组件响应于所述更新请求,确定与所述目标应用程序接口绑定的目标资源标识,并在所述目标资源标识下创建所述接口标识,通过触发所述接口标识的第一事件向所述目标资源标识对应在查询服务中的目标服务节点提供所述接口标识。
可选的,所述方法还包括:
所述分布式协调组件删除在所述目标资源标识下创建的所述接口标识。
本公开实施方式的第二方面中,提供了一种应用程序接口的更新方法,应用于分布式协调组件,所述分布式协调组件用于在管理服务和查询服务之间提供数据同步,所述方法包括:
接收管理服务发送的针对目标应用程序接口的更新请求;其中,所述更新请求包括所述目标应用程序接口的接口标识;
响应于所述更新请求,向所述查询服务提供所述接口标识;以使所述查询服务从与所述管理服务对应的数据库中获取所述接口标识对应的接口配置信息,并在本地更新所述接口配置信息,基于更新后的目标应用程序接口提供线上服务。
可选的,所述分布式协调组件中维护有所述查询服务中的各个服务节点的资源标识;
所述向所述查询服务提供所述接口标识,包括:
确定与所述目标应用程序接口绑定的目标资源标识;
在所述目标资源标识下创建所述接口标识;
通过触发所述接口标识的第一事件向所述目标资源标识对应在所述查询服务中的目标服务节点提供所述接口标识。
可选的,所述通过触发所述接口标识的第一事件向所述目标资源标识对应在所述查询服务中的目标服务节点提供所述接口标识,包括:
在所述接口标识下创建第一事件的事件节点,以使所述事件节点在监听到所述第一事件后,向所述目标资源标识对应在所述查询服务中的目标服务节点提供所述接口标识。
可选的,所述方法还包括:
基于所述目标服务节点的更新结果,更新所述接口标识关联的状态信息;其中,其中,所述状态信息用于表示所述目标服务节点是否成功更新接口配置信息;
通过触发所述接口标识的第二事件将所述状态信息提供给所述管理服务;以使所述管理服务在所有的目标资源标识的状态信息均表示成功时,更新本地维护的所述目标应用程序接口的版本信息。
可选的,所述方法还包括:
删除所述目标资源标识下创建的所述接口标识。
可选的,所述更新请求包括针对目标应用程序接口的新增请求,或者针对目标应用程序接口的升级请求。
可选的,所述接口标识包括所述目标应用程序的更新版本号;
在所述更新请求为升级请求时,所述更新本地维护的所述目标应用程序接口的版本信息,包括:
将应用程序接口列表中的所述目标应用程序接口的当前版本号更新为所述更新版本号;
将所述目标应用程序接口的版本列表中的当前版本号加入到历史版本号中,将更新版本号加入到当前版本号,删除更新版本号。
可选的,所述更新版本号包括用于升级目标应用程序接口的升级版本号,或者回滚目标应用程序接口的历史版本号。
可选的,所述接口配置信息是以支持并发的数据结构的形式维护在所述目标服务节点的内存中。
可选的,所述支持并发的数据结构包括ConcurrentMap。
可选的,所述分布式协调组件包括Zookeeper。
在本公开实施方式的第三方面中,提供了一种应用程序接口的更新装置,所述装置包括:
发送单元,管理服务向分布式协调组件发起针对目标应用程序接口的更新请求;其中,所述更新请求包括所述目标应用程序接口的接口标识;
响应单元,所述分布式协调组件响应于所述更新请求,向查询服务提供所述接口标识;
更新单元,所述查询服务从与所述管理服务对应的数据库中获取所述接口标识对应的接口配置信息,并在本地更新所述接口配置信息,基于更新后的目标应用程序接口提供线上服务。
可选的,所述响应单元进一步包括所述分布式协调组件响应于所述更新请求,确定与所述目标应用程序接口绑定的目标资源标识,并在所述目标资源标识下创建所述接口标识,通过触发所述接口标识的第一事件向所述目标资源标识对应在查询服务中的目标服务节点提供所述接口标识。
可选的,所述装置还包括:
删除单元,所述分布式协调组件删除在所述目标资源标识下创建的所述接口标识。
在本公开实施方式的第四方面中,提供了一种应用程序接口的更新装置,应用于分布式协调组件,所述分布式协调组件用于在管理服务和查询服务之间提供数据同步,所述装置包括:
接收单元,接收管理服务发送的针对目标应用程序接口的更新请求;其中,所述更新请求包括所述目标应用程序接口的接口标识;
更新单元,响应于所述更新请求,向所述查询服务提供所述接口标识;以使所述查询服务从与所述管理服务对应的数据库中获取所述接口标识对应的接口配置信息,并在本地更新所述接口配置信息,基于更新后的目标应用程序接口提供线上服务。
可选的,所述更新单元,包括:
确定子单元,确定与所述目标应用程序接口绑定的目标资源标识;
创建子单元,在所述目标资源标识下创建所述接口标识;
更新子单元,通过触发所述接口标识的第一事件向所述目标资源标识对应在所述查询服务中的目标服务节点提供所述接口标识;以使所述目标服务节点从与所述管理服务对应的数据库中获取所述接口标识对应的接口配置信息,并在本地更新所述接口配置信息,基于更新后的目标应用程序接口提供线上服务。
可选的,所述更新子单元进一步包括在所述接口标识下创建第一事件的事件节点,以使所述事件节点在监听到所述第一事件后,向所述目标资源标识对应在所述查询服务中的目标服务节点提供所述接口标识。
可选的,所述装置还包括:
状态更新子单元,基于所述目标服务节点的更新结果,更新所述接口标识关联的状态信息;其中,其中,所述状态信息用于表示所述目标服务节点是否成功更新接口配置信息;
状态发送子单元,通过触发所述接口标识的第二事件将所述状态信息提供给所述管理服务;以使所述管理服务在所有的目标资源标识的状态信息均表示成功时,更新本地维护的所述目标应用程序接口的版本信息。
可选的,所述装置还包括:
删除单元,删除所述目标资源标识下创建的所述接口标识。
可选的,所述更新请求包括针对目标应用程序接口的新增请求,或者针对目标应用程序接口的升级请求。
可选的,所述接口标识包括所述目标应用程序的更新版本号;在所述更新请求为升级请求时,所述更新本地维护的所述目标应用程序接口的版本信息,包括:
将应用程序接口列表中的所述目标应用程序接口的当前版本号更新为所述更新版本号;
将所述目标应用程序接口的版本列表中的当前版本号加入到历史版本号中,将更新版本号加入到当前版本号,删除更新版本号。
可选的,所述更新版本号包括用于升级目标应用程序接口的升级版本号,或者回滚目标应用程序接口的历史版本号。
可选的,所述接口配置信息是以支持并发的数据结构的形式维护在所述目标服务节点的内存中。
可选的,所述支持并发的数据结构包括ConcurrentMap。
可选的,所述分布式协调组件包括Zookeeper。
在本公开实施方式的第五方面中,提供了一种计算机可读存储介质,包括:
当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如前任一项所述的应用程序接口的更新方法。
在本公开实施方式的第六方面中,提供了一种计算设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令,以实现如前任一项所述的应用程序接口的更新方法。
根据本公开实施方式提供的应用程序接口的更新方案,通过分布式协调组件作为管理服务和查询服务之间的数据同步工具,协调管理服务从与管理服务对应的数据库中获取待更新应用程序接口的接口配置信息,并在管理服务本地更新接口配置信息,使得管理服务基于更新后的应用程序接口提供线上服务。整个过程无需下线应用程序接口,不会造成线上请求无法访问该应用程序接口的问题,因此满足了一些高可用性场景的需求,做到了用户无感知的线上更新。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
图1示意性地示出了本公开提供的应用程序接口的更新的系统架构图;
图2示意性地示出了本公开提供的应用程序接口的更新方法流程图;
图3示意性地示出了本公开提供的应用程序接口的版本管理的示意图;
图4示意性地示出了本公开提供的分布式协调组件的数据结构的示意图;
图5示意性地示出了本公开提供的可视化界面的示意图;
图6示意性地示出了本公开提供的以分布式协调组件为执行主体的方法流程图;
图7示意性地示出了本公开提供的介质示意图;
图8示意性地示出了本公开提供的应用程序接口的更新装置示意图;
图9示意性地示出了本公开提供的计算设备示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本公开的实施方式,提出了一种应用程序接口的更新方法、计算机可读存储介质、装置和计算设备。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。
发明概述
本公开人发现,在相关技术中,对应用程序接口进行更新时,需要将应用程序接口暂时下线,经过线下更新后再上线;然而在下线到上线这段时间内用户将无法访问该应用程序接口,无法满足一些高可用性场景的需求,无法做到用户无感知的线上更新。
在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
应用场景总览
首先参考图1所示的一种应用程序接口的更新的系统架构图。在该系统架构图中,可以包括管理服务、分布式协调组件和查询服务。
其中,所述管理服务用于管理各个应用程序接口,以及提供可视化界面供用户对各个应用程序接口进行操作,例如更新应用程序接口的操作。在本说明书中,所述管理服务可以是指数据服务平台提供的管理服务。
数据服务平台可以是指以平台化的方式进行应用程序接口的开发、测试、部署;通过数据服务平台可以提高开发和交付的效率。
在数据服务平台上开发人员无需编写代码,只需要以配置化和/或自定义sql的方式即可在平台上进行应用程序接口的开发、测试、部署。作为统一数据中台的最上层,数据服务平台能够在数据库之上提供应用程序接口级别的统一出口、避免烟囱建设,并且数据使用可控、可审计。不仅加快了开发的交付效率、降低了开发门槛,还可以使开发人员提供支持高并发、高流量访问的应用程序接口。
所述查询服务用于提供线上服务,例如响应线上业务访问应用程序接口的服务请求。在本说明书中所述查询服务可以是由多个服务节点构建的分布式服务集群。
所述分布式协调组件用于在管理服务和查询服务之间提供数据同步。并且,所述分布式协调组件中还可以维护有管理服务中各个服务节点对应的资源标识。
一般的,查询服务可以在分布式协调组件注册可用的服务节点,以便分布式协调组件在本地维护各个服务节点对应的资源标识;相应地,管理服务可以从分布式协调组件获取查询服务的服务节点数量。这样管理服务提供给用户使用的可视化界面中就可以显示各个服务节点,方便用户选择其中某些服务节点进行应用程序接口的更新。
也就是说,本说明书提供的更新功能可以细粒度到服务节点级别,即可以针对单个服务节点中的单个应用程序接口进行更新,从而达到线上灰度更新的目的。
在实现时,用户可以通过管理服务发起针对目标应用程序接口的更新请求;分布式协调组件可以响应于该更新请求通知查询服务对目标应用程序接口进行版本更新;查询服务则可以从管理服务对应的数据库中获取目标应用程序接口对应的接口配置信息,并在本地更新所述接口配置信息,从而基于更新后的目标应用程序接口提供线上服务。
示例性方法
需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
以下参考图2所示的应用程序接口的更新方法的示意图,该方法可以包括:
步骤210,管理服务向分布式协调组件发起针对目标应用程序接口的更新请求;其中,所述更新请求包括所述目标应用程序接口的接口标识;
步骤220,所述分布式协调组件响应于所述更新请求,向查询服务提供所述接口标识;
步骤230,所述查询服务从与所述管理服务对应的数据库中获取所述接口标识对应的接口配置信息,并在本地更新所述接口配置信息,基于更新后的目标应用程序接口提供线上服务。
在本说明书中,上述分布式协调组件可以包括Zookeeper、Etcd等。
以ZooKeeper为例,ZooKeeper是一个开源的分布式应用程序协调服务,可以作为分布式应用例如Hadoop、Hbase等的重要组件。ZooKeeper可以为分布式应用提供一致性服务,例如配置维护、域名服务、分布式同步、组服务等。由于ZooKeeper在技术栈上比较普遍并且技术可靠性较好,因此采用ZooKeeper可以更好的实现数据同步。
在本说明书中可以在管理服务侧设计用于管理应用程序接口的应用程序接口列表,以及用于管理应用程序接口版本的版本列表。
所述应用程序接口列表如下表1所示:
表1
api_id | current_version |
1 | 2 |
该表1可以兼容已有应用程序接口列表,包括应用程序接口的接口标识(api_id);差异在于新增一个应用程序接口的当前版本(current_version)字段,用于表示应用程序接口当前使用的是哪个版本。
所述版本列表如下表2所示:
表2
current_version | api_logic | api_id |
1 | xxx | 1 |
2 | xxxxxx | 1 |
如表2所示,版本列表中可以包括应用程序接口的当前版本(current_version)、应用程序接口的接口信息(api_logic)、应用程序接口的接口标识(api_id)。其中,所述接口信息可以由接口的输入输出、处理逻辑等构成,可以是由json格式进行描述。
通过上述应用程序接口列表和版本列表,就可以支持应用程序接口的多版本;这样每个应用程序接口就可以有三种类型的版本配置:
1)当前版本:目前上线的版本,有且只有1个;
2)待更新版本:准备更新的版本,可以有0个(即没有待更新版本)或1个。当应用程序接口处于待更新状态时,查询服务中有些服务节点可能已经更新到新版本,而有些服务节点可能还未更新依然是旧版本;当所有服务节点都更新完毕后,该应用程序接口的待更新版本才会变为当前版本;即完成版本更新。
3)历史版本:历史上线过的版本,可以有0个(从来没更新版本的接口)至N个(N为大于等于1的整数)。每个应用程序接口的所有更新版本都会进行记录,可以在历史版本中查询,从而方便用户进行版本回退、版本之间的比较等。
在版本更新成功时,应用程序接口的版本变化可以参考图3所示:
当前版本变为一个历史版本,更新版本覆盖现在的当前版本,更新版本则删除。本说明书提供的应用程序接口的更新无需下线应用程序接口,这样的在线更新方式是一种接口配置信息的热更新。
在一示例性的实施例中,上述步骤220,分布式协调组件响应于所述更新请求,向查询服务提供所述接口标识,可以包括:
所述分布式协调组件响应于所述更新请求,确定与所述目标应用程序接口绑定的目标资源标识,并在所述目标资源标识下创建所述接口标识,通过触发所述接口标识的第一事件向所述目标资源标识对应在查询服务中的目标服务节点提供所述接口标识。
在本说明书中,上述分布式协调组件本地可以维护有查询服务中各个服务节点对应的资源标识。
在实际应用中,上述资源标识可以维护在分布式协调组件的数据结构中。以下可以参考图4所示的分布式协调组件的数据结构的示意图。
图4中所示的数据结构可以是一种树形结构,在顶层的根节点可以是一个数据服务节点(data_service),数据服务节点下包括一个集群节点(group),集群节点下是若干资源组节点,资源组节点可以以资源组标识作为唯一标识符;每个资源组节点下分别包括一个配置节点(config)和一个探活节点(alive);配置节点用于更新应用程序接口,探活节点用于检测服务节点是否在线。
配置节点下挂载所在资源组下的每个服务节点对应的资源节点,所述资源节点以服务节点对应的资源标识作为唯一标识符;例如资源组下有30个服务节点,则配置节点下会挂载30个资源节点,每个资源节点都可以提供这个资源组下所有应用程序接口的访问请求,共同分担流量实现负载均衡的效果。
资源节点下还包括接口节点,该接口节点以应用程序接口的接口标识作为唯一标识符;例如,资源组绑定了10个应用程序接口,那么每个资源节点下都可以创建这10个应用程序接口对应的接口节点。
每个接口节点下还可以包括第一事件和第二事件;其中,第一事件用于监听接口节点的生成,当用户针对应用程序接口进行更新过程中创建接口节点时这个第一事件就可以被触发,从而通知所在资源节点对应的服务节点对该应用程序接口进行更新。第二事件用于监听接口节点中的状态信息是否变更,当状态信息变更时这个第二事件就可以被触发,从而通知管理服务所在资源节点对应的服务节点对该应用程序接口进行更新的更新状态。
应用上述分布式协调组件可以为管理服务与查询服务之间进行通信和数据同步,具体基于上述的事件机制通知所在资源节点对应的服务节点对该应用程序接口进行更新,以及通知管理服务所在资源节点对应的服务节点对该应用程序接口进行更新的更新状态。
在本说明书中,查询服务中每个服务节点进程启动时,需要拉取所在资源组下所有上线的应用程序接口的当前版本并配置到内存中,作为应用程序接口的接口配置信息常驻内存。此外,如图1中所示还需要去分布式协调组件进行注册。
上述注册具体可以包括:
首先,在分布式协调组件的数据结构中的集群节点下创建资源组节点。
需要说明的是,创建前需要经过createIfNotExist语义判断,如果集群节点下已经创建了服务节点所在的资源组节点,则不需重复创建该资源组节点;即同一个资源组下只有最早注册的资源节点才需要创建资源组节点。这样,当一个资源组下所有的服务节点依次启动时,恰好只会有一个服务节点注册资源组节点。
接着,在资源组节点下创建配置节点和探活节点。
然后,在配置节点和探活节点下分别注册本服务节点对应的资源节点,以资源标识作为唯一标识符。一般的,资源标识可以包括基于服务节点的机器名端口号生成的MD5,这样的资源标识具有全局唯一性。
需要说明的是,探活节点下的资源节点是临时性的,即服务节点异常挂掉时管理服务能感知到此服务节点下线,从而从可视化界面的服务节点列表中移除。
在介绍完服务节点注册后,下面开始介绍针对应用程序接口进行更新的实施例。
如前所述管理服务可以展示供用户操作的可视化界面,如图5所示的是本说明书一示例性实施例提供的可视化界面的示意图。
在图5所示的可视化界面中,可以展示有待更新目标应用程序接口的各个服务节点对应的资源标识,更新状态以及更新时间。
在该可视化界面中可以细粒度到服务节点级别,即可以针对单个服务节点进行更新,从而达到线上灰度更新的目的。例如图5所示,用户可以单独选中资源标识为10.201.187.175.8012的服务节点进行目标应用程序接口的更新。
此外,该可视化界面中还设置有“更新”按钮和“撤销更新”按钮。在用户选择好哪些资源标识需要更新后,可以点击“更新”按钮开始更新,而如果中途取消更新,则可以选择想要取消更新的资源标识,通过点击“撤销更新”来取消更新。
在用户发起针对目标应用程序接口的更新操作后,管理服务就会向分布式协调组件发起针对目标应用程序接口的更新请求。接着分布式协调组件的处理过程可以参考图6所示的应用程序接口的更新的方法实施例。
图6所示实施例是以分布式协调组件为执行主体,对应了前述图2所示实施例中的分布式协调组件相关的步骤;因此,图2和图6所示实施例中相关内容可以相互参考和借鉴。
如前所述的该分布式协调组件用于在管理服务和查询服务之间提供数据同步,该方法可以包括以下步骤:
步骤610:接收管理服务发送的针对目标应用程序接口的更新请求;其中,所述更新请求包括所述目标应用程序接口的接口标识。
分布式协调组件接收来自管理服务发起的针对目标应用程序接口的更新请求,并获取该更新请求中的接口标识。
步骤620:响应于所述更新请求,向所述查询服务提供所述接口标识;以使所述查询服务从与所述管理服务对应的数据库中获取所述接口标识对应的接口配置信息,并在本地更新所述接口配置信息,基于更新后的目标应用程序接口提供线上服务。
分布式协调组件响应于更新请求,向所述查询服务提供所述接口标识,从而通知查询服务对所述接口标识对应的目标应用程序接口进行更新。
如前所述的,上述分布式协调组件中维护有所述查询服务中的各个服务节点的资源标识;基于此,在一示例性的实施例中,上述向所述查询服务提供所述接口标识,可以包括:
确定与所述目标应用程序接口绑定的目标资源标识;
在所述目标资源标识下创建所述接口标识;
通过触发所述接口标识的第一事件向所述目标资源标识对应在所述查询服务中的目标服务节点提供所述接口标识。
该示例中,分布式协调组件可以从前述图4所示本地维护的数据结构中查询与目标应用程序接口绑定的目标资源标识所在的资源节点;进而在该资源节点下创建接口标识对应的接口节点。
当创建了接口节点后,接口节点下的第一事件就会被触发,从而通知所在资源节点对应的服务节点对该应用程序接口进行更新。
应用该示例,通过分布式协调组件中维护的资源标识,创建待更新目标应用程序接口的接口标识,进而基于接口标识下的第一事件触发的事件机制通知所在资源节点对应的服务节点对该应用程序接口进行更新。
在一示例性的实施例中,上述通过触发所述接口标识的第一事件向所述目标资源标识对应在所述查询服务中的目标服务节点提供所述接口标识,包括:
在所述接口标识下创建第一事件的事件节点,以使所述事件节点在监听到所述第一事件后,向所述目标资源标识对应在所述查询服务中的目标服务节点提供所述接口标识。
应用该示例,通过在接口标识下创建第一事件的事件节点实现分布式协调组件与查询服务之间的数据同步。
在一示例性的实施例中,如图5所示的,用户可以选择某个或某几个服务节点进行更新;因此,管理服务向分布式协调组件发起的更新请求中还可以包括待更新服务节点的资源标识。
这样,分布式协调组件在响应更新请求时,可以从数据结构中此资源组下的配置节点中查询资源标识所在的资源节点,例如资源组标识为1,选中的资源标识也是1,那么对应在图4中的资源路径即为数据服务节点->集群节点->资源组节点1->配置节点->资源节点1。
然后,在资源节点1下创建一个接口节点,该接口节点以更新请求中的接口标识表示。假设该接口标识为45,则新增的接口节点的全路径为:数据服务节点->集群节点->资源组节点1->配置节点->资源节点1->接口节点45,同时可以给这个接口节点赋予一个json格式的接口信息{“type”:gray,“version”:1,“status”:0}的值;其中,type字段表示的是更新类型;version字段表示的是更新版本号,status字段表示的是更新状态。
其中,“version”:1表示应用程序接口的更新版本为1;“status”:0表示开始更新的状态。
在本说明书中,所述更新请求包括针对目标应用程序接口的新增请求,或者针对目标应用程序接口的升级请求。相应地,上述更新类型type字段可以分为新增和升级。
在上述示例中,“type”:gray表示的是升级应用程序接口;另外,“type”:create表示的是新建应用程序接口。
需要说明的是,gray、create仅是一种示例,在实际应用中可以用其它字符进行代替。
由于分布式协调组件创建了接口标识,将触发接口标识下的第一事件,从而资源节点1对应的目标服务节点会接收到第一事件的事件节点发送过来的接口标识。
对于目标服务节点来说,其在接收到接口标识之后,可以从与管理服务对应的数据库中获取该接口标识对应的接口配置信息。
其中,所述接口配置信息即接口标识对应的目标应用程序接口待更新版本的配置信息。
所述数据库可以是指存储应用程序接口的接口配置信息的数据库。在实际应用中,某个应用程序接口的待更新版本在经过测试后其接口配置信息可以存储到数据库中;因此,对于目标服务节点来说其可以从数据库中获取所需更新的接口配置信息。
需要说明的是,所述目标服务节点可以直接与数据库进行连接,从而获取数据库中的接口配置信息;也可以是经管理服务中继,由管理服务从数据库中获取接口配置信息,再从管理服务获取该数据库的接口配置信息。
在实际应用中,应用程序接口的待更新版本在经过测试后其接口配置信息也可以是存储到管理服务中,那么目标服务节点也可以从管理服务获取接口标识对应的接口配置信息。
在目标服务节点获取到接口配置信息后,可以在本地更新接口配置信息。这里为了避免混淆可以将获取到的接口配置信息称为新接口配置信息,将当前本地维护的接口配置信息称为旧接口配置信息;这样,上述在本地更新接口配置信息,具体可以是指:将当前本地维护的目标应用程序接口的旧接口配置信息更新为获取到的新接口配置信息。
在一示例性的实施例中,所述接口配置信息是以支持并发的数据结构的形式维护在所述目标服务节点的内存中。
如此,目标服务节点在从数据库中获取到接口配置信息之后,就可以替换内存中维护目标应用程序接口的接口配置信息,从而实现热部署。
其中,所述支持并发的数据结构包括ConcurrentMap。
应用上述示例,由于内存中接口配置信息是以ConcurrentMap的结构存储的,可以保证线程的安全,对于线上实时请求,版本更新(即内存替换接口配置信息)的速度非常快。
在一示例性的实施例中,在图6所示实施例的基础上还可以包括:
基于所述目标服务节点的更新结果,更新所述接口标识关联的状态信息;其中,其中,所述状态信息用于表示所述目标服务节点是否成功更新接口配置信息;
通过触发所述接口标识的第二事件将所述状态信息提供给所述管理服务;以使所述管理服务在所有的目标资源标识的状态信息均表示成功时,更新本地维护的所述目标应用程序接口的版本信息。
该示例中,目标服务节点可以将自身更新结果反馈给分布式协调组件;以使分布式协调组件基于目标服务节点的更新结果,更新目标服务节点对应的目标资源标识下的接口标识关联的状态信息。
以前述接口节点赋值的json格式的接口信息{“type”:gray,“version”:1,“status”:0}为例,在其初始的状态信息为0,表示未更新。
如果目标服务节点自身的更新结果为成功,则分布式协调组件基于该更新结果,就可以将接口节点下接口信息中的状态信息“status”修改为1,表示成功,即接口信息{“type”:gray,“version”:1,
“status”:1}。
而如果目标服务节点自身的更新结果为失败,则分布式协调组件基于该更新结果,就可以将接口节点下接口信息中的状态信息“status”修改为-1,表示失败,即接口信息{“type”:gray,“version”:1,
“status”:-1}。
如图4所示的接口标识下的第二事件的事件节点如果监听到接口标识的状态信息发送了变更,那么就会被触发,从而将变更后的状态信息发送给管理服务。
由于实际应用中,可能存在多个目标服务节点,因此管理服务可能会收到不同目标资源标识下的相同接口标识的第二事件发送的状态信息。这样,管理服务在收到所有的状态信息之后,如果确定所有的目标资源标识的状态信息均表示成功时,更新本地维护的所述目标应用程序接口的版本信息。
在一示例性的实施例中,所述接口标识可以包括目标应用程序的更新版本号;
在所述更新请求为升级请求时,所述更新本地维护的所述目标应用程序接口的版本信息,包括:
将应用程序接口列表中的所述目标应用程序接口的当前版本号更新为所述更新版本号;
将所述目标应用程序接口的版本列表中的当前版本号加入到历史版本号中,将更新版本号加入到当前版本号,删除更新版本号。
其中,应用程序接口列表如前表1所示,目标应用程序接口的版本列表如前表2所示。
该示例对应了前述的图3所示的关于应用程序接口的版本管理的实施例,在版本更新成功时,应用程序接口的版本变化可以参考图3所示:当前版本变为一个历史版本,更新版本覆盖现在的当前版本,更新版本则删除。
应用该示例,在管理服务上通过维护应用程序接口列表和版本列表,可以实现应用程序接口的多版本管理,提高应用程序接口更新的效率。
在一示例性的实施例中,在图6所示实施例的基础上,还可以包括:
分布式协调组件删除所述目标资源标识下创建的所述接口标识。
该示例中,当目标服务节点更新目标应用程序接口的版本信息后,分布式协调组件就会删除对应的目标资源标识下创建的接口标识,以及接口标识下的第一事件、第二事件的事件节点;从而避免第一事件、第二事件被误触发从而进行异常更新,另外也是为下一次更新做准备,避免下一次更新时由于接口标识已创建而无法响应更新请求。
在一示例性的实施例中,所述更新版本号包括用于升级目标应用程序接口的升级版本号,或者回滚目标应用程序接口的历史版本号。
该示例中,用户针对目标应用程序的版本进行更新,即可以是在当前版本基础上升级到新的版本,也可以是在当前版本基础上回滚到某个历史版本。
一般的,所述更新版本号可以是由用户确定的,例如前述图4所示的可视化界面中确定的。
在实际应用中,存在版本回滚的需求,例如当前版本存在安全隐含,那么就需要及时将版本回滚到历史版本,避免对线上业务造成更大影响。
应用上述示例,不仅满足了对应用程序接口的升级需求,还满足了对应用程序接口的回滚需求,用户可以根据实际需要灵活进行选择,以覆盖更多场景需求,给与用户更好的产品体验。
综合上述实施例,本公开通过分布式协调组件作为管理服务和查询服务之间的数据同步工具,协调管理服务从与管理服务对应的数据库中获取待更新应用程序接口的接口配置信息,并在管理服务本地更新接口配置信息,使得管理服务基于更新后的应用程序接口提供线上服务。整个过程无需下线应用程序接口,不会造成线上请求无法访问该应用程序接口的问题,因此满足了一些高可用性场景的需求,做到了用户无感知的线上更新。
另一方面,通过更为细粒度的更新管理,可以针对单个服务节点中的单个应用程序接口进行更新,从而达到线上灰度更新的目的。
再一方面,本公开支持应用程序接口多版本管理,以及版本间升级和回滚。
示例性介质
在介绍了本公开示例性实施方式的方法之后,接下来,参考图7对本公开示例性实施方式的介质进行说明。
本示例性实施方式中,可以通过程序产品实现上述方法,如可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
该程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RE等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如C语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性装置
在介绍了本公开示例性实施方式的介质之后,接下来,参考图8对本公开示例性实施方式的装置进行说明。
图8示意性地示出了根据本公开实施方式的一种应用程序接口的更新装置的框图,对应于前述图6所示的方法实施例。应用于分布式协调组件,所述分布式协调组件用于在管理服务和查询服务之间提供数据同步,所述装置包括:
接收单元810,接收管理服务发送的针对目标应用程序接口的更新请求;其中,所述更新请求包括所述目标应用程序接口的接口标识;
更新单元820,响应于所述更新请求,向所述查询服务提供所述接口标识;以使所述查询服务从与所述管理服务对应的数据库中获取所述接口标识对应的接口配置信息,并在本地更新所述接口配置信息,基于更新后的目标应用程序接口提供线上服务。
在一示例性的实施例中,所述更新单元820,包括:
确定子单元821,确定与所述目标应用程序接口绑定的目标资源标识;
创建子单元823,在所述目标资源标识下创建所述接口标识;
更新子单元825,通过触发所述接口标识的第一事件向所述目标资源标识对应在所述查询服务中的目标服务节点提供所述接口标识;以使所述目标服务节点从与所述管理服务对应的数据库中获取所述接口标识对应的接口配置信息,并在本地更新所述接口配置信息,基于更新后的目标应用程序接口提供线上服务。
在一示例性的实施例中,所述更新子单元825进一步包括在所述接口标识下创建第一事件的事件节点,以使所述事件节点在监听到所述第一事件后,向所述目标资源标识对应在所述查询服务中的目标服务节点提供所述接口标识。
在一示例性的实施例中,所述装置还包括:
状态更新子单元827,基于所述目标服务节点的更新结果,更新所述接口标识关联的状态信息;其中,其中,所述状态信息用于表示所述目标服务节点是否成功更新接口配置信息;
状态发送子单元829,通过触发所述接口标识的第二事件将所述状态信息提供给所述管理服务;以使所述管理服务在所有的目标资源标识的状态信息均表示成功时,更新本地维护的所述目标应用程序接口的版本信息。
在一示例性的实施例中,所述装置还包括:
删除单元830,删除所述目标资源标识下创建的所述接口标识。
在一示例性的实施例中,所述更新请求包括针对目标应用程序接口的新增请求,或者针对目标应用程序接口的升级请求。
在一示例性的实施例中,所述接口标识包括所述目标应用程序的更新版本号;在所述更新请求为升级请求时,所述更新本地维护的所述目标应用程序接口的版本信息,包括:
将应用程序接口列表中的所述目标应用程序接口的当前版本号更新为所述更新版本号;
将所述目标应用程序接口的版本列表中的当前版本号加入到历史版本号中,将更新版本号加入到当前版本号,删除更新版本号。
在一示例性的实施例中,所述更新版本号包括用于升级目标应用程序接口的升级版本号,或者回滚目标应用程序接口的历史版本号。
在一示例性的实施例中,所述接口配置信息是以支持并发的数据结构的形式维护在所述目标服务节点的内存中。
在一示例性的实施例中,所述支持并发的数据结构包括ConcurrentMap。
在一示例性的实施例中,所述分布式协调组件包括Zookeeper。
本公开还提供对应于前述图2所示方法实施例的一种应用程序接口的更新装置,所述装置包括:
发送单元,管理服务向分布式协调组件发起针对目标应用程序接口的更新请求;其中,所述更新请求包括所述目标应用程序接口的接口标识;
响应单元,所述分布式协调组件响应于所述更新请求,向查询服务提供所述接口标识;
更新单元,所述查询服务从与所述管理服务对应的数据库中获取所述接口标识对应的接口配置信息,并在本地更新所述接口配置信息,基于更新后的目标应用程序接口提供线上服务。
在一示例性的实施例中,所述响应单元进一步包括所述分布式协调组件响应于所述更新请求,确定与所述目标应用程序接口绑定的目标资源标识,并在所述目标资源标识下创建所述接口标识,通过触发所述接口标识的第一事件向所述目标资源标识对应在查询服务中的目标服务节点提供所述接口标识。
在一示例性的实施例中,所述装置还包括:
删除单元,所述分布式协调组件删除在所述目标资源标识下创建的所述接口标识。
示例性计算设备
在介绍了本公开示例性实施方式的方法、介质和装置之后,接下来,参考图9对本公开示例性实施方式的计算设备进行说明。
图9显示的计算设备1500仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,计算设备1500以通用计算设备的形式表现。计算设备1500的组件可以包括但不限于:上述至少一个处理单元1501、上述至少一个存储单元1502,连接不同系统组件(包括处理单元1501和存储单元1502)的总线1503。
总线1503包括数据总线、控制总线和地址总线。
存储单元1502可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)15021和/或高速缓存存储器15022,可以进一步包括非易失性存储器形式的可读介质,例如只读存储器(ROM)15023。
存储单元1502还可以包括具有一组(至少一个)程序模块15024的程序/实用工具15025,这样的程序模块15024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备1500也可以与一个或多个外部设备1504(例如键盘、指向设备等)通信。
这种通信可以通过输入/输出(I/O)接口1505进行。并且,计算设备1500还可以通过网络适配器1506与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图9所示,网络适配器1506通过总线1503与计算设备1500的其它模块通信。应当理解,尽管图中未示出,可以结合计算设备1500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了应用程序接口的更新装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (30)
1.一种应用程序接口的更新方法,包括:
管理服务向分布式协调组件发起针对目标应用程序接口的更新请求;其中,所述更新请求包括所述目标应用程序接口的接口标识;
所述分布式协调组件响应于所述更新请求,向查询服务提供所述接口标识;
所述查询服务从与所述管理服务对应的数据库中获取所述接口标识对应的接口配置信息,并在本地更新所述接口配置信息,基于更新后的目标应用程序接口提供线上服务。
2.根据权利要求1所述的方法,所述分布式协调组件响应于所述更新请求,向查询服务提供所述接口标识,包括:
所述分布式协调组件响应于所述更新请求,确定与所述目标应用程序接口绑定的目标资源标识,并在所述目标资源标识下创建所述接口标识,通过触发所述接口标识的第一事件向所述目标资源标识对应在查询服务中的目标服务节点提供所述接口标识。
3.根据权利要求2所述的方法,所述方法还包括:
所述分布式协调组件删除在所述目标资源标识下创建的所述接口标识。
4.一种应用程序接口的更新方法,应用于分布式协调组件,所述分布式协调组件用于在管理服务和查询服务之间提供数据同步,所述方法包括:
接收管理服务发送的针对目标应用程序接口的更新请求;其中,所述更新请求包括所述目标应用程序接口的接口标识;
响应于所述更新请求,向所述查询服务提供所述接口标识;以使所述查询服务从与所述管理服务对应的数据库中获取所述接口标识对应的接口配置信息,并在本地更新所述接口配置信息,基于更新后的目标应用程序接口提供线上服务。
5.根据权利要求4所述的方法,所述分布式协调组件中维护有所述查询服务中的各个服务节点的资源标识;
所述向所述查询服务提供所述接口标识,包括:
确定与所述目标应用程序接口绑定的目标资源标识;
在所述目标资源标识下创建所述接口标识;
通过触发所述接口标识的第一事件向所述目标资源标识对应在所述查询服务中的目标服务节点提供所述接口标识。
6.根据权利要求5所述的方法,所述通过触发所述接口标识的第一事件向所述目标资源标识对应在所述查询服务中的目标服务节点提供所述接口标识,包括:
在所述接口标识下创建第一事件的事件节点,以使所述事件节点在监听到所述第一事件后,向所述目标资源标识对应在所述查询服务中的目标服务节点提供所述接口标识。
7.根据权利要求5所述的方法,所述方法还包括:
基于所述目标服务节点的更新结果,更新所述接口标识关联的状态信息;其中,其中,所述状态信息用于表示所述目标服务节点是否成功更新接口配置信息;
通过触发所述接口标识的第二事件将所述状态信息提供给所述管理服务;以使所述管理服务在所有的目标资源标识的状态信息均表示成功时,更新本地维护的所述目标应用程序接口的版本信息。
8.根据权利要求5所述的方法,所述方法还包括:
删除所述目标资源标识下创建的所述接口标识。
9.根据权利要求4所述的方法,所述更新请求包括针对目标应用程序接口的新增请求,或者针对目标应用程序接口的升级请求。
10.根据权利要求7所述的方法,所述接口标识包括所述目标应用程序的更新版本号;
在所述更新请求为升级请求时,所述更新本地维护的所述目标应用程序接口的版本信息,包括:
将应用程序接口列表中的所述目标应用程序接口的当前版本号更新为所述更新版本号;
将所述目标应用程序接口的版本列表中的当前版本号加入到历史版本号中,将更新版本号加入到当前版本号,删除更新版本号。
11.根据权利要求10所述的方法,所述更新版本号包括用于升级目标应用程序接口的升级版本号,或者回滚目标应用程序接口的历史版本号。
12.根据权利要求5所述的方法,所述接口配置信息是以支持并发的数据结构的形式维护在所述目标服务节点的内存中。
13.根据权利要求12所述的方法,所述支持并发的数据结构包括ConcurrentMap。
14.根据权利要求4-13中任一项所述的方法,所述分布式协调组件包括Zookeeper。
15.一种应用程序接口的更新装置,所述装置包括:
发送单元,管理服务向分布式协调组件发起针对目标应用程序接口的更新请求;其中,所述更新请求包括所述目标应用程序接口的接口标识;
响应单元,所述分布式协调组件响应于所述更新请求,向查询服务提供所述接口标识;
更新单元,所述查询服务从与所述管理服务对应的数据库中获取所述接口标识对应的接口配置信息,并在本地更新所述接口配置信息,基于更新后的目标应用程序接口提供线上服务。
16.根据权利要求15所述的装置,所述响应单元进一步包括所述分布式协调组件响应于所述更新请求,确定与所述目标应用程序接口绑定的目标资源标识,并在所述目标资源标识下创建所述接口标识,通过触发所述接口标识的第一事件向所述目标资源标识对应在查询服务中的目标服务节点提供所述接口标识。
17.根据权利要求16所述的装置,所述装置还包括:
删除单元,所述分布式协调组件删除在所述目标资源标识下创建的所述接口标识。
18.一种应用程序接口的更新装置,应用于分布式协调组件,所述分布式协调组件用于在管理服务和查询服务之间提供数据同步,所述装置包括:
接收单元,接收管理服务发送的针对目标应用程序接口的更新请求;其中,所述更新请求包括所述目标应用程序接口的接口标识;
更新单元,响应于所述更新请求,向所述查询服务提供所述接口标识;以使所述查询服务从与所述管理服务对应的数据库中获取所述接口标识对应的接口配置信息,并在本地更新所述接口配置信息,基于更新后的目标应用程序接口提供线上服务。
19.根据权利要求18所述的装置,所述更新单元,包括:
确定子单元,确定与所述目标应用程序接口绑定的目标资源标识;
创建子单元,在所述目标资源标识下创建所述接口标识;
更新子单元,通过触发所述接口标识的第一事件向所述目标资源标识对应在所述查询服务中的目标服务节点提供所述接口标识;以使所述目标服务节点从与所述管理服务对应的数据库中获取所述接口标识对应的接口配置信息,并在本地更新所述接口配置信息,基于更新后的目标应用程序接口提供线上服务。
20.根据权利要求19所述的装置,所述更新子单元进一步包括在所述接口标识下创建第一事件的事件节点,以使所述事件节点在监听到所述第一事件后,向所述目标资源标识对应在所述查询服务中的目标服务节点提供所述接口标识。
21.根据权利要求19所述的装置,所述装置还包括:
状态更新子单元,基于所述目标服务节点的更新结果,更新所述接口标识关联的状态信息;其中,其中,所述状态信息用于表示所述目标服务节点是否成功更新接口配置信息;
状态发送子单元,通过触发所述接口标识的第二事件将所述状态信息提供给所述管理服务;以使所述管理服务在所有的目标资源标识的状态信息均表示成功时,更新本地维护的所述目标应用程序接口的版本信息。
22.根据权利要求19所述的装置,所述装置还包括:
删除单元,删除所述目标资源标识下创建的所述接口标识。
23.根据权利要求18所述的装置,所述更新请求包括针对目标应用程序接口的新增请求,或者针对目标应用程序接口的升级请求。
24.根据权利要求21所述的装置,所述接口标识包括所述目标应用程序的更新版本号;在所述更新请求为升级请求时,所述更新本地维护的所述目标应用程序接口的版本信息,包括:
将应用程序接口列表中的所述目标应用程序接口的当前版本号更新为所述更新版本号;
将所述目标应用程序接口的版本列表中的当前版本号加入到历史版本号中,将更新版本号加入到当前版本号,删除更新版本号。
25.根据权利要求24所述的装置,所述更新版本号包括用于升级目标应用程序接口的升级版本号,或者回滚目标应用程序接口的历史版本号。
26.根据权利要求21所述的装置,所述接口配置信息是以支持并发的数据结构的形式维护在所述目标服务节点的内存中。
27.根据权利要求26所述的装置,所述支持并发的数据结构包括ConcurrentMap。
28.根据权利要求18-27中任一项所述的装置,所述分布式协调组件包括Zookeeper。
29.一种计算机可读存储介质,包括:
当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1-14中任一项所述的应用程序接口的更新方法。
30.一种计算设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令,以实现如权利要求1-14中任一项所述的应用程序接口的更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210005386.XA CN114466026B (zh) | 2022-01-05 | 2022-01-05 | 应用程序接口的更新方法、装置、存储介质和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210005386.XA CN114466026B (zh) | 2022-01-05 | 2022-01-05 | 应用程序接口的更新方法、装置、存储介质和计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114466026A CN114466026A (zh) | 2022-05-10 |
CN114466026B true CN114466026B (zh) | 2024-05-14 |
Family
ID=81407635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210005386.XA Active CN114466026B (zh) | 2022-01-05 | 2022-01-05 | 应用程序接口的更新方法、装置、存储介质和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114466026B (zh) |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216724A (zh) * | 2013-06-03 | 2014-12-17 | 阿里巴巴集团控股有限公司 | 一种网络应用程序接口升级的方法及系统 |
WO2015196828A1 (zh) * | 2014-06-27 | 2015-12-30 | 中兴通讯股份有限公司 | 一种动态更新应用界面的方法、终端及系统 |
CN107729041A (zh) * | 2017-07-26 | 2018-02-23 | 上海壹账通金融科技有限公司 | 应用程序热更新方法、装置、终端和存储介质 |
CN108710496A (zh) * | 2018-05-17 | 2018-10-26 | 腾讯科技(深圳)有限公司 | 应用程序的配置更新方法、装置、设备及存储介质 |
WO2018233364A1 (zh) * | 2017-06-19 | 2018-12-27 | 华为技术有限公司 | 索引更新方法、系统及相关装置 |
CN109857416A (zh) * | 2018-11-08 | 2019-06-07 | 深圳壹账通智能科技有限公司 | 一种应用升级方法、装置、设备及存储介质 |
CN110083365A (zh) * | 2019-03-19 | 2019-08-02 | 深圳壹账通智能科技有限公司 | 版本更新包的发布方法、装置、计算机设备及存储介质 |
CN111026425A (zh) * | 2019-12-11 | 2020-04-17 | 腾讯科技(深圳)有限公司 | 服务更新方法、装置、服务器及介质 |
US10725763B1 (en) * | 2017-06-28 | 2020-07-28 | Amazon Technologies, Inc. | Update and rollback of configurations in a cloud-based architecture |
CN112052267A (zh) * | 2020-11-09 | 2020-12-08 | 未鲲(上海)科技服务有限公司 | 一种数据查询方法、设备、服务器及存储介质 |
WO2021073214A1 (zh) * | 2019-10-14 | 2021-04-22 | 支付宝(杭州)信息技术有限公司 | 用于运行应用程序的方法、装置及gpu节点 |
CN112905209A (zh) * | 2021-03-23 | 2021-06-04 | 维沃移动通信(深圳)有限公司 | 应用程序更新方法及装置 |
CN112965837A (zh) * | 2021-03-04 | 2021-06-15 | 杭州银行股份有限公司 | 配置和服务热重载更新方法、装置、计算机设备及存储介质 |
CN113010208A (zh) * | 2021-04-28 | 2021-06-22 | 数字广东网络建设有限公司 | 一种版本信息的生成方法、装置、设备及存储介质 |
WO2021129733A1 (zh) * | 2019-12-24 | 2021-07-01 | 中兴通讯股份有限公司 | 云操作系统的管理方法、装置、服务器、管理系统及介质 |
CN113419766A (zh) * | 2021-07-21 | 2021-09-21 | 厦门市易联众易惠科技有限公司 | 智能更新程序逻辑的方法、装置、设备及存储介质 |
CN113791799A (zh) * | 2021-01-06 | 2021-12-14 | 北京沃东天骏信息技术有限公司 | 系统升级方法及装置、计算机可读存储介质、电子设备 |
-
2022
- 2022-01-05 CN CN202210005386.XA patent/CN114466026B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216724A (zh) * | 2013-06-03 | 2014-12-17 | 阿里巴巴集团控股有限公司 | 一种网络应用程序接口升级的方法及系统 |
WO2015196828A1 (zh) * | 2014-06-27 | 2015-12-30 | 中兴通讯股份有限公司 | 一种动态更新应用界面的方法、终端及系统 |
WO2018233364A1 (zh) * | 2017-06-19 | 2018-12-27 | 华为技术有限公司 | 索引更新方法、系统及相关装置 |
US10725763B1 (en) * | 2017-06-28 | 2020-07-28 | Amazon Technologies, Inc. | Update and rollback of configurations in a cloud-based architecture |
CN107729041A (zh) * | 2017-07-26 | 2018-02-23 | 上海壹账通金融科技有限公司 | 应用程序热更新方法、装置、终端和存储介质 |
CN108710496A (zh) * | 2018-05-17 | 2018-10-26 | 腾讯科技(深圳)有限公司 | 应用程序的配置更新方法、装置、设备及存储介质 |
CN109857416A (zh) * | 2018-11-08 | 2019-06-07 | 深圳壹账通智能科技有限公司 | 一种应用升级方法、装置、设备及存储介质 |
CN110083365A (zh) * | 2019-03-19 | 2019-08-02 | 深圳壹账通智能科技有限公司 | 版本更新包的发布方法、装置、计算机设备及存储介质 |
WO2021073214A1 (zh) * | 2019-10-14 | 2021-04-22 | 支付宝(杭州)信息技术有限公司 | 用于运行应用程序的方法、装置及gpu节点 |
CN111026425A (zh) * | 2019-12-11 | 2020-04-17 | 腾讯科技(深圳)有限公司 | 服务更新方法、装置、服务器及介质 |
WO2021129733A1 (zh) * | 2019-12-24 | 2021-07-01 | 中兴通讯股份有限公司 | 云操作系统的管理方法、装置、服务器、管理系统及介质 |
CN112052267A (zh) * | 2020-11-09 | 2020-12-08 | 未鲲(上海)科技服务有限公司 | 一种数据查询方法、设备、服务器及存储介质 |
CN113791799A (zh) * | 2021-01-06 | 2021-12-14 | 北京沃东天骏信息技术有限公司 | 系统升级方法及装置、计算机可读存储介质、电子设备 |
CN112965837A (zh) * | 2021-03-04 | 2021-06-15 | 杭州银行股份有限公司 | 配置和服务热重载更新方法、装置、计算机设备及存储介质 |
CN112905209A (zh) * | 2021-03-23 | 2021-06-04 | 维沃移动通信(深圳)有限公司 | 应用程序更新方法及装置 |
CN113010208A (zh) * | 2021-04-28 | 2021-06-22 | 数字广东网络建设有限公司 | 一种版本信息的生成方法、装置、设备及存储介质 |
CN113419766A (zh) * | 2021-07-21 | 2021-09-21 | 厦门市易联众易惠科技有限公司 | 智能更新程序逻辑的方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114466026A (zh) | 2022-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107666525B (zh) | 集群容器ip分配的方法和装置 | |
JP5288334B2 (ja) | 仮想アプライアンス配備システム | |
CN108712332B (zh) | 一种通信方法、系统和装置 | |
KR20010099633A (ko) | 전자 디바이스들의 업그레이드를 제어하기 위한 재구성처리기 | |
US7440971B2 (en) | Context based access of files by file system to a client based on detection of related files opened by the client | |
US9542226B2 (en) | Operating programs on a computer cluster | |
US9390156B2 (en) | Distributed directory environment using clustered LDAP servers | |
CN106936623A (zh) | 分布式缓存系统及缓存集群的管理方法 | |
CN111666134A (zh) | 一种分布式任务调度的方法和系统 | |
CN114168179A (zh) | 微服务管理方法、装置、计算机设备和存储介质 | |
CN111506358A (zh) | 更新容器配置的方法及装置 | |
CN113079098A (zh) | 路由更新的方法、装置、设备和计算机可读介质 | |
CN114466026B (zh) | 应用程序接口的更新方法、装置、存储介质和计算设备 | |
US11290318B2 (en) | Disaster recovery of cloud resources | |
JP4885825B2 (ja) | データベース提供装置、データベースクライアント端末、データベースシステム、データベース提供プログラム及びデータベースクライアントプログラム | |
CN110933184B (zh) | 一种资源发布平台和资源发布方法 | |
CN108701035A (zh) | 应用属性的管理 | |
CN113761075A (zh) | 切换数据库的方法、装置、设备和计算机可读介质 | |
CN116893834B (zh) | 负载更新方法、装置、系统、电子设备及可读存储介质 | |
US7644306B2 (en) | Method and system for synchronous operation of an application by a purality of processing units | |
CN111404980B (zh) | 一种数据存储方法及一种对象存储系统 | |
CN112965763B (zh) | 一种业务处理系统、方法、装置和存储介质 | |
US11477090B1 (en) | Detecting deployment problems of containerized applications in a multiple-cluster environment | |
CN114500268B (zh) | chart资源的部署方法、装置、服务器及存储介质 | |
WO2024055741A1 (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 |