CN109491801A - 微服务访问调度方法、装置、介质及电子设备 - Google Patents
微服务访问调度方法、装置、介质及电子设备 Download PDFInfo
- Publication number
- CN109491801A CN109491801A CN201811130929.0A CN201811130929A CN109491801A CN 109491801 A CN109491801 A CN 109491801A CN 201811130929 A CN201811130929 A CN 201811130929A CN 109491801 A CN109491801 A CN 109491801A
- Authority
- CN
- China
- Prior art keywords
- resource
- access request
- micro services
- queue
- access
- 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 40
- 238000012163 sequencing technique Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000004364 calculation method Methods 0.000 abstract description 3
- 238000012545 processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000005611 electricity Effects 0.000 description 2
- 230000005291 magnetic effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000178 monomer Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
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/546—Message passing systems or structures, e.g. queues
Abstract
本发明涉及云计算技术领域,揭示了一种微服务访问调度方法、装置、介质及电子设备。该方法包括:接收微服务对资源的访问请求,所述访问请求包括与所述资源对应的资源标识,所述资源具有对应的队列;将所述访问请求发送到与所述访问请求中的资源标识对应的队列;对所述队列中的所述访问请求按照预定规则排序;在所述访问请求在所述队列中排在最前面且该资源未加锁的情况下,使发出所述访问请求的微服务访问所述资源,其中所述微服务在访问所述资源时对所述资源加锁,访问结束时对所述资源解锁。在云计算领域,微服务是重要实现手段。此方法下,微服务访问资源是按照一定顺序执行的,减少了微服务访问的随机性,增强了微服务访问资源的可预期性。
Description
技术领域
本发明涉及云计算技术领域,特别涉及一种微服务访问调度方法、装置、介质及电子设备。
背景技术
在云计算领域,为了解决单体架构存在复杂度高和扩展性差的缺点,微服务应运而生。微服务是一个或一组相对较小且独立的功能单元。当一个微服务正在访问一个资源时,如果另一个微服务同时访问该资源,会造成访问冲突,因为如果一个微服务在修改该资源,而另一个微服务正在读取该资源的话就会读取到错误的值。
在现有技术的实现中,微服务访问资源时会对该资源加锁,此时其他微服务无法访问该资源,等访问结束后,微服务就会对该资源解锁,其他微服务就能够访问这个资源。当一个微服务访问资源时,其他微服务想要访问同一资源都会因为该资源被加锁而遭到拒绝。然而,等微服务对该资源访问完毕并解锁该资源后,如果哪个微服务此时正好要访问该资源,它就可以锁住该资源,而之前被拒绝的微服务还是无法访问该资源。
现有技术的缺陷在于,在前访问的微服务解锁资源后,在后访问的微服务按照随机的顺序访问该资源,是按照资源被解锁后谁在先凑巧第一个访问该资源的顺序而不是对该资源需求的先后顺序进行访问,可能造成最先访问该资源的微服务等很久才能访问的情况,微服务访问的随机性强,微服务访问资源的可预期性低。
发明内容
在云计算领域,为了解决相关技术中存在的微服务访问资源的可预期性低的技术问题,本发明提供了一种微服务访问调度方法、装置、介质及电子设备。
根据本申请的一方面,提供了一种微服务访问调度方法,所述方法包括:
接收微服务对资源的访问请求,所述访问请求包括与所述资源对应的资源标识,所述资源具有对应的队列;
将所述访问请求发送到与所述访问请求中的资源标识对应的队列;
对所述队列中的所述访问请求按照预定规则排序;
在所述访问请求在所述队列中排在最前面且该资源未加锁的情况下,使发出所述访问请求的微服务访问所述资源,其中所述微服务在访问所述资源时对所述资源加锁,访问结束时对所述资源解锁。
根据本申请的另一方面,提供了一种微服务访问调度装置,所述装置包括:
接收模块,被配置为接收微服务对资源的访问请求,所述访问请求包括与所述资源对应的资源标识,所述资源具有对应的队列;
发送模块,被配置为将所述访问请求发送到与所述访问请求中的资源标识对应的队列;
排序模块,被配置为对所述队列中的所述访问请求按照预定规则排序;
控制模块,被配置为在所述访问请求在所述队列中排在最前面且该资源未加锁的情况下,使发出所述访问请求的微服务访问所述资源,其中所述微服务在访问所述资源时对所述资源加锁,访问结束时对所述资源解锁。
根据本申请的另一方面,提供了一种计算机可读程序介质,其存储有计算机程序指令,当所述计算机程序指令被计算机执行时,使计算机执行如前所述的方法。
根据本申请的另一方面,提供了一种电子设备,所述电子设备包括:
处理器;
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如前所述的方法。
本发明的实施例提供的技术方案可以包括以下有益效果:
本发明所提供的微服务访问调度方法包括如下步骤,接收微服务对资源的访问请求,所述访问请求包括与所述资源对应的资源标识,所述资源具有对应的队列;将所述访问请求发送到与所述访问请求中的资源标识对应的队列;对所述队列中的所述访问请求按照预定规则排序;在所述访问请求在所述队列中排在最前面且该资源未加锁的情况下,使发出所述访问请求的微服务访问所述资源,其中所述微服务在访问所述资源时对所述资源加锁,访问结束时对所述资源解锁。
此方法下,微服务访问资源是按照一定顺序执行的,减少了微服务访问的随机性,增强了微服务访问资源的可预期性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的微服务访问资源的示意图;
图2是根据一示例性实施例示出的一种微服务访问调度方法的流程图;
图3是根据图2对应实施例示出的一实施例的步骤220和步骤260之间步骤以及步骤260细节的流程图;
图4是根据图3对应实施例示出的步骤261的细节流程图;
图5是根据一示例性实施例示出的一种微服务访问调度装置的框图;
图6是根据一示例性实施例示出的一种实现上述微服务访问调度方法的电子设备示例框图;
图7是根据一示例性实施例示出的一种实现上述微服务访问调度方法的计算机可读存储介质。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。
本公开首先提供了一种微服务访问调度方法。本发明的实施环境可以是便携移动设备,例如智能手机、平板电脑、笔记本电脑等,也可以是固定式设备,例如,计算机设备、现场终端、台式电脑、服务器、工作站等。
图1是根据一示例性实施例示出的微服务访问资源的示意图。如图1所示,一个微服务可以访问资源,每个资源都有对应的队列,队列可以接收微服务对该资源的访问请求。微服务是一种软件架构,是一种对软件整体与部分的抽象描述。资源可以是硬件资源、软件资源、电子数据资源或者外设资源等,这些资源可以被有需求的微服务访问。
图2是根据一示例性实施例示出的一种微服务访问调度方法的流程图。如图2所示,此方法包括以下步骤:
步骤210,接收微服务对资源的访问请求,所述访问请求包括与所述资源对应的资源标识,所述资源具有对应的队列。
在一个实施例中,微服务在执行任务时如果需要调用资源的内容,自动触发微服务对资源的访问请求。
在一个实施例中,对资源封装有处理微服务指令的接口,当微服务要访问资源时,向该接口发出访问的指令,该接口将该指令转换成访问请求。
在一个实施例中,在微服务对资源进行访问时,如果资源正在更新,则资源停止更新,当访问结束,允许资源进行更新。
如上所述,由于有许多资源,所以微服务发出访问请求时访问请求中需要有与资源对应的资源标识,从而确定微服务的访问请求要求访问哪个资源。
步骤220,将所述访问请求发送到与所述访问请求中的资源标识对应的队列。
因为可能有不止一个微服务要在相同的时间区间内访问相同资源,所以要为每个资源设置一个队列,排在队列前面的访问请求先访问,排在队列后面的请求后访问。这样做的好处在于,避免了微服务访问顺序混乱、没有预期性的问题。
步骤260,对所述队列中的所述访问请求按照预定规则排序。
队列中的访问请求要按照合理的方式进行排序,从而为各个请求的公平排队提供了可能。
在一个示例性实施例中,该预定规则包括:将所述队列中的所述访问请求按照所述时间戳的先后顺序进行排序。这样做的好处在于,按照先来后到的原则可以在很大程度上保证了微服务访问资源顺序的公平性。
步骤270,在所述访问请求在所述队列中排在最前面且该资源未加锁的情况下,使发出所述访问请求的微服务访问所述资源,其中所述微服务在访问所述资源时对所述资源加锁,访问结束时对所述资源解锁。
如上所述,对队列中访问请求进行排序,排在最前的可以最先访问该资源。如果两个微服务同时访问一个资源,就会造成冲突,因此要在一个微服务访问资源时加锁该资源;在访问结束时,微服务对该资源的需求消失,可以解锁该资源,使在队列里排在该请求后面的请求可以访问这个资源。
在一个示例性实施例中,所述将所述访问请求发送到与所述访问请求中的资源标识对应的队列包括:如果所述访问请求中的资源标识有多个,将所述访问请求发送到多个资源标识中最小资源标识对应的队列。所述微服务在访问所述资源时对所述资源加锁包括:如果微服务发出的访问请求中的资源标识有多个,按照所述多个资源标识从小到大的顺序对资源加锁。
在一个微服务要同时访问多个资源的情况下,锁住一个资源后,另一资源可能被别的微服务锁住,如果另一资源的微服务也要同时锁住当前微服务已锁住的资源才能执行,那两个微服务都无法执行,造成死锁的情况。而这样做的好处在于,实现了对一个微服务访问多个资源时访问顺序的合理规划,避免了死锁的情况。
在一个示例性实施例中,在按照所述多个资源标识从小到大的顺序对资源加锁时,每次对一个资源加锁前访问请求在队列中排序具体包括:
当所述微服务对与最小资源标识对应的资源加锁后,将所述访问请求发送到多个资源标识中没被所述微服务加锁的资源的资源标识里最小资源标识对应的队列;
所述将所述队列中的所述访问请求按照所述时间戳的先后顺序进行排序包括:对所有访问请求按照时间戳的先后顺序进行排序,对有排队时间戳的访问请求按照排队时间戳的先后顺序进行排序,其中在队列中有排队时间戳的访问请求排在所有没有排队时间戳的访问请求的前面,所述排队时间戳为要访问多个资源的微服务的访问请求在要访问的多个资源中一个或多个资源被该微服务加锁后发送到多个资源标识中没被所述微服务加锁的资源的资源标识里最小资源标识对应的队列的时间。
在大多数情况下,一个微服务都是单次访问一个资源的。同时访问多个资源的微服务需要同时占用多个资源,这时如果按时间戳的先后顺序对这些访问请求排序,一方面会大大增加多个要访问单个资源的微服务的等待时间,另一方面可能会增加需要同时访问多个资源的微服务的等待时间,而需要同时访问多个资源的微服务通常是要执行比较重要的任务,因此有必要将有多个资源访问需求的微服务的访问请求排在队列前面,即将如上所述的将具有排队时间戳的访问请求排在队列的最前面。这样做的好处在于,将要访问多个资源的微服务的访问请求和访问一个资源的微服务的访问请求区别开来,将已经对资源加锁的微服务和还没对资源加锁的微服务区别开来,实现了对一个微服务访问多个资源时访问顺序的合理规划,提高了需要同时访问多个资源的微服务在访问时的效率,降低了在队列中排队的访问请求的等待时间。
图3是根据图2对应实施例示出的一实施例的步骤220和步骤260之间步骤以及步骤260细节的流程图。如图3所示,包括以下步骤:
步骤230,获得微服务标识与优先级对照表。
微服务类型不同,其在整个微服务架构中的地位和重要性就不同,所以执行的优先顺序就可以不同。
在一个示例性实施例中,预先设定一个微服务标识与优先级对照表,用于查找微服务的优先级。
步骤240,确定发出所述访问请求的微服务。
微服务是访问请求的发送方,一个微服务与一个访问请求相对应。
步骤250,根据与所述微服务对应的微服务标识,从所述微服务标识与优先级对照表中得到所述微服务的优先级。
有了微服务的微服务标识,就可以从微服务标识与优先级对照表中得到该微服务的优先级,进而可以在优先级的基础上对访问请求进一步排序。
步骤261,基于时间戳和优先级,对所述队列中的所述访问请求排序。
步骤261是步骤260实施细节进一步说明,同时考虑了优先级和时间戳两方面因素在队列中的访问请求排序的重要作用。这样做的好处在于,在一定程度上保证了对访问请求在队列中排序的合理性。
下表是基于微服务标识和优先级对队列中访问请求排序的示意表。如下表所示,因为同一队列中的访问请求的资源标识相同,所以这些访问请求可以用发出该访问请求的微服务的微服务标识来区分。在下表中,优先级按照从大到小的顺序排序,对同一优先级的访问请求按照时间戳的先后顺序排序。比如微服务标识为1的微服务发出访问请求的请求时间戳为21:04:38,微服务标识为5的微服务发出访问请求的请求时间戳为21:05:18,,虽然前者的时间戳在后者之前,但因为后者的优先级高于前者,所以后者在队列中可以排在前者之前。
基于微服务标识和优先级对队列中访问请求排序示意表
在一个示例性实施例中基于时间戳和优先级,对所述队列中的所述访问请求排序具体包括:
按照优先级由高到低,对所述队列中的所述访问请求排序,其中对于同一优先级,按照时间戳由早到晚,对所述访问请求排序。
图4是根据图3对应实施例示出的步骤261的细节流程图。如图4所示,步骤261具体包括:
步骤2611,获取优先级权重和时间戳权重。
在一个实施例中,优先级和时间戳在对队列中访问请求排序的重要性不同,要根据优先级和时间戳以及两者权重综合考虑访问请求如何排序。
步骤2612,根据与所述优先级对应的第一分数、与所述优先级对应的优先级权重、与所述时间戳对应的第二分数和与所述时间戳对应的时间戳权重得到加权和。
在一个实施例中,访问请求按照优先级和时间戳以及各自权重加权和排队,第一分数和第二分数是预先指定的。例如,对于第一分数,优先级3级为90分,优先级2级为60分,优先级1级为30分;对于第二分数,时间戳最晚的为0分,时间戳第二晚的为10分,时间戳第三晚的为20分,以此类推。在优先级权重为0.6,时间戳权重为0.4的情况下,如果一个访问请求优先级为3级,时间戳为第二晚,那么这个访问请求的加权和为0.6×90+0.4×10=58。
步骤2613,按照所述加权和从大到小的顺序,对所述队列中的所述访问请求排序。
因为优先级权重和时间戳权重比较客观地反映了优先级和时间戳在对队列中访问请求排序的重要程度,所以根据时间戳和优先级得到的加权和一种合理的排序标准。这样做的好处在于,综合考虑了优先级和时间戳两者在排序过程中重要程度的差异,可以让最核心的微服务或者最迫切需要访问资源的微服务按照更合理的顺序访问资源。
本公开还提供了一种微服务访问调度装置,以下是本发明的装置实施例。
图5是根据一示例性实施例示出的一种微服务访问调度装置的框图。如图5所示,装置500包括:
接收模块510,被配置为接收微服务对资源的访问请求,所述访问请求包括与所述资源对应的资源标识,所述资源具有对应的队列。
发送模块520,被配置为将所述访问请求发送到与所述访问请求中的资源标识对应的队列。
排序模块530,被配置为对所述队列中的所述访问请求按照预定规则排序。
控制模块540,被配置为在所述访问请求在所述队列中排在最前面且该资源未加锁的情况下,使发出所述访问请求的微服务访问所述资源,其中所述微服务在访问所述资源时对所述资源加锁,访问结束时对所述资源解锁。
据本公开的第三方面,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图6来描述根据本发明的这种实施方式的电子设备600。图6显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:上述至少一个处理单元610、上述至少一个存储单元620、连接不同系统组件(包括存储单620和处理单元610)的总线630。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述“实施例方法”部分中描述的根据本发明各种示例性实施方式的步骤。
存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)621和/或高速缓存存储单元622,还可以进一步包括只读存储单元(ROM)623。
存储单元620还可以包括具有一组(至少一个)程序模块625的程序/实用工具624,这样的程序模块625包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备800(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器660通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
根据本公开的第四方面,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
参考图7所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品700,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种微服务访问调度方法,其特征在于,所述方法包括:
接收微服务对资源的访问请求,所述访问请求包括与所述资源对应的资源标识,所述资源具有对应的队列;
将所述访问请求发送到与所述访问请求中的资源标识对应的队列;
对所述队列中的所述访问请求按照预定规则排序;
在所述访问请求在所述队列中排在最前面且该资源未加锁的情况下,使发出所述访问请求的微服务访问所述资源,其中所述微服务在访问所述资源时对所述资源加锁,访问结束时对所述资源解锁。
2.根据权利要求1所述的方法,其特征在于,所述访问请求包括与所述访问请求对应的时间戳,所述预定规则具体包括:
将所述队列中的所述访问请求按照所述时间戳的先后顺序进行排序。
3.根据权利要求2所述的方法,其特征在于,所述将所述访问请求发送到与所述访问请求中的资源标识对应的队列包括:如果所述访问请求中的资源标识有多个,将所述访问请求发送到多个资源标识中最小资源标识对应的队列;
所述微服务在访问所述资源时对所述资源加锁包括:如果微服务发出的访问请求中的资源标识有多个,按照所述多个资源标识从小到大的顺序对资源加锁。
4.根据权利要求3所述的方法,其特征在于,在按照所述多个资源标识从小到大的顺序对资源加锁时,每次对一个资源加锁前访问请求在队列中排序具体包括:
当所述微服务对与最小资源标识对应的资源加锁后,将所述访问请求发送到多个资源标识中没被所述微服务加锁的资源的资源标识里最小资源标识对应的队列;
所述将所述队列中的所述访问请求按照所述时间戳的先后顺序进行排序包括:对所有访问请求按照时间戳的先后顺序进行排序,对有排队时间戳的访问请求按照排队时间戳的先后顺序进行排序,其中在队列中有排队时间戳的访问请求排在所有没有排队时间戳的访问请求的前面,所述排队时间戳为要访问多个资源的微服务的访问请求在要访问的多个资源中一个或多个资源被该微服务加锁后发送到多个资源标识中没被所述微服务加锁的资源的资源标识里最小资源标识对应的队列的时间。
5.根据权利要求1所述的方法,其特征在于,所述访问请求包括与所述访问请求对应的时间戳,在对所述队列中的所述访问请求按照预定规则排序之前,所述方法还包括:
获得微服务标识与优先级对照表;
确定发出所述访问请求的微服务;
根据与所述微服务对应的微服务标识,从所述微服务标识与优先级对照表中得到所述微服务的优先级。
其中,所述对所述队列中的所述访问请求按照预定规则排序包括:
基于时间戳和优先级,对所述队列中的所述访问请求排序。
6.根据权利要求5所述的方法,其特征在于,所述基于时间戳和优先级,对所述队列中的所述访问请求排序具体包括:
按照优先级由高到低,对所述队列中的所述访问请求排序,其中对于同一优先级,按照时间戳由早到晚,对所述访问请求排序。
7.根据权利要求5所述的方法,其特征在于,所述基于时间戳和优先级,对所述队列中的所述访问请求排序具体包括:
获取优先级权重和时间戳权重;
根据与所述优先级对应的第一分数、与所述优先级对应的优先级权重、与所述时间戳对应的第二分数和与所述时间戳对应的时间戳权重得到加权和;
按照所述加权和从大到小的顺序,对所述队列中的所述访问请求排序。
8.一种微服务访问调度装置,其特征在于,所述装置包括:
接收模块,被配置为接收微服务对资源的访问请求,所述访问请求包括与所述资源对应的资源标识,所述资源具有对应的队列;
发送模块,被配置为将所述访问请求发送到与所述访问请求中的资源标识对应的队列;
排序模块,被配置为对所述队列中的所述访问请求按照预定规则排序;
控制模块,被配置为在所述访问请求在所述队列中排在最前面且该资源未加锁的情况下,使发出所述访问请求的微服务访问所述资源,其中所述微服务在访问所述资源时对所述资源加锁,访问结束时对所述资源解锁。
9.一种计算机可读程序介质,其特征在于,其存储有计算机程序指令,当所述计算机程序指令被计算机执行时,使计算机执行根据权利要求1至7中任一项所述的方法。
10.一种电子设备,其特征在于,所述电子设备包括:
处理器;
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811130929.0A CN109491801A (zh) | 2018-09-27 | 2018-09-27 | 微服务访问调度方法、装置、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811130929.0A CN109491801A (zh) | 2018-09-27 | 2018-09-27 | 微服务访问调度方法、装置、介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109491801A true CN109491801A (zh) | 2019-03-19 |
Family
ID=65689997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811130929.0A Pending CN109491801A (zh) | 2018-09-27 | 2018-09-27 | 微服务访问调度方法、装置、介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109491801A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110175079A (zh) * | 2019-05-10 | 2019-08-27 | 广州市申迪计算机系统有限公司 | 请求队列调度方法、系统、可读存储介质及计算机设备 |
CN110688222A (zh) * | 2019-09-10 | 2020-01-14 | 平安证券股份有限公司 | 资源处理请求的排序方法、装置、介质及电子设备 |
CN110737517A (zh) * | 2019-08-14 | 2020-01-31 | 广西电网电力调度控制中心 | 一种电力系统云平台计算分析微服务资源调度方法 |
CN111414243A (zh) * | 2020-03-19 | 2020-07-14 | 北京明略软件系统有限公司 | 确定访问路径的方法和装置、存储介质及电子装置 |
CN111679917A (zh) * | 2020-06-04 | 2020-09-18 | 中国建设银行股份有限公司 | 资源访问处理方法、装置、服务器及存储介质 |
CN113783822A (zh) * | 2020-06-03 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 一种服务超时管理方法和装置 |
CN113810479A (zh) * | 2021-08-31 | 2021-12-17 | 山石网科通信技术股份有限公司 | 服务协调系统以及服务协调方法 |
CN114006946A (zh) * | 2021-10-29 | 2022-02-01 | 中国平安人寿保险股份有限公司 | 同质资源请求的处理方法、装置、设备及存储介质 |
CN114915663A (zh) * | 2022-03-21 | 2022-08-16 | 北京沃东天骏信息技术有限公司 | 请求响应方法、装置、系统、电子设备和介质 |
CN115988080A (zh) * | 2023-03-22 | 2023-04-18 | 北京首信科技股份有限公司 | 一种基于代理中间件的微服务资源调用方法和系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106533805A (zh) * | 2016-12-23 | 2017-03-22 | 郑州云海信息技术有限公司 | 一种微服务请求处理方法、微服务控制器及微服务架构 |
CN106878393A (zh) * | 2017-01-16 | 2017-06-20 | 深圳市商沃科技发展有限公司 | 一种基于融合微服务架构的系统 |
CN107066324A (zh) * | 2017-03-08 | 2017-08-18 | 广东欧珀移动通信有限公司 | 一种指纹处理资源的控制方法及设备 |
WO2017196774A1 (en) * | 2016-05-11 | 2017-11-16 | Oracle International Corporation | Multi-tenant identity and data security management cloud service |
CN107800756A (zh) * | 2017-03-13 | 2018-03-13 | 平安科技(深圳)有限公司 | 一种负载均衡方法及负载均衡器 |
US20180088935A1 (en) * | 2016-09-27 | 2018-03-29 | Ca, Inc. | Microservices application configuration based on runtime environment |
CN108121608A (zh) * | 2016-11-29 | 2018-06-05 | 杭州华为数字技术有限公司 | 一种队列调度方法以及节点设备 |
CN108427581A (zh) * | 2018-02-07 | 2018-08-21 | 平安普惠企业管理有限公司 | 系统微服务化方法及终端设备 |
US20180270107A1 (en) * | 2017-03-16 | 2018-09-20 | International Business Machines Corporation | Microservices communication pattern for fault detection in end-to-end flows |
-
2018
- 2018-09-27 CN CN201811130929.0A patent/CN109491801A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017196774A1 (en) * | 2016-05-11 | 2017-11-16 | Oracle International Corporation | Multi-tenant identity and data security management cloud service |
US20180088935A1 (en) * | 2016-09-27 | 2018-03-29 | Ca, Inc. | Microservices application configuration based on runtime environment |
CN108121608A (zh) * | 2016-11-29 | 2018-06-05 | 杭州华为数字技术有限公司 | 一种队列调度方法以及节点设备 |
CN106533805A (zh) * | 2016-12-23 | 2017-03-22 | 郑州云海信息技术有限公司 | 一种微服务请求处理方法、微服务控制器及微服务架构 |
CN106878393A (zh) * | 2017-01-16 | 2017-06-20 | 深圳市商沃科技发展有限公司 | 一种基于融合微服务架构的系统 |
CN107066324A (zh) * | 2017-03-08 | 2017-08-18 | 广东欧珀移动通信有限公司 | 一种指纹处理资源的控制方法及设备 |
CN107800756A (zh) * | 2017-03-13 | 2018-03-13 | 平安科技(深圳)有限公司 | 一种负载均衡方法及负载均衡器 |
US20180270107A1 (en) * | 2017-03-16 | 2018-09-20 | International Business Machines Corporation | Microservices communication pattern for fault detection in end-to-end flows |
CN108427581A (zh) * | 2018-02-07 | 2018-08-21 | 平安普惠企业管理有限公司 | 系统微服务化方法及终端设备 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110175079A (zh) * | 2019-05-10 | 2019-08-27 | 广州市申迪计算机系统有限公司 | 请求队列调度方法、系统、可读存储介质及计算机设备 |
CN110737517A (zh) * | 2019-08-14 | 2020-01-31 | 广西电网电力调度控制中心 | 一种电力系统云平台计算分析微服务资源调度方法 |
CN110688222A (zh) * | 2019-09-10 | 2020-01-14 | 平安证券股份有限公司 | 资源处理请求的排序方法、装置、介质及电子设备 |
CN111414243A (zh) * | 2020-03-19 | 2020-07-14 | 北京明略软件系统有限公司 | 确定访问路径的方法和装置、存储介质及电子装置 |
CN113783822B (zh) * | 2020-06-03 | 2023-05-30 | 北京沃东天骏信息技术有限公司 | 服务超时管理方法和装置,电子设备,可读介质 |
CN113783822A (zh) * | 2020-06-03 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 一种服务超时管理方法和装置 |
CN111679917A (zh) * | 2020-06-04 | 2020-09-18 | 中国建设银行股份有限公司 | 资源访问处理方法、装置、服务器及存储介质 |
CN113810479A (zh) * | 2021-08-31 | 2021-12-17 | 山石网科通信技术股份有限公司 | 服务协调系统以及服务协调方法 |
CN113810479B (zh) * | 2021-08-31 | 2023-11-07 | 山石网科通信技术股份有限公司 | 服务协调系统以及服务协调方法 |
CN114006946A (zh) * | 2021-10-29 | 2022-02-01 | 中国平安人寿保险股份有限公司 | 同质资源请求的处理方法、装置、设备及存储介质 |
CN114006946B (zh) * | 2021-10-29 | 2023-08-29 | 中国平安人寿保险股份有限公司 | 同质资源请求的处理方法、装置、设备及存储介质 |
CN114915663A (zh) * | 2022-03-21 | 2022-08-16 | 北京沃东天骏信息技术有限公司 | 请求响应方法、装置、系统、电子设备和介质 |
CN115988080A (zh) * | 2023-03-22 | 2023-04-18 | 北京首信科技股份有限公司 | 一种基于代理中间件的微服务资源调用方法和系统 |
CN115988080B (zh) * | 2023-03-22 | 2023-06-13 | 北京首信科技股份有限公司 | 一种基于代理中间件的微服务资源调用方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109491801A (zh) | 微服务访问调度方法、装置、介质及电子设备 | |
US20210256431A1 (en) | Methods for unlocking shared bikes | |
CN110096344A (zh) | 任务管理方法、系统、服务器集群和计算机可读介质 | |
CN104765621B (zh) | 一种在集群节点中部署程序的方法和系统 | |
CN109783472A (zh) | 表数据的迁移方法、装置、计算机设备和存储介质 | |
CN108762687B (zh) | Io服务质量控制方法、装置、设备及存储介质 | |
CN108846753A (zh) | 用于处理数据的方法和装置 | |
US11314451B2 (en) | Method and apparatus for storing data | |
CN103294556B (zh) | 用于主机系统准入控制的方法和系统 | |
CN109246225A (zh) | 一种资源分配、发放及领取方法 | |
CN109508805A (zh) | 航班改签信息的提供方法、系统、存储介质及电子设备 | |
CN108897874A (zh) | 用于处理数据的方法和装置 | |
CN110516981A (zh) | 一种基于区块链的政务考核处理方法、装置、设备和介质 | |
CN106462462A (zh) | 行进映射缩减架构 | |
CN109639598A (zh) | 基于微服务的请求处理方法、服务器、存储介质及装置 | |
CN109636520A (zh) | 订单的处理方法、装置、介质及电子设备 | |
US20180268375A1 (en) | Method and apparatus for repair or maintenance control of devices | |
CN109032788B (zh) | 预留资源池动态调度方法、装置、计算机设备及存储介质 | |
CN109376173A (zh) | 一种数据查询方法、装置、电子设备及存储介质 | |
CN110321694A (zh) | 基于标签更新系统的操作权限分配方法及相关设备 | |
CN109460363A (zh) | 自动化测试方法、装置、电子设备及计算机可读介质 | |
US11609976B2 (en) | Method and system for managing image based on interworking face image and messenger account | |
US10887162B2 (en) | Dynamic planning and configuration based on inconsistent supply | |
US10339205B2 (en) | Efficient handling of bi-directional data | |
CN109471792A (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 |