CN116405384B - 解决声明式api资源竞态的方法、系统、设备及存储介质 - Google Patents
解决声明式api资源竞态的方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN116405384B CN116405384B CN202310279706.5A CN202310279706A CN116405384B CN 116405384 B CN116405384 B CN 116405384B CN 202310279706 A CN202310279706 A CN 202310279706A CN 116405384 B CN116405384 B CN 116405384B
- Authority
- CN
- China
- Prior art keywords
- resource
- event
- events
- processing
- etcd
- 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 41
- 238000012545 processing Methods 0.000 claims abstract description 74
- 230000008859 change Effects 0.000 claims abstract description 33
- 238000012544 monitoring process Methods 0.000 claims abstract description 28
- 230000008569 process Effects 0.000 claims description 9
- 230000007246 mechanism Effects 0.000 claims description 3
- 238000007781 pre-processing Methods 0.000 claims description 3
- 230000002860 competitive effect Effects 0.000 abstract description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 22
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- 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/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- 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/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2592—Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种解决声明式API资源竞态的方法、系统、设备及存储介质。于该种解决声明式API资源竞态的方法中,启动Vpc‑controller,初始化Etcd监听线程及每个监听资源的unique queue;根据Etcd监听资源事件的变更和/或基于竞态处理规则处理unique queue中的资源事件,资源事件至少包括:资源ID,资源键值;根据资源ID确认资源事件添加顺序避免资源事件被重复添加和/或根据资源事件中的资源键值避免资源事件被并发处理。通过本技术方案相同资源事件在被处理之前,不会重复处理,同时,根据资源键值(key)进行并发控制,保证相同键值的资源不会并发处理,从而解决竞态问题,保证资源业务逻辑处理的准确性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种解决声明式API资源竞态的方法,系统,设备及存储介质。
背景技术
VPC(Virtual Private Cloud,虚拟私有云)虚拟网络的实现包括通过虚拟数据中心内我们可以创建不同的子网(公有网络和私有网络),搭建网页服务器,应用服务器,数据库服务器等等服务,实现虚拟网络可以主要包括数据面和控制面两部分,其中,数据面主要是对网络报文的操作,比如报文的解析,转发,地址转换,匹配路由规则,安全规则,丢弃等;控制面主要是为网络管理员提供数据面报文操作规则的管理能力,比如路由规则、安全规则等的配置,并且为管理员提供统一的管理入口,屏蔽具体数据面实现的复杂性,将数据流抽象为逻辑流,语义更易于管理员理解。
于现有技术中,VPC控制面使用的是声明式API,当并发操作相同资源的时候,会出现竞态问题,比如,对于子网资源,业务要求,同VPC下状态为“服务中”子网的网段不能重叠,当判断子网的网段不重叠时,更新子网状态为“服务中”,有重叠时,更新子网状态为“不可用”;当用户并发创建同一VPC下的有网段重叠的子网时,分别标识为子网A、子网B,此时子网A、子网B的状态为“创建中”:
(1)Api-server将数据保存到etcd中;
(2)vpc-controller监听子网A、子网B的事件,从线程池中获取两个线程,分别处理子网A,子网B的事件;
(3)因为子网A,子网B的状态还都是“创建中”,因此都会判断同VPC下没有“服务中”的子网与自己的网段重叠,然后都把状态更新为“服务中”;
子网A、子网B的事件处理完成后,同VPC下出现了有网段重叠的“服务中”的子网,资源出现的并发竟态问题与原始与业务要求不符。
进一步地,当资源变更事件出现积压时(事件数量>资源池并发数量),对于同一资源会进行多次重复处理,而此时资源的最终声明已经确定,不需要进行重复处理,重复处理只会加重积压现象。
发明内容
基于现有技术,基于现有技术中基于当并发操作资源的时候,会出现竞态问题以及相同资源的事件的重复处理问题等缺陷,本申请提出了一种解决声明式API资源竞态的方法,系统,设备及存储介质。
本申请的第一方面提出了一种解决声明式API资源竞态的方法,该方法包括:
启动Vpc-controller;
初始化Etcd监听线程及每个监听资源的unique queue;
根据Etcd监听资源事件的变更和/或基于竞态处理规则处理unique queue中的所述资源事件,所述资源事件至少包括:资源ID,资源键值(key);
根据所述资源ID确认资源事件添加顺序避免所述资源事件被重复添加和/或根据所述资源事件中的所述资源键值避免所述资源事件被并发处理。
于上述第一方面的一种可能实现方式中,根据Etcd监听资源事件的变更包括:在Etcd监听到所述资源事件存在变更的情况下,调用对应资源的unique queue添加资源事件。
于上述第一方面的一种可能实现方式中,根据所述资源ID确认资源事件添加顺序避免所述资源事件被重复添加包括:
根据所述资源ID判断当前unique queue中是否存在相同的所述资源ID的所述资源事件;
判断是否存在相同的所述资源ID;
若存在,则不添加资源事件添加,并返回;
若不存在相同的所述资源ID,则将所述资源ID对应的所述资源事件添加至uniquequeue中。
于上述第一方面的一种可能实现方式中,根据所述资源事件中的所述资源键值避免所述资源事件被并发处理包括:
根据unique queue中的所述资源事件添加顺序,获取未处理的所述资源事件
根据所述资源键值(key)判断是否存在相同的所述资源键值的资源事件在资源处理池中;
若存在,这将所述资源事件保留在unique queue中;
若不存在,从所述资源处理池中获取所述资源事件进行处理。
于上述第一方面的一种可能实现方式中,启动Vpc-controller包括:
基于etcd中的Watcher机制,实时监控vpc资源数据的变化,并将所述资源事件分发到相应的资源处理池中。
于上述第一方面的一种可能实现方式中,还包括对于不同所述资源键值的所述资源事件可以通过资源处理池并发处理。
于上述第一方面的一种可能实现方式中,第一初始化Etcd监听线程及每个监听资源的unique queue包括:
获取etcd配置,加载配置项启动一个线程进行监听以及
调用全部的监听资源数据及监听资源的变更情况,并放入unique queue,初始化每个监听资源的unique queue。
本申请的第二方面提供了一种解决声明式API资源竞态的系统,应用于如前述的解决声明式API资源竞态的方法中,所述的系统包括:
启动单元,用于启动Vpc-controller;
初始化单元,用于初始化Etcd监听线程及每个监听资源的unique queue;
预处理单元,用于根据Etcd监听资源事件的变更和/或基于竞态处理规则处理unique queue中的所述资源事件,所述资源事件至少包括:资源ID,资源键值(key);
处理单元,用于根据所述资源ID确认资源事件添加顺序避免所述资源事件被重复添加和/或根据所述资源事件中的所述资源键值避免所述资源事件被并发处理。
本申请的第三方面提供了一种电子设备,包括:
存储器,所述存储器用于存储处理程序;
处理器,所述处理器执行所述处理程序时实现如前任意一项所述的解决声明式API资源竞态方法。
本申请的第四方面提供了一种可读存储介质,所述可读存储介质上存储有处理程序,所述处理程序被处理器执行时实现如前述的解决声明式API资源竞态方法。
通过本申请提出的技术方案,至少具备以下有益技术效果:
本申请通过启动Vpc-controller,初始化Etcd监听线程及每个监听资源的uniquequeue,通过Etcd-watcher负责监听etcd中vpc资源变更的相关资源事件,通过建立uniquequeue根据资源事件的资源ID保证相同资源ID的资源在被处理之前,不会重复添加到unique queue中,从而解决了在事件积压的情况下,同一资源被并发处理的问题,同时,根据资源事件的资源键值(key)进行并发控制,保证相同键值的资源不会并发处理,从而解决并发操作引起的竞态问题,保证资源业务逻辑处理的准确性。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1根据本申请的实施例,示出了一种VPC控制面使用的是声明式API结构示意图;
图2根据本申请的实施例,示出了一种解决声明式API资源竞态的方法的流程示意图;
图3根据本申请的实施例。示出了一种解决声明式API资源竞态的方法的系统框图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
于现有技术中,前VPC控制面使用的是声明式API通过Api-server为用户提供VPC资源操作的声明式接口,声明期望的状态,并对请求参数进行合法性校验,校验通过,则将用户声明的资源数据保存到etcd中;Etcd提供VPC资源数据的持久化能力,并且当资源数据发生变更时,将变更事件通知事件消费者,系统将不断地调整实际状态,直到与期望状态保持一致,具体架构如图1所示。
VPC-controller(VPC控制器)用于实现VPC业务逻辑处理,基于分布式系统可以采用分布式系统架构,管控层和数据层分离。
Etcd watcher:监听消费etcd中VPC资源数据的变化,并将事件分发到相应的资源处理池中。
Processor pool(处理池):处理资源变更事件,根据声明的资源数据,进行业务逻辑的处理,比如将VPC网络配置翻译,下发到数据面等;每类资源都有对应的线程池,并发度可以动态指定。
subnets(子网):vpc地址范围的子集;aws会给每个AV zone(数据中心)都分配子网。
为了解决现有技术中,VPC控制面使用的是声明式API会出现基于当并发操作资源的时候,会出现竞态问题以及相同资源的事件的重复处理问题等缺陷,为了实现竞态问题的解决需要保证对共享资源的互斥访问,即一个执行单元访问共享资源时,其他执行单元被禁止访问,本申请通过对资源事件的监听,基于一个不可能重复的unique queue,实现负责相同资源ID的事件不会重复进入unique queue,负责相同键值(key)的资源不会并发处理进而解决资源竞态及资源重复处理的问题。
每个虚拟私有云VPC由一个私网网段、路由表和至少一个子网组成,其中,私网网段包括用户在创建虚拟私有云VPC时,需要指定虚拟私有云VPC使用的私网网段例如地,当前虚拟私有云VPC支持的网段有10.0.0.0/8~24、172.16.0.0/12~24和192.168.0.0/16~24等;子网包括云资源(例如云服务器、云数据库等)必须部署在子网内虚拟私有云VPC创建完成后,您需要为虚拟私有云VPC划分一个或多个子网,子网网段必须在私网网段内;路由表包括在创建虚拟私有云VPC时,系统会自动生成默认路由表,默认路由表的作用是保证了同一个虚拟私有云VPC下的所有子网互通。
具体地,如图2所示,根据本申请的一些实施例,示出了一种解决声明式API资源竞态的方法的流程示意图,该解决声明式API资源竞态的方法具体可以包括:
步骤100:启动VPC-controller。可以理解的是,VPC-controller上可以记录所用相关用户的全部资源的IP地址、VPCID、所在宿主机物理网络的IP地址信息,这三个维度即组成一组路由信息,用于指导数据报文在隧道转发路径,控制器会将路由信息下发到对应的虚拟交换机和网关,实现同宿主机或不同宿主机下的VPC内云主机互访的流程。
步骤200:初始化Etcd监听线程及每个监听资源的unique queue。可以理解的是,可以理解的是,Etcd监听线程用于监听当前存在的资源事件以及用户对资源事件的操作动态等,通过设计unique queue模型,将任何一个资源事件推送到unique queue中,它只会在unique queue中不存在的情况下添加成功,使得每个监听资源的unique queue的资源事件不会重复。
步骤300:根据Etcd监听资源事件的变更和/或基于竞态处理规则处理uniquequeue中的资源事件,资源事件至少包括:资源ID,资源键值。可以理解的是,资源并发处理的竞态问题的出现必然在资源事件的变更的情况下出现,通过Etcd监听资源事件进行集中管理,使得任何一个资源事件的变更都被或捕获,记录并发出通知,资源事件的变更或者新的资源事件的添加包括资源ID,资源键值(key)变化或增加;和/或通过竞态处理规则使得unique queue中的并发操作的资源事件避免出现竞态或重复处理等情况,关于通过uniquequeue实现避免出现竞态或重复处理等情况将在下文中进行详述。
步骤400:根据资源ID确认资源事件添加顺序避免资源事件被重复添加和/或根据资源事件中的资源键值避免资源事件被并发处理。可以理解的是,unique queue包括的资源事件已经保存了资源ID可以用以识别资源事件的唯一性,因此同一资源ID的资源事件在unique queue应当被识别为重复资源事件,该类重复资源事件不会被识别,避免出现重复处理;和/或资源事件中的资源键值可以为当前资源事件所处的状态,例如地,对于子网事件,当前的两个不同子网可能为同一状态,资源键值均为“创建中”,则对于该种不同资源事件但是对应同一资源键值的资源事件不触发并行处理,从而避免资源竞态。
于上述步骤100中,启动VPC-controller包括:基于Etcd中的Watcher机制,实时监控VPC资源数据的变化,并将资源事件分发到相应的资源处理池中。可以理解的是,VPC-controller在启动的时候主动从Etcd获取一次配置信息,在Etcd节点上注册一个Watcher并等待,实时监控VPC资源数据的变化,以后每次配置有更新的时候,Etcd都会实时通知,以此达到获取最新配置信息的目的,同时将资源事件分发到相应的资源处理池中。
于本申请的一些的实施例中,在Etcd节点上注册递归的Watcher,递归式的监控对应事件目录下所有资源事件的变动,这样就实现了消息、配置等变动的时候,能够实时通知更新。
于上述步骤200中,初始化Etcd监听线程及每个监听资源的unique queue包括:获取Etcd配置,加载配置项启动一个线程进行监听以及调用全部的监听资源数据及监听资源的变更情况,并放入unique queue,初始化每个监听资源的unique queue。可以理解的是,从Etcd获取一次配置信息,根据配置信息加载配置项启动一个线程进行监听资源事件的变化,当资源事件为用户创建子网时,对于子网事件,资源事件包括的资源ID为子网ID,资源键值为子网所属的VPC ID;通过unique queue实现资源事件的添加顺序及处理时机,同时unique queue还包括了processor pool,processor pool用于调度程序或基于处理器的请求,将任何一个进程分配给池中的任何一个处理器,对于processor pool包括的可处理的进程,可以进行并发处理,实现资源的业务逻辑。
于上述步骤300中,根据Etcd监听资源事件的变更包括:
在Etcd监听到资源事件存在变更的情况下,调用对应资源的unique queue添加资源事件。可以理解的是,Etcd监听到资源事件存在变更时,意味着当前资源事件已经被处理完成,例如地,在VPC这个虚拟数据中心内创建的某一子网(公有网络和私有网络)已创建完成等,此时对应该资源的unique queue中processor pool可处理的进程加1,此时可以调用对应的资源的unique queue添加资源事件以便处理新的资源事件。
于上述步骤400中,根据资源ID确认资源事件添加顺序避免资源事件被重复添加包括:
根据资源ID判断当前unique queue中是否存在相同的资源ID的资源事件;
判断是否存在相同的资源ID;
若存在,则不添加资源事件添加,并返回;
若不存在相同的资源ID,则将资源ID对应的资源事件添加至unique queue中。
可以理解的是,Etcd监听资源事件或者当前unique queue中存在资源事件的情况下,一旦需要插入新的资源事件时,则首先获取unique queue中的资源事件的资源ID,将待插入unique queue的新的资源事件的资源ID与unique queue的原有资源ID进行比较,若已经存在相同的资源ID则判断为重复资源事件,返回重新通过Etcd监听资源事件;若不存在相同的资源ID,则该资源事件为新的资源事件,运行插入unique queue。
于本申请的一些实施例中,为了避免同一资源事件重复处理也可以通过也可以通过缓存每个资源最近一次的处理时间,当需要处理资源事件时,判断上次开始处理的时间,是否大于当前事件的创建时间,是的话,则不处理,不是的话,则处理,本领域技术人员可以根据实际创建时间和处理时间对重复处理的资源事件进行判断,在此不做限定。
于上述步骤400中,根据资源事件中的资源键值避免资源事件被并发处理包括:
根据unique queue中的资源事件添加顺序,获取未处理的资源事件;
根据资源键值判断是否存在相同的资源键值的资源事件在资源处理池中;
若存在,这将资源事件保留在unique queue中;
若不存在,从资源处理池中获取资源事件进行处理。
可以理解的是,根据unique queue中的资源事件添加顺序对unique queue中未处理的资源事件进行进一步监听,当监听到unique queue中仍然存在资源事件需要处理时,获取未处理的资源事件的资源键值(key值),若发现有相同key值的资源事件已经在处理中,则不会进行并发处理,将未处理的资源案件保留在unique queue中,如果没有监听到相同key值的资源事件,则认为当前未处理的资源事件不会导致资源竞态的出现,则从processor pool处理池中将该未处理的资源事件获取并进行处理。
于本申请的一些实施例中,根据processor pool未处理的资源事件以及通过key值资源事件是否会出现竞态的情况时,可以同时对若干未处理的资源事件进行判断,也可以逐一对若干未处理的资源事件进行判断后,并行处理,在此不做限定。
于本申请的一实施例中,对于不同资源键值的资源事件可以通过资源处理池并发处理。可以理解的是,不同资源键值的资源事件均处于unique queue的processor pool(处理池)中,该资源事件一定不包括重复的资源事件,当资源键值不同的情况下,意味着该资源事件处于不同的状态,用户对其操作事项必然不同,此时根据processor pool(处理池)的资源事件的数量进行并行处理,必然不会导致资源竞态的出现。
于本申请的一些实施例中,资源并发处理的竞态问题,也可以通过将每个资源的processor pool大小设置为1来实现,整个资源事件的处理就完全串行了,即使是不同键值的资源事件,比如属于不同vpc的子网事件的处理,也只能串行进行,资源事件并发处理的竞态问题也可以被解决。
于本申请的一些实施例中,如图2所示,还提供了一种解决声明式API资源竞态的系统,该种解决声明式API资源竞态的系统应用于前述实施例中所提及的解决声明式API资源竞态的方法中,具体包括:
启动单元1,用于启动Vpc-controller;
初始化单元2,用于初始化Etcd监听线程及每个监听资源的unique queue;
预处理单元3,用于根据Etcd监听资源事件的变更和/或基于unique queue处理unique queue中的资源事件,资源事件至少包括:资源ID,资源键值;
处理单元4,用于根据资源ID确认资源事件添加顺序避免资源事件被重复添加和/或根据资源事件中的资源键值避免资源事件被并发处理。
可以理解的是,上述解决声明式API资源竞态的系统中的各个功能模块执行与前述实施例中解决声明式API资源竞态方法的步骤流程,在此不做赘述。
现提供一具体实施例对上述技术方案进行进一步阐释和说明:
于上述具体实施例中,设定场景为用户创建子网资源,当用户并发创建同一vpc下的有网段重叠的子网时,分别标识为子网A、子网B,此时子网A、子网B的状态为“创建中”。
根据VPC创建的业务要求,同VPC下状态为“服务中”子网的网段不能重叠,当判断子网的网段不重叠时,更新子网状态为“服务中”,有重叠时,更新子网状态为“不可用”。
首先,Api-server将数据保存到Etcd中;
然后,VPC-controller监听到了子网A、子网B的事件,资源ID分别为“A”和“B”,通过Etcd监听资源事件变更,判断unique queue中不存在资源ID分别为“A”和“B”的资源事件,则添加子网A、子网B的事件从线程池中获取两个线程,分别处理子网A,子网B的事件;
因此判断虽然同VPC下没有“服务中”的子网与自己的网段重叠,此时,因为子网A,子网B的状态即对应的资源键值相同均为“创建中”,只有插入unique queue时间较早的子网A状态更新为“服务中”,子网B仍然以“创建中”的状态保留将资源事件保留在uniquequeue中,从而解决了资源竞态的问题。
同时基于本具体实施例,当资源变更事件出现积压时(事件数量>资源池并发数量),对于同一资源无法进入同一unique queue中,也不会出现资源事件被重复处理的情况。
在本申请的一些实施例中还提供了一种电子设备,包括:存储器,存储器用于存储处理程序;处理器,处理器执行处理程序时实现前述第一方面所提供的解决声明式API资源竞态方法。
在本申请的一些实施例中还提供了一种可读存储介质,该种可读存储介质上存储有处理程序,处理程序被处理器执行时实现前述第一方面所提供的解决声明式API资源竞态方法。
本申请提出的技术方案涉及方法、装置、系统、芯片、电子设备、计算机可读存储介质和/或计算机程序产品。计算机程序产品可以包括用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (8)
1.一种解决声明式API资源竞态的方法,其特征在于,所述的方法包括:
启动Vpc-control ler;基于etcd中的Watcher机制,实时监控vpc资源数据的变化,并将资源事件分发到相应的资源处理池中;
初始化Etcd监听线程及每个监听资源的unique queue;
根据Etcd监听资源事件的变更和/或基于竞态处理规则处理unique queue中的所述资源事件,所述资源事件至少包括:资源ID,资源键值;
所述资源ID用以识别资源事件的唯一性;所述资源键值可以为当前资源事件所处的状态;
根据所述资源ID确认资源事件添加顺序避免所述资源事件被重复添加和/或根据所述资源事件中的所述资源键值避免所述资源事件被并发处理;
对于不同所述资源键值的所述资源事件可以通过所述资源处理池并发处理;将每个所述资源事件的处理池大小设置为1来实现,整个所述资源事件的处理就完全串行了,即使是不同所述资源键值的所述资源事件。
2.根据权利要求1所述的一种解决声明式API资源竞态的方法,其特征在于,初始化Etcd监听线程及每个监听资源的unique queue包括:
获取etcd配置,加载配置项启动一个线程进行监听以及调用全部的监听资源数据及监听资源的变更情况,并放入unique queue,初始化每个监听资源的unique queue。
3.根据权利要求1所述的一种解决声明式API资源竞态的方法,其特征在于,根据Etcd监听资源事件的变更包括:
在Etcd监听到所述资源事件存在变更的情况下,调用对应资源的unique queue添加资源事件。
4.根据权利要求1所述的一种解决声明式API资源竞态的方法,其特征在于,根据所述资源ID确认资源事件添加顺序避免所述资源事件被重复添加包括:
根据所述资源ID判断当前unique queue中是否存在相同的所述资源ID的所述资源事件;
判断是否存在相同的所述资源ID;
若存在,则不添加资源事件添加,并返回;
若不存在相同的所述资源ID,则将所述资源ID对应的所述资源事件添加至uniquequeue中。
5.根据权利要求1所述的一种解决声明式API资源竞态的方法,其特征在于,根据所述资源事件中的所述资源键值避免所述资源事件被并发处理包括:
根据unique queue中的所述资源事件添加顺序,获取未处理的所述资源事件;
根据所述资源键值判断是否存在相同的所述资源键值的资源事件在资源处理池中;
若存在,这将所述资源事件保留在unique queue中;
若不存在,从所述资源处理池中获取所述资源事件进行处理。
6.一种解决声明式API资源竞态的系统,应用于如权利要求1-5任一所述的解决声明式API资源竞态的方法中,所述的系统包括:
启动单元,用于启动Vpc-controller;
初始化单元,用于初始化Etcd监听线程及每个监听资源的unique queue;
预处理单元,用于根据Etcd监听资源事件的变更和/或基于所述unique queue处理unique queue中的所述资源事件,所述资源事件至少包括:资源ID,资源键值;
处理单元,用于根据所述资源ID确认资源事件添加顺序避免所述资源事件被重复添加和/或根据所述资源事件中的所述资源键值避免所述资源事件被并发处理。
7.一种电子设备,其特征在于,包括:
存储器,所述存储器用于存储处理程序;
处理器,所述处理器执行所述处理程序时实现如权利要求1至5中任意一项所述的解决声明式API资源竞态的方法。
8.一种可读存储介质,其特征在于,所述可读存储介质上存储有处理程序,所述处理程序被处理器执行时实现如权利要求1至5中任意一项所述的解决声明式API资源竞态的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310279706.5A CN116405384B (zh) | 2023-03-21 | 2023-03-21 | 解决声明式api资源竞态的方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310279706.5A CN116405384B (zh) | 2023-03-21 | 2023-03-21 | 解决声明式api资源竞态的方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116405384A CN116405384A (zh) | 2023-07-07 |
CN116405384B true CN116405384B (zh) | 2024-01-30 |
Family
ID=87017044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310279706.5A Active CN116405384B (zh) | 2023-03-21 | 2023-03-21 | 解决声明式api资源竞态的方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116405384B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591726A (zh) * | 2011-12-31 | 2012-07-18 | 青岛海信宽带多媒体技术有限公司 | 一种多进程通信方法 |
CN109039803A (zh) * | 2018-07-10 | 2018-12-18 | 武汉斗鱼网络科技有限公司 | 一种处理回调通知消息的方法、系统及计算机设备 |
CN112486564A (zh) * | 2020-12-09 | 2021-03-12 | 浪潮云信息技术股份公司 | 基于Confd动态更新配置的方法及系统 |
CN113778511A (zh) * | 2021-09-10 | 2021-12-10 | 豆盟(北京)科技股份有限公司 | 资源配置方法、装置、设备及存储介质 |
CN114006946A (zh) * | 2021-10-29 | 2022-02-01 | 中国平安人寿保险股份有限公司 | 同质资源请求的处理方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105991412B (zh) * | 2015-02-12 | 2019-03-19 | 阿里巴巴集团控股有限公司 | 消息推送方法及装置 |
-
2023
- 2023-03-21 CN CN202310279706.5A patent/CN116405384B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591726A (zh) * | 2011-12-31 | 2012-07-18 | 青岛海信宽带多媒体技术有限公司 | 一种多进程通信方法 |
CN109039803A (zh) * | 2018-07-10 | 2018-12-18 | 武汉斗鱼网络科技有限公司 | 一种处理回调通知消息的方法、系统及计算机设备 |
CN112486564A (zh) * | 2020-12-09 | 2021-03-12 | 浪潮云信息技术股份公司 | 基于Confd动态更新配置的方法及系统 |
CN113778511A (zh) * | 2021-09-10 | 2021-12-10 | 豆盟(北京)科技股份有限公司 | 资源配置方法、装置、设备及存储介质 |
CN114006946A (zh) * | 2021-10-29 | 2022-02-01 | 中国平安人寿保险股份有限公司 | 同质资源请求的处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116405384A (zh) | 2023-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10212029B2 (en) | Service provisioning in cloud computing systems | |
US10416996B1 (en) | System and method for translating affliction programming interfaces for cloud platforms | |
US10686755B2 (en) | Assigning IP addresses and configuration parameters in hyper-converged infrastructure | |
US20150012914A1 (en) | Distributed update service | |
US9633127B2 (en) | Deploying programs in a cluster node | |
US9130943B1 (en) | Managing communications between client applications and application resources of on-premises and cloud computing nodes | |
CN110069346B (zh) | 多进程间资源共享方法、装置、电子设备 | |
US10678657B1 (en) | Reversion operations for virtual computing environments | |
US11423343B2 (en) | Dynamic construction of cloud services | |
US20160149772A1 (en) | Dynamic service level agreement (sla) adjustment based upon application capabilities | |
US10341181B2 (en) | Method and apparatus to allow dynamic changes of a replica network configuration in distributed systems | |
US20220075890A1 (en) | Secure storage access through rate limitation | |
US20160094409A1 (en) | Composite service pre-provisioning | |
US10303360B2 (en) | Replicating data in a data storage system | |
US10021204B2 (en) | Test proxy between client applications and web services | |
US11240185B2 (en) | Managing and executing serverless function command sets in a messaging service | |
CN111626606B (zh) | 业务规则处理方法、装置、设备、系统及存储介质 | |
US11381665B2 (en) | Tracking client sessions in publish and subscribe systems using a shared repository | |
CN116405384B (zh) | 解决声明式api资源竞态的方法、系统、设备及存储介质 | |
JP2017538237A (ja) | 仮想マシン名を表示するための方法、装置、およびシステム | |
EP3721604B1 (en) | Automatic subscription management of computing services | |
US20230135884A1 (en) | Propagating application properties to multiple instances | |
US20190065163A1 (en) | Partial redundancy elimination with a fixed number of temporaries | |
US9911003B2 (en) | Dynamic data masking of post-output database data | |
CN112860422B (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 | ||
CP03 | Change of name, title or address |
Address after: 8b, building 1, No. 48, Zhichun Road, Haidian District, Beijing 100098 Patentee after: Beijing Zhiling Haina Technology Co.,Ltd. Country or region after: China Address before: 8b, building 1, No. 48, Zhichun Road, Haidian District, Beijing 100098 Patentee before: Beijing zhilinghaina Technology Co.,Ltd. Country or region before: China |