CN115002107A - 一种分片服务部署方法、***、设备及存储介质 - Google Patents
一种分片服务部署方法、***、设备及存储介质 Download PDFInfo
- Publication number
- CN115002107A CN115002107A CN202210513055.7A CN202210513055A CN115002107A CN 115002107 A CN115002107 A CN 115002107A CN 202210513055 A CN202210513055 A CN 202210513055A CN 115002107 A CN115002107 A CN 115002107A
- Authority
- CN
- China
- Prior art keywords
- target
- service instance
- service
- instance
- directory
- 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 56
- 239000012634 fragment Substances 0.000 title description 8
- 238000012217 deletion Methods 0.000 claims abstract description 13
- 230000037430 deletion Effects 0.000 claims abstract description 13
- 238000011084 recovery Methods 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 4
- 238000013467 fragmentation Methods 0.000 abstract description 26
- 238000006062 fragmentation reaction Methods 0.000 abstract description 26
- 238000007726 management method Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 14
- 230000007246 mechanism Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000004064 recycling Methods 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/10—Protocols in which an application is distributed across nodes in the network
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种分片服务部署方法、***、设备及存储介质。本申请实施例提供的技术方案,通过在目标服务实例启动时,从预构建的标识目录获取目标唯一标识;进而在服务实例目录中创建目标服务实例的实例名称,将目标唯一标识与目标服务实例绑定构建绑定关系,并执行目标服务实例的服务注册操作;之后,在监听到目标服务实例的删除事件时,和/或,在确定目标服务实例不存在于***集群的情况下,在服务实例目录中删除绑定关系,并将目标唯一标识记录回标识目录。采用上述技术手段,可以在保障服务部署效率的同时,降低***分片服务部署的复杂度。并且,通过在服务注销时回收唯一标识,实现唯一标识的复用,进一步降低服务部署的复杂度。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种分片服务部署方法、***、设备及存储介质。
背景技术
目前,在后端服务场景中,为了提升服务部署效率,降低服务部署复杂程度,在基于容器集群管理***(kubernetes)进行分片服务部署时,会采用基于无状态负载(Deployment)的形式进行分片服务部署。各个服务会改造成无存储状态的形式,不带有唯一标识,不依赖本地内存。以此可使大部分服务进行数据存储解耦,提升服务部署效率,并降低部署复杂度。
但是,由于在部署服务时需要唯一标识进行服务注册和发现,这与无唯一标识、无存储状态特性的服务部署形式相冲突。容器集群管理***(kubernetes)在进行分片服务部署时会影响容器集群管理***的服务实例部署,增加额外的服务部署复杂度。
发明内容
本申请实施例提供一种分片服务部署方法、***、设备及存储介质,能够在分片服务部署时兼容服务实例的唯一标识,解决现有基于容器集群管理***的分片服务部署场景中,服务实例的唯一标识难以兼容服务部署的技术问题。
在第一方面,本申请实施例提供了一种分片服务部署方法,包括:
在目标服务实例启动时,从预构建的标识目录获取目标唯一标识;
在服务实例目录中创建目标服务实例的实例名称,将目标唯一标识与目标服务实例绑定构建绑定关系,并执行目标服务实例的服务注册操作;
在监听到目标服务实例的删除事件时,在服务实例目录中删除绑定关系,并将目标唯一标识记录回标识目录;和/或,
周期性遍历服务实例目录,根据目标唯一标识判断目标服务实例是否存在于***集群中;在确定目标服务实例不存在于***集群的情况下,在服务实例目录中删除绑定关系,并将目标唯一标识记录回标识目录。
在第二方面,本申请实施例提供了一种分片服务部署***,包括:
获取模块,配置为在目标服务实例启动时,从预构建的标识目录获取目标唯一标识;
创建模块,配置为在服务实例目录中创建目标服务实例的实例名称,将目标唯一标识与目标服务实例绑定构建绑定关系,并执行目标服务实例的服务注册操作;
回收模块,配置为在监听到目标服务实例的删除事件时,在服务实例目录中删除绑定关系,并将目标唯一标识记录回标识目录;和/或,周期性遍历服务实例目录,根据目标唯一标识判断目标服务实例是否存在于***集群中;在确定目标服务实例不存在于***集群的情况下,在服务实例目录中删除绑定关系,并将目标唯一标识记录回标识目录。
在第三方面,本申请实施例提供了一种分片服务部署设备,包括:
存储器以及一个或多个处理器;
所述存储器,配置为存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的分片服务部署方法。
在第四方面,本申请实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时配置为执行如第一方面所述的分片服务部署方法。
在第五方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品中包含有指令,当指令在计算机或处理器上运行时,使得计算机或处理器执行如第一方面所述的分片服务部署方法
本申请实施例通过在目标服务实例启动时,从预构建的标识目录获取目标唯一标识;进而在服务实例目录中创建目标服务实例的实例名称,将目标唯一标识与目标服务实例绑定构建绑定关系,并执行目标服务实例的服务注册操作;之后,在监听到目标服务实例的删除事件时,在服务实例目录中删除绑定关系,并将目标唯一标识记录回标识目录;和/或,周期性遍历服务实例目录,根据目标唯一标识判断目标服务实例是否存在于***集群中;在确定目标服务实例不存在于***集群的情况下,在服务实例目录中删除绑定关系,并将目标唯一标识记录回标识目录。采用上述技术手段,可以在基于容器集群管理***部署分片服务时,配置目标服务实例的唯一标识,并进行目标服务实例的服务注册和发现操作,在保障服务部署效率的同时,降低***分片服务部署的复杂度。并且,本申请实施例通过在服务注销时回收唯一标识,可以实现唯一标识的复用,进一步降低服务部署的复杂度。
附图说明
图1是本申请实施例提供的一种分片服务部署方法的流程图;
图2是本申请实施例中目标服务实例的服务注册流程图;
图3是本申请实施例中的唯一标识回收流程图;
图4是本申请实施例提供的一种分片服务部署***的结构示意图;
图5是本申请实施例提供的一种分片服务部署设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
本申请提供的一种分片服务部署方法,旨在进行分片服务部署时,通过为正在部署的目标服务实例配置一个唯一标识,以使得目标服务实例在无存储状态下,也能够进行服务注册和发现等操作,进而降低分片服务部署的复杂度。由于大部分服务都需要依赖自身唯一标识(shard number)进行服务注册和发现,以及监控告警等操作。例如,在基于容器集群管理***(kubernetes)进行分片服务部署时,会基于有状态负载的形式(StatefulSet)进行服务部署。将一个容器(pod)的容器名称(pod name)与唯一标识绑定,以基于该唯一标识进行对应容器的服务部署。但这种服务部署形式一般只适用于有存储状态的服务部署场景,需要依赖稳定的本地存储。其服务部署流程较为复杂,且服务升级、扩缩容效率相对较低。而如若采用基于无状态负载(Deployment)的形式进行分片服务部署。各个服务都需要改造成无存储状态的形式,不带有唯一标识,不依赖本地内存。以此可使大部分服务进行数据存储解耦,提升服务部署效率,并降低部署复杂度。但这种情况下又与***服务的注册与发现流程相矛盾,基于无状态负载(Deployment)的形式进行分片服务部署时,这种无唯一标识、无存储状态特性的服务部署形式,会影响容器集群管理***的服务注册和发现流程,增加额外的服务部署复杂度。基于此,提供本申请实施例的一种分片服务部署方法,以解决现有基于容器集群管理***的分片服务部署场景中,服务实例的唯一标识难以兼容服务部署的技术问题。
实施例:
图1给出了本申请实施例提供的一种分片服务部署方法的流程图,本实施例中提供的分片服务部署方法可以由分片服务部署设备执行,该分片服务部署设备可以通过软件和/或硬件的方式实现,该分片服务部署设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。一般而言,该分片服务部署设备可以是服务器主机、服务平台等计算设备。
下述以该分片服务部署设备为执行分片服务部署方法的主体为例,进行描述。参照图1,该分片服务部署方法具体包括:
S110、在目标服务实例启动时,从预构建的标识目录获取目标唯一标识。
本申请实施例在进行服务实例部署时,通过为目标服务实例配置唯一标识,以使得容器集群管理***(kubernetes)在基于无状态负载(Deployment)的形式进行服务实例部署时,可以兼容该唯一标识。使得***既可以满足无存储状态下,高效率地服务部署、扩缩容操作。又可以进行服务注册和发现,在保障服务部署效率的同时,降低服务部署的复杂度。其中,容器集群管理***(kubernetes)简称为k8s,为开源的容器集群管理***。其主要功能包括基于容器的应用部署、维护和滚动升级,负载均衡和服务发现等。
可以理解的是,由于在服务实例部署时,对于每个服务实例,均需要一个唯一标识(shard number),以用于自身服务注册到配置中心、调用方发现下游服务实例,以及进行路由决策等。而容器集群管理***(kubernetes)中的服务部署(Deployment)负载所管理的服务实例之间是镜像的,没有绑定相应的唯一标识(shard number)。其配置完全相同,共享同一份配置数据形态(yaml),因此没有相应的状态区分。则为了实现服务实例的注册与发现,需要对无状态负载形式(Deployment)所管理的服务实例配置相应的唯一标识。
基于此,本申请实施例在容器集群管理***(kubernetes)启动一个服务实例时,就会对应该服务实例配置一个唯一标识,以基于该唯一标识进行该服务实例的服务注册、发现及相关调用操作。其中,定义容器集群管理***(kubernetes)当前启动的服务实例为目标服务实例,目标服务实例在启动时,会执行唯一标识(shard number)的申请流程。之后,当目标服务实例被销毁时,则需要将该唯一标识删除,以避免***根据唯一标识错误调用已经销毁的服务。
具体地,目标服务实例启动时,会根据***镜像配置执行一个启动脚本start.py,基于启动脚本start.py访问分布式数据库(zookeeper)预构建的标识目录/k8s/sngen/{service_name}/available,从中选定一个唯一标识,定义该唯一标识为目标唯一标识,作为当前目标服务实例的唯一标识。其中,分布式数据库(zookeeper)是一个顺序一致性的Key-Value(关键键值)存储分布式数据库,由Apache(Web服务器软件)开源的分布式协调服务,其在后端服务中可用作服务注册与服务发现。基于该分布式数据库(zookeeper)预先构建标识目录后,后续在目标服务实例启动时,即可通过启动脚本start.py遍历分布式数据库(zookeeper)预构建的标识目录/k8s/sngen/{service_name}/available,从中确定相应的唯一标识作为目标唯一标识。
在此之前,该分片服务部署设备预先在分布式数据库(zookeeper)中根据预配置的标识信息范围,在标识目录中构建与标识信息范围对应的多个唯一标识。其中,标识信息范围表示包含了当前所有可以配置的唯一标识的值。分片服务部署设备会根据集群管理***(kubernetes)中待迁移服务和可以配置的标识信息范围,在分布式数据库(zookeeper)预构建的标识目录/k8s/sngen/{service_name}/available中新建节点nodes,表示一个可用的唯一标识。节点nodes表示为:/k8s/sngen/{service_name}/available/{shard_number}。
之后,在集群管理***(kubernetes)启动目标服务实例时,则可以通过遍历标识目录,从标识目录的多个唯一标识中随机选择一个唯一标识作为目标唯一标识。其中,目标服务实例通过启动脚本start.py,基于该启动脚本start.py遍历预构建的标识目录/k8s/sngen/{service_name}/available,从中随机选择一个可用的唯一标识(shard number),以此确定目标服务实例的目标唯一标识。
可选地,在一个实施例中,目标唯一标识的选定还可以根据标识目录/k8s/sngen/{service_name}/available中各个唯一标识(shard number)的排列顺序,有序地从中选择唯一标识作为目标唯一标识。本申请实施例对目标唯一标识的选定方式不做固定限制,在此不多赘述。
S120、在服务实例目录中创建目标服务实例的实例名称,将目标唯一标识与目标服务实例绑定构建绑定关系,并执行目标服务实例的服务注册操作。
进一步地,基于已确定的目标唯一标识,本申请实施例进一步在集群管理***(kubernetes)的服务实例目录中创建一个实例名称,将该实例名称与该目标唯一标识绑定构建绑定关系。并执行目标服务实例的服务注册操作,通过将该目标唯一标识进行服务注册操作,将目标唯一标识注入注册中心。以此,后续***在需要调用服务实例目录中的相关服务时,即可通过该实例名称查询绑定关系,确定相应的目标唯一标识,然后根据目标唯一标识在注册中心确定各个需要调用的服务实例。
其中,通过在容器集群管理***(kubernetes)的服务实例目录/k8s/sngen/{service_name}/pods中增加一个实例名称pod_name子节点,设定该子节点的value为该目标唯一标识,以构建目标唯一标识与实例名称的绑定关系。完成绑定关系创建后,通过执行目标服务实例的服务注册操作,即可在后续服务运行过程中,基于该实例名称绑定的目标唯一标识调用该服务实例,以此实现服务的注册与发现。
在进行目标服务实例的服务注册时,通过检查目标服务实例的运行状态,并在目标服务实例处于预定义状态时,基于目标唯一标识执行目标服务实例的服务注册操作。其中,该预定义状态为目标服务实例正常运行时所处的状态。可以理解的是,为了执行目标服务实例的服务注册操作,需要该目标服务实例健康运行。基于此,本申请实施例通过检测目标服务实例是否处于预定义状态,以此触发目标服务实例的服务注册操作。
具体地,参照图2,目标服务实例的服务注册流程包括:
S1201、基于状态检测脚本检测目标服务实例的运行状态;
S1202、在目标服务实例处于预定义状态时,将目标唯一标识、目标服务实例的IP地址和端口信息写入服务注册中心,以执行目标服务实例的注册操作。
在容器集群管理***(kubernetes)中会为各个已部署的服务实例配置健康检测探针,该健康检测探针即为状态检测脚本。状态检测脚本会周期性检查目标服务实例的存活情况,获取其运行状态。当目标服务实例的运行状态为预定义状态时,触发目标服务实例的服务注册操作。
其中,状态检测脚本通过调取目标服务实例的rpc(Remote Procedure CallProtocol,远程过程调用协议)接口,基于该接口判断目标服务实例的运行状态是否正常。若目标服务实例的运行状态为预定义状态,即目标服务实例健康检查成功。则此时该分布服务部署设备会读取目标服务实例的本地文件,得到其中存储的目标唯一标识(即shard_number),基于该目标唯一标识进行服务注册。将目标唯一标识写入服务注册中心。并将目标服务实例的IP地址和端口信息、目标服务实例所在的存储节点信息写入服务注册中心,以此完成目标服务实例的注册操作。根据实际需要,还可以在注册服务实例是,写入目标服务实例的其他相关信息至服务注册中心,本申请实施例对具体写入的相关信息不做固定限制,在此不多赘述。
此外,基于服务实例目录已构建的实例名称和绑定关系,后续在上下游路由服务需要调用该目标服务实例时,则可以根据目标服务实例的实例名称查询绑定关系确定目标唯一标识,基于该目标唯一标识查询注册中心确定目标服务实例的IP信息和端口信息,进行目标服务实例的调用,以此实现该目标服务实例的服务发现。
此外,由于该目标唯一标识已经被使用,则需要在分布式数据库(zookeeper)中,删除标识目录中,与目标唯一标识对应的唯一标识。可以理解的是,由于该目标唯一标识已经被使用,此时如果将其保留在标识目录中,会导致该目标唯一标识被其他的服务实例绑定,导致服务调用出现错乱的情况。基于此,本申请实施例通过在分布式数据库(zookeeper)预构建的标识目录/k8s/sngen/{service_name}/available中,找到目标唯一标识所对应的node节点/k8s/sngen/{service_name}/available/{shard_number},将该node节点删除。以此删除标识目录中已被使用的唯一标识,保障服务实例的准确调用。
本申请实施例通过为容器集群管理***(kubernetes)部署的服务实例配置唯一标识,以此可以实现服务实例的服务注册和发现,降低服务部署的复杂度,提升服务部署效率。
此外,实际应用中,在上下游路由服务调用目标服务实例时,还可以基于***域名分析功能解析所述实例名称,以根据所述实例名称调用所述目标服务实例的实例接口。可以理解的是,目标服务实例的实例名称包含了服务实例的域名信息,基于容器集群管理***(kubernetes)的域名分析功能,可以从实例名称中解析到对应服务实例的域名信息,以此实现对服务实例的调用。因此,在进行服务实例调用时,可以直接查询服务实例目录/k8s/sngen/{service_name}/pods,根据相应服务实例的实例名称实现对服务实例的实例接口调用。
S130、在监听到目标服务实例的删除事件时,在服务实例目录中删除绑定关系,并将目标唯一标识记录回标识目录;和/或,周期性遍历服务实例目录,根据实例名称判断目标服务实例是否存在于***集群中;在确定目标服务实例不存在于***集群的情况下,在服务实例目录中删除绑定关系,并将目标唯一标识记录回标识目录。
进一步地,基于该已部署的目标服务实例,为了避免唯一标识配置资源浪费,本申请实施例还通过注销的目标服务实例进行唯一标识回收操作,以实现唯一标识的复用。进一步降低服务实例部署的复杂度,减少唯一标识的创建环节,简化唯一标识的生成流程,提升服务实例部署效率。
其中,在目标服务实例运行过程中,分布式数据库(zookeeper)的控制模块zk-controller会基于容器集群管理***(kubernetes)的list&watch机制,监听目标服务实例各个事件。当监听到目标服务实例的删除事件(pod delete)时,触发目标唯一标识的回收流程。
具体地,分布式数据库(zookeeper)的控制模块zk-controller的控制环路会持续监听目标服务实例是否存在删除事件(pod delete),一旦监听到删除事件(pod delete),即表示当前目标服务实例注销。此时服务实例部署设备通过连接分布式数据库(zookeeper),查询服务实例目录,通过实例名称/k8s/sngen/{service_name}/pods/{pod_name}的存储路径获取目标唯一标识shardnumber。基于获取到的目标唯一标识,进一步在分布式数据库(zookeeper)的标识目录/k8s/sngen/{service_name}/available中,重新创建一个node节点/k8s/sngen/{service_name}/available/{shard_number},表示该目标唯一标识,即将该目标唯一标识回收至标识目录。同样地,由于此时目标唯一标识已经回收,则对于服务实例目录中目标服务实例构建的绑定关系,则需要将其注销。以避免上下游服务路由根据绑定关系中的目标唯一标识错误调用已注销的服务实例。其中,通过删除服务实例目录中的node节点/k8s/sngen/{service_name}/pods/{pod_name},以此完成目标服务实例的绑定关系注销操作,实现对目标唯一标识的回收操作。
此外,本申请实施例还提供另一种唯一标识回收流程,以作为上述目标唯一标识回收流程的补偿机制。以避免目标服务实例注销,但未检测到删除事件的情况下,无法回收唯一标识的情况。该两种未必标识的回收流程可以同时应用,也可以择一应用,本申请对目标唯一标识的回收机制不做固定限制,在此不多赘述。
其中,该目标唯一标识回收流程包括:
S1301、周期性遍历服务实例目录,基于绑定关系确定目标服务实例对应的实例名称;
S1302、基于实例名称调用节点代理接口,通过节点代理接口查询目标服务实例是否存在于***集群中。
具体地,若确定目标服务实例不在当前容器集群管理***的***集群中时,则表示该目标服务实例注销。示例性地,在回收目标唯一标识时,分布式数据库(zookeeper)的控制模块zk-controller会周期性轮询服务实例目录,调取kube-apiserver接口,通过该接口确认目标服务实例是否存在于***集群中。其中,kube-apiserver接口是容器集群管理***的API服务器验证并配置API对象的数据接口,API服务器为REST操作提供服务,并为集群的共享状态提供前端,所有其他组件都通过该前端进行交互。
其中,分布式数据库(zookeeper)的控制模块zk-controller会查询***的/k8s/sngen子目录,得到服务实例目录。进而通过遍历服务实例目录,得到该服务实例目录下所有实例名称。通过查询各个实例名称对应的服务实例是否存在***集群中,以确定出不在***集群中的服务实例。最终将不在***集群中的服务实例从服务实例目录中删除,同时将其绑定的目标唯一标识重新记录回标识目录中,以此实现唯一标识的回收。
通过提供唯一标识回收流程的补偿机制,可以尽可能地回收唯一标识至标识目录中。减少唯一标识的创建流程,使唯一标识得以复用。进而提升服务实例的部署效率,优化***服务的运行。
上述,通过在目标服务实例启动时,从预构建的标识目录获取目标唯一标识;进而在服务实例目录中创建目标服务实例的实例名称,将目标唯一标识与目标服务实例绑定构建绑定关系,并执行目标服务实例的服务注册操作;之后,在监听到目标服务实例的删除事件时,在服务实例目录中删除绑定关系,并将目标唯一标识记录回标识目录;和/或,周期性遍历服务实例目录,根据实例名称判断目标服务实例是否存在于***集群中;在确定目标服务实例不存在于***集群的情况下,在服务实例目录中删除绑定关系,并将目标唯一标识记录回标识目录。采用上述技术手段,可以在基于容器集群管理***部署分片服务时,配置目标服务实例的唯一标识,并进行目标服务实例的服务注册和发现操作,在保障服务部署效率的同时,降低***分片服务部署的复杂度。并且,本申请实施例通过在服务注销时回收唯一标识,可以实现唯一标识的复用,进一步降低服务部署的复杂度。
在上述实施例的基础上,图4为本申请提供的一种分片服务部署***的结构示意图。参考图4,本实施例提供的分片服务部署***具体包括:获取模块21、创建模块22和回收模块23。
其中,获取模块,配置为在目标服务实例启动时,从预构建的标识目录获取目标唯一标识;
创建模块,配置为在服务实例目录中创建目标服务实例的实例名称,将目标唯一标识与目标服务实例绑定构建绑定关系,并执行目标服务实例的服务注册操作;
回收模块,配置为在监听到目标服务实例的删除事件时,在服务实例目录中删除绑定关系,并将目标唯一标识记录回标识目录;和/或,周期性遍历服务实例目录,根据实例名称判断目标服务实例是否存在于***集群中;在确定目标服务实例不存在于***集群的情况下,在服务实例目录中删除绑定关系,并将目标唯一标识记录回标识目录。
具体地,获取模块21配置为根据预配置的标识信息范围,在标识目录中构建与标识信息范围对应的多个唯一标识;遍历标识目录,从标识目录的多个唯一标识中随机选择一个唯一标识作为目标唯一标识。
具体地,创建模块22还配置为检查目标服务实例的运行状态,并在目标服务实例处于预定义状态时,基于目标唯一标识执行目标服务实例的服务注册操作。其中,基于状态检测脚本检测目标服务实例的运行状态;在目标服务实例处于预定义状态时,将目标唯一标识、目标服务实例的IP地址和端口信息写入服务注册中心,以执行目标服务实例的注册操作。并且,删除标识目录中,与目标唯一标识对应的唯一标识。基于***域名分析功能解析实例名称,以根据实例名称调用目标服务实例的实例接口。
回收模块23还配置为周期性遍历服务实例目录,基于绑定关系确定目标服务实例对应的实例名称;基于实例名称调用目标服务实例的节点代理接口,通过节点代理接口查询目标服务实例是否存在于***集群中。
上述,通过在通过在目标服务实例启动时,从预构建的标识目录获取目标唯一标识;进而在服务实例目录中创建目标服务实例的实例名称,将目标唯一标识与目标服务实例绑定构建绑定关系,并执行目标服务实例的服务注册操作;之后,在监听到目标服务实例的删除事件时,在服务实例目录中删除绑定关系,并将目标唯一标识记录回标识目录;和/或,周期性遍历服务实例目录,根据实例名称判断目标服务实例是否存在于***集群中;在确定目标服务实例不存在于***集群的情况下,在服务实例目录中删除绑定关系,并将目标唯一标识记录回标识目录。采用上述技术手段,可以在基于容器集群管理***部署分片服务时,配置目标服务实例的唯一标识,并进行目标服务实例的服务注册和发现操作,在保障服务部署效率的同时,降低***分片服务部署的复杂度。并且,本申请实施例通过在服务注销时回收唯一标识,可以实现唯一标识的复用,进一步降低服务部署的复杂度。
本申请实施例提供的分片服务部署***可以配置为执行上述实施例提供的分片服务部署方法,具备相应的功能和有益效果。
在上述实际上例的基础上,本申请实施例还提供了一种分片服务部署设备,参照图5,该分片服务部署设备包括:处理器31、存储器32、通信模块33、输入装置34及输出装置35。存储器32作为一种计算机可读存储介质,可配置为存储软件程序、计算机可执行程序以及模块,如本申请任意实施例所述的分片服务部署方法对应的程序指令/模块(例如,分片服务部署***中的获取模块、创建模块和回收模块)。通信模块33配置为进行数据传输。处理器通过运行存储在存储器中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的分片服务部署方法。输入装置34可配置为接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置35可包括显示屏等显示设备。上述提供的分片服务部署设备可配置为执行上述实施例提供的分片服务部署方法,具备相应的功能和有益效果。
在上述实施例的基础上,本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时配置为执行一种分片服务部署方法,存储介质可以是任何的各种类型的存储器设备或存储设备。当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的分片服务部署方法,还可以执行本申请任意实施例所提供的分片服务部署方法中的相关操作。
在上述实施例的基础上,本申请实施例还提供一种计算机程序产品,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机程序产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备、移动终端或其中的处理器执行本申请各个实施例所述分片服务部署方法的全部或部分步骤。
Claims (11)
1.一种分片服务部署方法,其特征在于,包括:
在目标服务实例启动时,从预构建的标识目录获取目标唯一标识;
在服务实例目录中创建所述目标服务实例的实例名称,将所述目标唯一标识与所述目标服务实例绑定构建绑定关系,并执行所述目标服务实例的服务注册操作;
在监听到所述目标服务实例的删除事件时,在所述服务实例目录中删除所述绑定关系,并将所述目标唯一标识记录回所述标识目录;和/或,
周期性遍历所述服务实例目录,根据所述实例名称判断所述目标服务实例是否存在于***集群中;在确定所述目标服务实例不存在于所述***集群的情况下,在所述服务实例目录中删除所述绑定关系,并将所述目标唯一标识记录回所述标识目录。
2.根据权利要求1所述的分片服务部署方法,其特征在于,在所述从预构建的标识目录获取目标唯一标识之前,还包括:
根据预配置的标识信息范围,在所述标识目录中构建与所述标识信息范围对应的多个唯一标识;
所述从预构建的标识目录获取目标唯一标识,包括:
遍历所述标识目录,从所述标识目录的多个唯一标识中随机选择一个唯一标识作为所述目标唯一标识。
3.根据权利要求2所述的分片服务部署方法,其特征在于,在所述从预构建的标识目录获取目标唯一标识之后,还包括:
删除所述标识目录中,与所述目标唯一标识对应的唯一标识。
4.根据权利要求1所述的分片服务部署方法,其特征在于,所述执行所述目标服务实例的服务注册操作,包括:
检查所述目标服务实例的运行状态,并在所述目标服务实例处于预定义状态时,基于所述目标唯一标识执行所述目标服务实例的服务注册操作。
5.根据权利要求4所述的分片服务部署方法,其特征在于,所述检查所述目标服务实例的运行状态,并在所述目标服务实例处于预定义状态时,基于所述目标唯一标识执行所述目标服务实例的服务注册操作,包括:
基于状态检测脚本检测所述目标服务实例的运行状态;
在所述目标服务实例处于预定义状态时,将所述目标唯一标识、所述目标服务实例的IP地址和端口信息写入服务注册中心,以执行所述目标服务实例的注册操作。
6.根据权利要求1所述的分片服务部署方法,其特征在于,在所述将所述目标唯一标识与所述目标服务实例绑定构建绑定关系之后,还包括:
基于***域名分析功能解析所述实例名称,以根据所述实例名称调用所述目标服务实例的实例接口。
7.根据权利要求1所述的分片服务部署方法,其特征在于,所述周期性遍历所述服务实例目录,根据所述实例名称判断所述目标服务实例是否存在于***集群中,包括:
周期性遍历所述服务实例目录,基于所述绑定关系确定所述目标服务实例对应的所述实例名称;
基于所述实例名称调用节点代理接口,通过所述节点代理接口查询所述目标服务实例是否存在于***集群中。
8.一种分片服务部署***,其特征在于,包括:
获取模块,配置为在目标服务实例启动时,从预构建的标识目录获取目标唯一标识;
创建模块,配置为在服务实例目录中创建所述目标服务实例的实例名称,将所述目标唯一标识与所述目标服务实例绑定构建绑定关系,并执行所述目标服务实例的服务注册操作;
回收模块,配置为在监听到所述目标服务实例的删除事件时,在所述服务实例目录中删除所述绑定关系,并将所述目标唯一标识记录回所述标识目录;和/或,周期性遍历所述服务实例目录,根据所述实例名称判断所述目标服务实例是否存在于***集群中;在确定所述目标服务实例不存在于所述***集群的情况下,在所述服务实例目录中删除所述绑定关系,并将所述目标唯一标识记录回所述标识目录。
9.一种分片服务部署设备,其特征在于,包括:
存储器以及一个或多个处理器;
所述存储器,配置为存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7任一所述的分片服务部署方法。
10.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时配置为执行如权利要求1-7任一所述的分片服务部署方法。
11.一种计算机程序产品,其特征在于,所述计算机程序产品中包含有指令,当所述指令在计算机或处理器上运行时,使得所述计算机或处理器执行如权利要求1-7任一所述的分片服务部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210513055.7A CN115002107A (zh) | 2022-05-11 | 2022-05-11 | 一种分片服务部署方法、***、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210513055.7A CN115002107A (zh) | 2022-05-11 | 2022-05-11 | 一种分片服务部署方法、***、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115002107A true CN115002107A (zh) | 2022-09-02 |
Family
ID=83027045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210513055.7A Pending CN115002107A (zh) | 2022-05-11 | 2022-05-11 | 一种分片服务部署方法、***、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115002107A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118132094A (zh) * | 2024-05-08 | 2024-06-04 | 杭州行至云起科技有限公司 | 应用部署方法、***、计算机设备、存储介质及程序产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104253831A (zh) * | 2013-06-26 | 2014-12-31 | 国际商业机器公司 | 一种用于在云计算环境中部署应用的方法和*** |
CN105100200A (zh) * | 2015-06-02 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 分布式部署统一配置和自动适配方法和*** |
CN106844793A (zh) * | 2017-04-12 | 2017-06-13 | 环球大数据科技有限公司 | 实例服务的管理方法、装置及*** |
US10560353B1 (en) * | 2014-09-16 | 2020-02-11 | Amazon Technologies, Inc. | Deployment monitoring for an application |
CN112055087A (zh) * | 2020-09-10 | 2020-12-08 | 厦门市美亚柏科信息股份有限公司 | 一种Mongodb集群快速部署、迁移和维护的方法及*** |
-
2022
- 2022-05-11 CN CN202210513055.7A patent/CN115002107A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104253831A (zh) * | 2013-06-26 | 2014-12-31 | 国际商业机器公司 | 一种用于在云计算环境中部署应用的方法和*** |
US10560353B1 (en) * | 2014-09-16 | 2020-02-11 | Amazon Technologies, Inc. | Deployment monitoring for an application |
CN105100200A (zh) * | 2015-06-02 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 分布式部署统一配置和自动适配方法和*** |
CN106844793A (zh) * | 2017-04-12 | 2017-06-13 | 环球大数据科技有限公司 | 实例服务的管理方法、装置及*** |
CN112055087A (zh) * | 2020-09-10 | 2020-12-08 | 厦门市美亚柏科信息股份有限公司 | 一种Mongodb集群快速部署、迁移和维护的方法及*** |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118132094A (zh) * | 2024-05-08 | 2024-06-04 | 杭州行至云起科技有限公司 | 应用部署方法、***、计算机设备、存储介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112035317B (zh) | 一种微服务链路监控方法、装置、设备及介质 | |
EP1872227B1 (en) | System and method of testing wireless component applications | |
CN109547524B (zh) | 基于物联网的用户行为存储方法、装置、设备及存储介质 | |
CN110990047A (zh) | 用于多个微服务架构的融合方法及装置 | |
CN106953746A (zh) | 集群节点升级***及方法 | |
CN107644075B (zh) | 收集页面信息的方法和装置 | |
CN113590169B (zh) | 应用部署方法、应用部署***和计算机可读存储介质 | |
CN115114044B (zh) | 消息推送方法、装置、设备和介质 | |
CN114168179A (zh) | 微服务管理方法、装置、计算机设备和存储介质 | |
CN115002107A (zh) | 一种分片服务部署方法、***、设备及存储介质 | |
CN111930565A (zh) | 分布式管理***中组件的进程故障自愈方法、装置及设备 | |
CN111342986A (zh) | 分布式节点管理方法及装置、分布式***、存储介质 | |
CN104104701A (zh) | 在线服务的配置更新的方法和*** | |
CN109274715B (zh) | 车载多通道通信***的平台资源管理*** | |
CN111741102A (zh) | 分布式微服务应用的升级方法及装置 | |
CN114461424A (zh) | 单元化部署架构下的单元间服务发现方法、装置及*** | |
WO2022073196A1 (zh) | 信息处理方法、装置及存储介质 | |
US11582345B2 (en) | Context data management interface for contact center | |
CN114328097A (zh) | 一种文件监控方法、装置、电子设备和存储介质 | |
US11275674B1 (en) | Operations support system (OSS) test tool | |
CN112351114B (zh) | 一种信息处理方法、装置以及存储介质 | |
CN113760843A (zh) | 一种站点部署方法及终端 | |
CN115378993B (zh) | 支持命名空间感知的服务注册与发现的方法和*** | |
CN110209480B (zh) | 一种数据包的操作方法、装置及*** | |
CN117950692A (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 |