CN116501383B - 微服务的分配方法、装置、电子设备及可读存储介质 - Google Patents

微服务的分配方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN116501383B
CN116501383B CN202310758644.6A CN202310758644A CN116501383B CN 116501383 B CN116501383 B CN 116501383B CN 202310758644 A CN202310758644 A CN 202310758644A CN 116501383 B CN116501383 B CN 116501383B
Authority
CN
China
Prior art keywords
service
micro
cluster
affinity
affinity tag
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
Application number
CN202310758644.6A
Other languages
English (en)
Other versions
CN116501383A (zh
Inventor
张磊
欧阳晔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Asiainfo Technologies China Inc
Original Assignee
Asiainfo Technologies China Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Asiainfo Technologies China Inc filed Critical Asiainfo Technologies China Inc
Priority to CN202310758644.6A priority Critical patent/CN116501383B/zh
Publication of CN116501383A publication Critical patent/CN116501383A/zh
Application granted granted Critical
Publication of CN116501383B publication Critical patent/CN116501383B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请实施例提供了一种微服务的分配方法、装置、电子设备及可读存储介质,涉及微服务领域。该方法包括:基于第一微服务的亲和性标签和各个候选聚类簇的亲和性标签,确定该第一微服务和各个候选聚类簇之间的亲和性,并基于亲和性由高至低依次遍历各个候选聚类簇,直至从至少一个候选聚类簇中确定第一目标聚类簇;第一目标聚类簇中包括第二微服务,第二微服务的服务类型为目标服务类型,该第二微服务和第一微服务之间具备较高的亲和性。本申请实施例实现了为第一微服务分配与之亲和性较高的第二微服务,该第二微服务和该第一微服务的适配性较高。

Description

微服务的分配方法、装置、电子设备及可读存储介质
技术领域
本申请涉及微服务技术领域,具体而言,本申请涉及一种微服务的分配方法、装置、电子设备及可读存储介质。
背景技术
微服务是一种软件开发技术,它提倡将单一应用程序划分成一组小的服务(即微服务),每个微服务都具有其特定的功能,通过微服务之间的协作(微服务之间的调用)可完整地处理业务流程。微服务的注册中心可以对微服务进行管理,可以为微服务调用方分配可调用的微服务。
注册中心通常可基于三种方式为微服务调用方分配可调用的微服务,分别是轮询方式、随机权重方式以及平均最小耗时方式。其中,轮询方式是指依次访问符合各个微服务,将当前访问的一个微服务作为可调用的微服务;随机权重选择方式是指通过为各个微服务设置随机权重的方式,基于各个微服务的权重,从各个微服务中选择一个可调用的微服务;平均最小耗时选择方式是指通过记录各个微服务被调用时的移动平均耗时(移动平均耗时可以为每个周期内的平均耗时),可以将移动平均耗时最小的微服务作为可调用的目标微服务。
上述三种方式虽然可以为微服务调用方分配可调用的微服务,然上述三种方式分配的可调用的微服务通常情况下不是最适合该微服务调用方的微服务,与微服务调用方的适配度不高,很可能无法适应于微服务调用方复杂业务场景。
发明内容
本申请实施例提供了一种微服务的分配方法、装置、电子设备、计算机可读存储介质及计算机程序产品,用于解决背景技术中的技术问题。
根据本申请实施例的第一方面,提供了一种微服务的分配方法,应用于微服务的注册中心,注册中心包括至少一个微服务的地址信息和亲和性标签;亲和性标签是基于微服务在各维度属性的属性值生成的;该方法包括:
接收第一微服务发送的分配请求,分配请求用于指示为第一微服务分配目标服务类型的微服务,分配请求中包括第一微服务的地址信息,根据第一微服务的地址信息确定第一微服务的亲和性标签;
根据第一微服务的亲和性标签从至少一个聚类簇中确定至少一个候选聚类簇;每个聚类簇中包括至少一个具备相同的亲和性标签的微服务;每个聚类簇的亲和性标签和聚类簇中的微服务的亲和性标签相同;第一微服务的亲和性标签中所包含的属性值个数不小于候选聚类簇的亲和性标签中的属性值个数;
基于第一微服务的亲和性标签和每个候选聚类簇的亲和性标签,确定第一微服务和每个候选聚类簇之间的亲和性;亲和性表征第一微服务和候选聚类簇之间的适配程度;
基于亲和性由高至低的顺序依次遍历各个候选聚类簇,直至从至少一个候选聚类簇中确定第一目标聚类簇;第一目标聚类簇中包括第二微服务,第二微服务的服务类型为目标服务类型;
向第一微服务发送第二微服务的地址信息,以使得第一微服务基于第二微服务的地址信息调用第二微服务。
根据本申请实施例的第二方面,提供了一种微服务的分配装置,应用于微服务的注册中心,注册中心包括至少一个微服务的地址信息和亲和性标签;亲和性标签是基于微服务在各维度属性的属性值生成的;装置包括:
分配请求接收模块,用于接收第一微服务发送的分配请求,分配请求用于指示为第一微服务分配目标服务类型的微服务,分配请求中包括第一微服务的地址信息,根据第一微服务的地址信息确定第一微服务的亲和性标签;
候选聚类簇确定模块,用于根据第一微服务的亲和性标签从至少一个聚类簇中确定至少一个候选聚类簇;每个聚类簇中包括至少一个具备相同的亲和性标签的微服务;每个聚类簇的亲和性标签和聚类簇中的微服务的亲和性标签相同;第一微服务的亲和性标签中所包含的属性值个数不小于候选聚类簇的亲和性标签中的属性值个数;
亲和性确定模块,用于基于第一微服务的亲和性标签和每个候选聚类簇的亲和性标签,确定第一微服务和每个候选聚类簇之间的亲和性;亲和性表征第一微服务和候选聚类簇之间的适配程度;
第一目标聚类簇确定模块,用于基于亲和性由高至低的顺序依次遍历各个候选聚类簇,直至从至少一个候选聚类簇中确定第一目标聚类簇;第一目标聚类簇中包括第二微服务,第二微服务的服务类型为目标服务类型;
地址信息发送模块,用于向第一微服务发送第二微服务的地址信息,以使得第一微服务基于第二微服务的地址信息调用第二微服务。
根据本申请实施例的第三方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上的计算机程序,处理器执行程序时实现如第一方面所提供的方法的步骤。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。
根据本申请实施例的第五方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中,当计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行实现如第一方面所提供的方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例为每个微服务设置了亲和性标签,第一微服务在调用目标服务类型的第二微服务时,基于第一微服务的亲和性标签和各个候选聚类簇的亲和性标签,确定该第一微服务和各个候选聚类簇之间的亲和性,并基于亲和性由高至低依次遍历各个候选聚类簇,直至从至少一个候选聚类簇中确定第一目标聚类簇;第一目标聚类簇中包括第二微服务,第二微服务的服务类型为目标服务类型,该第二微服务和第一微服务之间具备较高的亲和性,即注册中心实现了为第一微服务分配与该第一微服务亲和性较高的第二微服务,该第二微服务和该第一微服务的适配性较高。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的在一场景中基于现有方案进行微服务分配的示意图;
图2为本申请实施例提供的实现微服务的分配方法的系统架构示意图;
图3为本申请实施例提供的一种微服务的分配方法的流程示意图;
图4为本申请实施例提供的一种属性树的结构示意图;
图5为本申请实施例提供的各个微服务在属性树中对应的节点的示意图;
图6为本申请实施例提供的在一场景中进行微服务的分配的示意图;
图7为本申请实施例提供的一种在两个聚类簇的亲和性标签之间存在预设隔离时,进行微服务分配的示意图;
图8为本申请实施例提供的在一场景中进行微服务重分配的示意图;
图9为本申请实施例提供的一种微服务的分配装置的结构示意图;
图10为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式 “一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或 “耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
如图1所示,其示例性在一场景中基于现有方案进行微服务分配时的示意图,该现有方案可以是上述轮询方式、随机权重方式以及平均最小耗时方式中的任意一种,如图1所示,包括用户群体、网关(gateway)以及各种服务类型的微服务,其中,S1服务类型的微服务包括微服务S1-1和S1-2,S2服务类型的微服务包括S2-1和S2-2,S3服务类型的微服务包括S3-1和S3-2。当S1-1需要调用 S2服务类型的微服务时,会随机从 S2-1或者 S2-1中选择一个微服务进行调用;当 S1-1需要调用 S3服务类型的微服务时,会随机从 S3-1 或者 S3-2中选择一个微服务进行调用。这种随机选择的方式分配的可调用的微服务通常情况下不是最适合该微服务调用方的微服务,与微服务调用方的适配度不高,很可能无法适应于微服务调用方复杂业务场景。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
图2为本申请实施例提供的实现微服务的分配方法的系统架构示意图,其中,包括微服务210以及微服务的注册中心220,其中,微服务210可以包括微服务提供者211以及微服务调用方212(也称微服务消费者),其中,微服务在调用其他微服务时,作为微服务调用方211,微服务在被调用时,作为微服务提供者211;涉及的交互为:步骤1,微服务210在启动时,向注册中心220发送注册请求,以进行注册;步骤2,注册中心220响应于该注册请求,对微服务进行注册,并返回响应消息;步骤3,微服务调用方212向微服务注册中心220发送分配请求,请求为自身分配一个目标服务类型的微服务;步骤4,注册中心220响应于该注册请求,向微服务调用方发送目标目标服务类型的微服务的目标地址;微服务调用方212接收该目标地址,并基于该目标地址远程调用目标微服务的实例信息。
上述微服务210和注册中心220均可部署于服务器,可部署于相同的服务器,也可部署于不同的服务器,不同的微服务同样可以部署于相同的服务器或者不同的服务器。
本申请实施例中提供了一种微服务的分配方法,用于微服务的注册中心,注册中心包括至少一个微服务的地址信息和亲和性标签;亲和性标签是基于微服务在各维度属性的属性值生成的;如图3所示,该方法包括:
步骤S301,接收第一微服务发送的分配请求,分配请求用于指示为第一微服务分配目标服务类型的微服务,分配请求中包括第一微服务的地址信息,根据第一微服务的地址信息确定第一微服务的亲和性标签;
本申请实施例的微服务的分配方法应用于微服务的注册中心,微服务的注册中心用于对微服务进行管理,微服务在注册之前可称为待注册的微服务,待注册的微服务在启动时,向注册中心发送注册请求,注册请求包括待注册的微服务的地址信息、服务类型以及各维度属性的属性值等信息,还可以包括其他信息,注册请求用于上报待注册微服务的地址信息、服务类型以及各维度属性的属性值。
其中,地址信息可以唯一确定微服务,地址信息可以为url地址、ip地址。
服务类型表征微服务的类型,微服务类型可以表征微服务的功能,服务类型可以是注册类型、登录类型、商品类型、订单类型、租车类型、租房类型等等,还可以是其他服务类型,本申请实施例对此不作限制。
各维度属性可以包括地理位置属性、性能属性等,其中,对于地理位置属性,更为细粒度的可以划分为国家、省份、市级、地区等等;对于性能属性,更为细粒度的可以划分为吞吐量、耗时等,各个微服务在各维度都有相应的属性值,例如微服务1在国家这一维度的属性为中国,在省份这一维度的属性为北京等,微服务2在国家这一维度的属性为中国,在省份这一维度的属性为湖南等,当然,并非所有微服务在各维度属性都有相应的属性值,例如某微服务属于省级微服务,则该微服务在市级维度的属性值为空(表征该微服务没有该市级维度属性)。
此外,每个微服务在各维度的属性的属性值可以是微服务开发商或其他人员自行设置的,也可以是自动获取的,例如地理位置属性的属性值可以通过定位自动获取。
本申请实施例注册中心在接收到各待注册的微服务的注册请求后,响应于该注册请求,存储待注册的微服务的地址信息、服务类型以及各维度属性的属性值,确定待注册的微服务已注册。
本申请实施例微服务的亲和性标签是基于微服务的各维度属性的属性值生成的,将各维度属性的属性值进行组合,可获得微服务的亲和性标签,比如微服务A的亲和性标签为“中国.湖南.长沙”,微服务B的亲和性标签为“中国.北京”。注册中心可基于各已注册的微服务在各维度属性的属性值生成该各已注册的微服务各自对应的亲和性标签,并建立已注册的微服务的地址信息和该已注册的微服务的亲和性标签之间的关联关系,并存储该关联关系。
本申请实施例第一微服务为微服务调用方,第一微服务在被请求时,若确定需要其他微服务进行协作处理,该第一微服务会向注册中心发送分配请求,该分配请求用于指示为第一微服务分配目标服务类型的微服务,分配请求中包括第一微服务的地址信息。注册中心接收该第一微服务发送的分配请求,并基于预先建立的已注册的微服务的地址信息和该已注册的微服务的亲和性标签之间的关联关系,确定该第一微服务的亲和性标签。
步骤S302,根据第一微服务的亲和性标签从至少一个聚类簇中确定至少一个候选聚类簇;每个聚类簇中包括至少一个具备相同的亲和性标签的微服务;每个聚类簇的亲和性标签和聚类簇中的微服务的亲和性标签相同;第一微服务的亲和性标签中所包含的属性值个数不小于候选聚类簇的亲和性标签中的属性值个数。
本申请实施例每个微服务都有相应的亲和性标签,可基于各微服务的亲和性标签,对微服务进行聚类,得到至少一个聚类簇,各个聚类簇中包括至少一个具备相同亲和性标签的微服务,此外,也可为聚类簇设置亲和性标签,聚类簇的亲和性标签和聚类簇中的微服务的亲和性标签相同。
本申请实施例可基于第一微服务的亲和性标签,从至少一个聚类簇中确定至少一个候选聚类簇,第一微服务的亲和性标签中包含的属性值个数不小于候选聚类簇,基于这种方式所确定的候选聚类簇为第一微服务的同级别或上一级微服务,候选聚类簇能够为第一微服务提供足够的资源。
步骤S303,基于第一微服务的亲和性标签和每个候选聚类簇的亲和性标签,确定第一微服务和每个候选聚类簇之间的亲和性;亲和性表征第一微服务和候选聚类簇之间的适配程度。
本申请实施例在确定各个候选聚类簇后,基于第一微服务的亲和性标签和每个候选聚类簇的亲和性标签,确定第一微服务和每个候选聚类簇之间的亲和性,亲和性表征该第一微服务和候选聚类簇之间的适配程度,亲和性越高,表征第一微服务和候选聚类簇之间的适配程度越高;亲和性越低,表征第一微服务和候选聚类簇之间的适配程度越低。
具体的,对于每个候选聚类簇,可确定该候选聚类簇的亲和性标签和第一微服务的亲和性标签之间的适配程度,可以将该适配程度作为该候选聚类簇和第一微服务之间的亲和性,该适配程度通过亲和性标签中相同属性值个数除以该第一微服务的亲和性标签中属性值个数获得。
具体而言,某第一微服务m的亲和性标签为“中国.湖北.武汉”,候选聚类簇1的亲和性标签为“中国.湖北.武汉”,候选聚类簇2的亲和性标签为“中国.湖北.襄阳”,候选聚类簇3的亲和性标签为“中国.湖南.长沙”,候选聚类簇4的亲和性标签为“中国.北京”,可以确定,第一微服务m和候选聚类簇1的亲和性标签之间的适配程度为100%,即第一微服务m和候选聚类簇1的亲和性为100%;第一微服务m和候选聚类簇2的亲和性标签之间的适配程度为66.67%,即第一微服务m和候选聚类簇2的亲和性为66.67%;第一微服务m和候选聚类簇3的亲和性标签之间的适配程度为33.33%,即第一微服务m和候选聚类簇3的亲和性为33.33%,第一微服务m和候选聚类簇3的亲和性标签之间的适配程度为33.33%,即第一微服务m和候选聚类簇4的亲和性为33.33%。
步骤S304,基于亲和性由高至低的顺序依次遍历各个候选聚类簇,直至从至少一个候选聚类簇中确定第一目标聚类簇;第一目标聚类簇中包括第二微服务,第二微服务的服务类型为目标服务类型。
本申请实施例在确定第一微服务和各个候选聚类簇之间的亲和性后,基于亲和性由高至低的顺序依次遍历各个候选聚类簇,判断各个聚类簇中是否包含目标服务类型的聚类簇,若确定某候选聚类簇中包含目标服务类型的第二微服务,则停止遍历,并将包含目标服务类型的候选聚类簇作为第一目标聚类簇。
具体而言,延续上例,假设目标服务类型为A服务类型,候选聚类簇1中包括的微服务为B服务类型的微服务1和C服务类型的微服务2;候选聚类簇2中包含的微服务为A服务类型的微服务3和C服务类型的微服务4;候选聚类簇3中包含的微服务为A服务类型的微服务5和B服务类型的微服务6;候选聚类簇4中包含的微服务为A服务类型的微服务7和C服务类型的微服务8,在依次遍历各个候选聚类簇时,可以发现候选聚类簇2中的微服务3的服务类型A为目标服务类型,则可以将聚类簇2作为第一目标聚类簇,将微服务3作为第二微服务。
步骤S305,向第一微服务发送第二微服务的地址信息,以使得第一微服务基于第二微服务的地址信息调用第二微服务。
本申请实施例注册中心在确定第二微服务,向第一微服务发送第二微服务的地址信息,以使得第一微服务基于该第二微服务的地址信息调用第二微服务。
本申请实施例为每个微服务设置了亲和性标签,第一微服务在调用目标服务类型的第二微服务时,基于第一微服务的亲和性标签和各个候选聚类簇的亲和性标签,确定该第一微服务和各个候选聚类簇之间的亲和性,并基于亲和性由高至低依次遍历各个候选聚类簇,直至从至少一个候选聚类簇中确定第一目标聚类簇;第一目标聚类簇中包括第二微服务,第二微服务的服务类型为目标服务类型,该第二微服务和第一微服务之间具备较高的亲和性,和该第一微服务的适配性较高,第二微服务可以为第一微服务提供较为可靠的服务,另外,注册中心基于上述分配机制可以避免不同微服务对资源的无序共抢,保证了资源的稳定分配。
本申请实施例中提供了一种可能的实现方式,接收第一微服务发送的分配请求,之前还包括:
接收待注册的微服务发送的注册请求,注册请求包括待注册的微服务的地址信息、服务类型以及各维度属性的属性值;
存储待注册的微服务的地址信息、服务类型以及各维度属性的属性值,确定待注册的微服务已注册;
其中,注册请求为待注册的微服务启动后生成的,注册请求用于上报待注册微服务的地址信息、服务类型以及各维度属性的属性值。
本申请实施例待注册的微服务在启动后,会生成注册请求,并向注册中心发送该注册请求,以上报待注册微服务的地址信息、服务类型以及各维度属性的属性值,注册中心接收到该注册请求后,响应于该注册请求,存储待注册的微服务的地址信息、服务类型以及各维度属性的属性值,确定待注册的微服务已注册,已注册的微服务在后续可以请求注册中心为其分配其他微服务。
本申请实施例中提供了一种可能的实现方式,确定待注册的微服务已注册,之后还包括:
获取预先构建的属性树,属性树的节点表征一个属性值,属性树的一层节点对应同一个维度的属性;
对于每个已注册的微服务,根据已注册的微服务在各维度属性的属性值遍历属性树,在属性树中确定已注册的微服务对应的目标节点,根据目标节点至根节点之间的路径,获得已注册的微服务的亲和性标签;
根据各个已注册的微服务的亲和性标签对已注册的微服务进行聚类,获得至少一个聚类簇。
如图4所示,其示例性示出了本申请实施例所构建的属性树,属性树的节点表征一个属性值,属性树的一层节点对应同一个维度的属性。其中,第一层节点为根节点,根节点为n1,第二层节点有2个,分别为m1、m2、m3,第三层节点为z1、z2、z3、z4、z5、z6以及z7,其中,z1和z2连接于m1,z3和z4连接于m2,z5、z6和z7连接于m3,第四层的节点为p1、p2、p3以及p8,其中p1、p2和p3连接于z1,p8连接于z5,其它层的节点不再一一说明。
对于每个已注册的微服务,可根据该已注册的微服务在各维度属性的属性值遍历属性树,在该属性树中确定该已注册的微服务所对应的节点,比如某微服务x的属性包括n1、m3,那么可以确定该微服务x所对应的目标节点为m3;某微服务y的属性包括n1、m1和z3,那么可以确定该微服务y所对应的目标节点为z3,某微服务e的属性包括n1、m1和z3,那么可以确定该微服务e所对应的目标节点为z3,某微服务d的属性包括n1、z1和m3,那么可以确定该微服务d所对应的目标节点为z1,某微服务f的属性包括n1、m1、p3和z1,那么可以确定该微服务f所对应的目标节点为p3,如图5所示,其示例性示出了各个微服务在属性树中对应的节点的示意图。
延续上例,在确定各个微服务对应的节点后,可确定该节点与根节点之间的路径,根据该路径获得该微服务的亲和性标签,具体的,比如微服务x所对应的目标节点为m3,那么可以确定该目标节点m3与根节点之间的路径为n1-m1;微服务y所对应的目标节点为z3,那么可以确定该目标节点z3与根节点之间的路径为n1-m1-z3;微服务e所对应的目标节点为z3,那么可以确定该目标节点z3与根节点之间的路径为n1-m1-z3;n1、m1和z3;微服务d所对应的目标节点为p3,那么可以确定该目标节点z3与根节点之间的路径为n1-m1-p3-z1。
对于每个微服务,在确定该微服务所对应的节点的路径后,可将该路径中的各个节点所表征的属性值进行组合,得到该微服务的亲和性标签,详细过程见后续内容。
此外,若两个微服务对应一个节点,则确定该微服务属于一个聚类簇,换言之,对于任意一个节点,可将挂载于该节点的各个微服务作为一个聚类簇,例如,上述微服务x属于一个聚类簇,该聚类簇的亲和性标签为“n1.m1”,微服务y和微服务e对应的节点均为节点z3,可确定微服务y和微服务e属于一个聚类簇,该聚类簇的亲和性标签为n1.m1.z3,微服务d属于一个聚类簇,该聚类簇的亲和性标签为n1.m1.p3.z1。
本申请实施例中提供了一种可能的实现方式,根据目标节点至根节点之间的路径,获得已注册的微服务的亲和性标签,包括:
确定路径中所包含的各个节点的顺序,基于路径中所包含的各个节点的顺序,对路径中所包含的各个节点所表征的属性进行组合,将组合结果作为微服务的亲和性标签。
本申请实施例在确定各节点至根节点的路径后,可确定该路径找那个所包含的各个节点的顺序,基于路径中所包含的各个节点的顺序,对路径中所包含的节点的顺序,对路径中所包含的各个节点所表征的属性进行组合,将组合结果作为微服务的亲和性标签。具体而言,延续上例,微服务d所对应的节点为p3,那么可以确定该节点z3与根节点之间的路径为n1-m1-p3-z1。可基于该路径中各个节点的顺序,对各个节点进行组合,得到组合结果“n1.m1.p3.z1”,该组合结果“n1.m1.p3.z1”即为微服务d的亲和性标签,其他微服务的亲和性标签亦可通过该方式获得,在此不再进行一一举例。
本申请实施例中提供了一种可能的实现方式,获得已注册的微服务的亲和性标签,之后还包括:
对于每个已注册的微服务,建立已注册的微服务的地址信息和对应的亲和性标签之间的关联关系;
根据第一微服务的地址信息确定第一微服务的亲和性标签,包括:
将与第一微服务的地址信息存在关联关系的亲和性标签作为第一微服务的亲和性标签。
本申请实施例注册中心对于每个已注册的微服务,会建立该已注册的微服务的地址信息和该已注册的微服务的亲和性标签之间的关联关系,在后续接收到第一微服务的分配请求后,可确定该分配请求中所包含的第一微服务的地址信息,该第一微服务是已注册的微服务,那么可根据已注册的微服务的地址信息和该已注册的微服务的亲和性标签之间的关联关系,确定与第一微服务的地址信息存在关联关系的亲和性标签作为第一微服务的亲和性标签。
本申请实施例中提供了一种可能的实现方式,基于第一微服务的亲和性标签和每个候选聚类簇的亲和性标签,确定第一微服务和每个候选聚类簇之间的亲和性,包括:
对于每个候选聚类簇,确定第一微服务和候选聚类簇的亲和性标签之间相同的属性值,根据相同的属性值的个数确定第一微服务和候选聚类簇的亲和性标签之间的适配程度;
若确定候选聚类簇的亲和性标签和第一目标聚类簇的亲和性标签之间不存在预设隔离,则将第一微服务和候选聚类簇的亲和性标签之间的适配程度,作为第一微服务和候选聚类簇之间的亲和性;存在预设隔离的两个聚类簇中的微服务之间无法相互调用;
若确定候选聚类簇和第一目标聚类簇的亲和性标签之间存在预设隔离,则将预设值作为第一微服务和候选聚类簇之间的亲和性。
本申请实施例根据微服务之间的亲和性标签确定微服务之间的亲和性,也可根据聚类簇之间的亲和性标签确定聚类簇之间的亲和性,也可根据微服务的亲和性标签和聚类簇的亲和性标签,确定微服务和聚类簇之间的亲和性,一个聚类簇中的各个微服务之间的亲和性最高,一个聚类簇中的各个微服务在属性树中挂载于一个节点,呈现出一种“亲兄弟”关系。
本申请实施例在计算各个候选聚类簇和第一微服务之间的亲和性时,对于每个候选聚类簇,可确定该第一微服务和聚类簇的亲和性标签之间的相同的属性值个数,根据相同的属性值的个数确定第一微服务和候选聚类簇的亲和性标签之间的适配程度,具体的,可通过相同属性值的个数除以第一微服务的亲和性标签中的属性值个数,获得第一微服务和候选聚类簇的亲和性标签之间的适配程度。
在一个实施例中,具体而言,某第一微服务m的亲和性标签为“中国.湖北.武汉”,候选聚类簇1的亲和性标签为“中国.湖北.武汉”,候选聚类簇2的亲和性标签为“中国.湖北.襄阳”,候选聚类簇3的亲和性标签为“中国.湖南.长沙”,候选聚类簇4的亲和性标签为“中国.北京”,可以确定,第一微服务m和候选聚类簇1的亲和性标签之间的适配程度为100%,即第一微服务m和候选聚类簇1的亲和性为100%;第一微服务m和候选聚类簇2的亲和性标签之间的适配程度为66.67%,即第一微服务m和候选聚类簇2的亲和性为66.67%;第一微服务m和候选聚类簇3的亲和性标签之间的适配程度为33.33%,即第一微服务m和候选聚类簇3的亲和性为33.33%,第一微服务m和候选聚类簇3的亲和性标签之间的适配程度为33.33%,即第一微服务m和候选聚类簇4的亲和性为33.33%。
通常情况下,可直接第一微服务和候选聚类簇的亲和性标签之间的适配程度作为二者之间的亲和性,然而,在实际中,用户群体可能会根据实际需求在聚类簇之间设置预设隔离,存在预设隔离的两个聚类簇中的微服务之间无法相互调用。因此,若确定候选聚类簇的亲和性标签和第一目标聚类簇的亲和性标签之间不存在预设隔离,则将第一微服务和候选聚类簇的亲和性标签之间的适配程度,作为第一微服务和候选聚类簇之间的亲和性。
如图6所示,其示例性示出了在一场景中进行微服务的分配的示意图,包括用户群体、网关以及至少一个微服务,其中,S1服务类型的微服务包括微服务S1-1和S1-2,S2服务类型的微服务包括S2-1和S2-2,S3服务类型的微服务包括S3-1和S3-2,其中,S1-1、S2-1和S3-1属于区域1,S1-1和S2-1之间的亲和性高于与S2-2之间的亲和性,在S1-1需要调用S2服务类型的微服务时,会先调用部署于区域1的S2-1,在S2-1不可调用时,才会调用部署于区域2的S2-2(图中S1-1至S2-2之间的虚线);同样的,在S1-1需要调用S3服务类型的微服务时,会先调用部署于区域1的S3-1,在S3-1不可调用时,才会调用部署于区域2的S3-2(图中S1-1至S3-2之间的虚线)。
若确定候选聚类簇和第一目标聚类簇的亲和性标签之间存在预设隔离,则将预设值作为第一微服务和候选聚类簇之间的亲和性,该预设值可以为0。在实际应用中,可根据需要在亲和性标签之间设置隔离,实现在微服务之间设置隔离,实现更加灵活的进行微服务分配。
具体而言,如图7所示,其示例性示出了在两个聚类簇的亲和性标签之间存在预设隔离时,进行微服务分配的示意图,包括用户群体1、用户群体2、网关1、网关2以及至少一个微服务,其中,至少一个微服务包括S1服务类型的微服务、S2服务类型的微服务、S3服务类型的微服务,其中,S1服务类型的微服务包括微服务S1-1和S1-2,S2服务类型的微服务包括S2-1、S2-2和S2-3,S3服务类型的微服务包括S3-1、S3-2和S3-3。用户群体1位于区域1,区域1中包括S1-1、S2-1和S3-1,用户群体2位于区域2,为了给用户群体2提供更可靠的S2服务和S3服务,将S2-2和S2-3和S3-2和S3-3均部署于区域2。
假设区域1中的微服务具备相同的亲和性标签,即区域1中的微服务对应一个聚类簇,区域2中的微服务具备相同的亲和性标签,即区域2中的微服务对应一个聚类簇,为了实现两个用户群体的服务提供一定的隔离性,可在区域1对应的聚类簇和区域2对应的聚类簇的亲和性标签之间设置预设隔离,从而实现用户群体的请求路由的优化和隔离。区域1中的S1-1在需要调用S2服务类型的微服务时,可以调用S2-1,无法调用S2-2和S2-3;区域1中的S1-1在需要调用S3服务类型的微服务时,可以调用S3-1,无法调用S3-2和S3-3;
区域2中的S1-2在需要S2服务类型的微服务时,可以调用S2-2或S2-3,无法调用S2-1;区域2中的S1-2在需要S3服务类型的微服务时,可以调用S3-2或S3-3,无法调用S3-1。
本申请实施例可根据需要在亲和性标签之间设置隔离,实现在微服务之间设置隔离,实现更加灵活的进行微服务分配。在实际中,若需要为特殊用户群体提供优先服务时,可同样为用户群体设置亲和性标签,使得该用户群体独享与之亲和性标签相同的微服务。
本申请实施例中提供了一种可能的实现方式,向第一微服务发送第二微服务的地址信息,之后还包括:
接收第一微服务发送的重分配请求;重分配请求为第一微服务在确定第二微服务不可用后生成的,重分配请求用于指示第二微服务不可用,请求重新分配一个目标服务类型的微服务;
若确定第一目标聚类簇中存在第三微服务,则向第一微服务发送第三微服务的地址信息,第三微服务的服务类型为目标服务类型,且第三微服务和第二微服务的地址信息不同。
本申请实施例在第一微服务在确定当前调用的第二微服务不可用后,生成重分配请求,并向注册中心发送重分配请求,该重分配请求用于指示第二微服务不可用,并请求重新分配一个目标服务类型的微服务。
注册中心在接收到该重新分配请求后,优先遍历该第二微服务所在的第一目标聚类簇,这是因为第一目标聚类簇和该第一微服务的亲和性最高,若该第一目标聚类簇中存在一个第三微服务,则向第一微服务发送第三微服务的地址信息,以使得第一微服务调用第三微服务。
本申请实施例中提供了一种可能的实现方式,接收第一微服务发送的重分配请求,之后还包括:
若确定第一目标聚类簇中不存在第三微服务,则从至少一个候选聚类簇中确定备选聚类簇;备选聚类簇与第一微服务之间的亲和性低于第一目标聚类簇与第一微服务之间的亲和性;
基于亲和性由高至低依次遍历各个备选聚类簇,直至从各个备选聚类簇中确定第二目标聚类簇;第二目标聚类簇中包括第四微服务,第四微服务的服务类型为目标服务类型,向第一微服务发送第四微服务的地址信息。
若确定第一目标聚类簇中不存在第三微服务,则会从至少一个候选聚类簇中确定备选聚类簇,备选聚类簇与第一微服务之间的亲和性低于第一目标聚类簇与第一微服务之间的亲和性,并基于亲和性由高至低依次遍历各个备选聚类簇,直至从各个备选聚类簇中确定第二目标聚类簇;第二目标聚类簇中包括第四微服务,第四微服务的服务类型为目标服务类型,向第一微服务发送第四微服务的地址信息,实现降级选择与第一微服务亲和性最高的第四微服务。
具体而言,如图8所示,其示例性示出了在一场景中进行微服务重分配的示意图,包括用户群体1、用户群体2、网关1、网关2以及至少一个微服务,其中,至少一个微服务包括S1服务类型的微服务、S2服务类型的微服务、S3服务类型的微服务,其中,S1服务类型的微服务包括微服务S1-1和S1-2,S2服务类型的微服务包括S2-1、S2-2和S2-3,S3服务类型的微服务包括S3-1、S3-2和S3-3。假设S2-2和S2-3具有相同的亲和性标签,S3-2和S3-3具有相同的亲和性标签,其中,S1-1与S2-1的亲和性高于与S2-2或S2-3的亲和性,S1-2与S2-2或S2-3的亲和性高于与S2-1的亲和性;S1-1与S3-1的亲和性高于与S3-2或S3-3的亲和性,S1-2与S3-2或S3-3的亲和性高于与S3-1的亲和性;当S1-2正在S2服务类型的S2-2,在S2-2不可用时,会优先调用S2-3,在S2-2和S2-3均不可用时,才会选择调用S2-1。同样的,当S1-2正在S3服务类型的S3-2,在S3-2不可用时,会优先调用S3-3,在S3-2和S3-3均不可用时,才会选择调用S3-1。
本申请实施例提供了一种微服务的分配装置,应用于微服务的注册中心,所述注册中心包括至少一个微服务的地址信息和亲和性标签;所述亲和性标签是基于微服务在各维度属性的属性值生成的;如图9所示,该微服务的分配装置90可以包括:
分配请求接收模块910,用于接收第一微服务发送的分配请求,分配请求用于指示为第一微服务分配目标服务类型的微服务,分配请求中包括第一微服务的地址信息,根据第一微服务的地址信息确定第一微服务的亲和性标签;
候选聚类簇确定模块920,用于根据第一微服务的亲和性标签从至少一个聚类簇中确定至少一个候选聚类簇;每个聚类簇中包括至少一个具备相同的亲和性标签的微服务;每个聚类簇的亲和性标签和聚类簇中的微服务的亲和性标签相同;第一微服务的亲和性标签中所包含的属性值个数不小于候选聚类簇的亲和性标签中的属性值个数;
亲和性确定模块930,用于基于第一微服务的亲和性标签和每个候选聚类簇的亲和性标签,确定第一微服务和每个候选聚类簇之间的亲和性;亲和性表征第一微服务和候选聚类簇之间的适配程度;
第一目标聚类簇确定模块940,用于基于亲和性由高至低的顺序依次遍历各个候选聚类簇,直至从至少一个候选聚类簇中确定第一目标聚类簇;第一目标聚类簇中包括第二微服务,第二微服务的服务类型为目标服务类型;
地址信息发送模块950,用于向第一微服务发送第二微服务的地址信息,以使得第一微服务基于第二微服务的地址信息调用第二微服务。
本申请实施例中提供了一种可能的实现方式,该装置还包括:
注册模块,用于接收待注册的微服务发送的注册请求,注册请求包括待注册的微服务的地址信息、服务类型以及各维度属性的属性值;存储待注册的微服务的地址信息、服务类型以及各维度属性的属性值,确定待注册的微服务已注册;
其中,注册请求为待注册的微服务启动后生成的,注册请求用于上报待注册微服务的地址信息、服务类型以及各维度属性的属性值。
本申请实施例中提供了一种可能的实现方式,该装置还包括:
属性树构建模块,用于获取预先构建的属性树,属性树的节点表征一个属性值,属性树的一层节点对应同一个维度的属性;
亲和性标签获得模块,用于对于每个已注册的微服务,根据已注册的微服务在各维度属性的属性值遍历属性树,在属性树中确定已注册的微服务对应的目标节点,根据目标节点至根节点之间的路径,获得已注册的微服务的亲和性标签;
聚类模块,用于根据各个已注册的微服务的亲和性标签对已注册的微服务进行聚类,获得至少一个聚类簇。
本申请实施例中提供了一种可能的实现方式,亲和性标签获得模块具体用于确定路径中所包含的各个节点的顺序,基于路径中所包含的各个节点的顺序,对路径中所包含的各个节点所表征的属性进行组合,将组合结果作为微服务的亲和性标签。
本申请实施例中提供了一种可能的实现方式,该装置还包括:
关联关系建立模块,用于对于每个已注册的微服务,建立已注册的微服务的地址信息和对应的亲和性标签之间的关联关系;
分配请求接收模块中包括:
亲和性标签确定子模块,用于将与第一微服务的地址信息存在关联关系的亲和性标签作为第一微服务的亲和性标签。
本申请实施例中提供了一种可能的实现方式,亲和性确定模块包括:
适配程度确定子模块,用于对于每个候选聚类簇,确定第一微服务和候选聚类簇的亲和性标签之间相同的属性值的个数,根据相同的属性值的个数确定第一微服务和候选聚类簇的亲和性标签之间的适配程度;
亲和性确定子模块,用于若确定候选聚类簇的亲和性标签和第一目标聚类簇的亲和性标签之间不存在预设隔离,则将第一微服务和候选聚类簇的亲和性标签之间的适配程度,作为第一微服务和候选聚类簇之间的亲和性;存在预设隔离的两个聚类簇中的微服务之间无法相互调用;若确定候选聚类簇和第一目标聚类簇的亲和性标签之间存在预设隔离,则将预设值作为第一微服务和候选聚类簇之间的亲和性。
本申请实施例中提供了一种可能的实现方式,该装置还包括:
重分配请求接收模块,用于接收第一微服务发送的重分配请求;重分配请求为第一微服务在确定第二微服务不可用后生成的,重分配请求用于指示第二微服务不可用,请求重新分配一个目标服务类型的微服务;
重分配模块,用于若确定第一目标聚类簇中存在第三微服务,则向第一微服务发送第三微服务的地址信息,第三微服务的服务类型为目标服务类型,且第三微服务和第二微服务的地址信息不同。
本申请实施例中提供了一种可能的实现方式,重分配模块还用于:若确定第一目标聚类簇中不存在第三微服务,则从至少一个候选聚类簇中确定备选聚类簇;备选聚类簇与第一微服务之间的亲和性低于第一目标聚类簇与第一微服务之间的亲和性;基于亲和性由高至低依次遍历各个备选聚类簇,直至从各个备选聚类簇中确定第二目标聚类簇;第二目标聚类簇中包括第四微服务,第四微服务的服务类型为目标服务类型,向第一微服务发送第四微服务的地址信息。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现微服务的分配方法的步骤,与相关技术相比可实现本申请实施例为每个微服务设置了亲和性标签,第一微服务在调用目标服务类型的第二微服务时,基于第一微服务的亲和性标签和各个候选聚类簇的亲和性标签,确定该第一微服务和各个候选聚类簇之间的亲和性,并基于亲和性由高至低依次遍历各个候选聚类簇,直至从至少一个候选聚类簇中确定第一目标聚类簇;第一目标聚类簇中包括第二微服务,第二微服务的服务类型为目标服务类型,该第二微服务和第一微服务之间具备较高的亲和性,和该第一微服务的适配性较高。
在一个可选实施例中提供了一种电子设备,如图10所示,图10所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器4003用于存储执行本申请实施例的计算机程序,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的计算机程序,以实现前述方法实施例所示的步骤。
其中,电子设备包可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图10所示的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。与现有技术相比可实现:本申请实施例为每个微服务设置了亲和性标签,第一微服务在调用目标服务类型的第二微服务时,基于第一微服务的亲和性标签和各个候选聚类簇的亲和性标签,确定该第一微服务和各个候选聚类簇之间的亲和性,并基于亲和性由高至低依次遍历各个候选聚类簇,直至从至少一个候选聚类簇中确定第一目标聚类簇;第一目标聚类簇中包括第二微服务,第二微服务的服务类型为目标服务类型,该第二微服务和第一微服务之间具备较高的亲和性,和该第一微服务的适配性较高。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。与现有技术相比可实现:本申请实施例为每个微服务设置了亲和性标签,第一微服务在调用目标服务类型的第二微服务时,基于第一微服务的亲和性标签和各个候选聚类簇的亲和性标签,确定该第一微服务和各个候选聚类簇之间的亲和性,并基于亲和性由高至低依次遍历各个候选聚类簇,直至从至少一个候选聚类簇中确定第一目标聚类簇;第一目标聚类簇中包括第二微服务,第二微服务的服务类型为目标服务类型,该第二微服务和第一微服务之间具备较高的亲和性,和该第一微服务的适配性较高。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。

Claims (11)

1.一种微服务的分配方法,其特征在于,应用于微服务的注册中心,所述注册中心包括至少一个微服务的地址信息和亲和性标签;所述亲和性标签是基于微服务在各维度属性的属性值生成的;所述方法包括:
接收第一微服务发送的分配请求,所述分配请求用于指示为所述第一微服务分配目标服务类型的微服务,所述分配请求中包括所述第一微服务的地址信息,根据所述第一微服务的地址信息确定所述第一微服务的亲和性标签;
根据所述第一微服务的亲和性标签从至少一个聚类簇中确定至少一个候选聚类簇;每个聚类簇中包括至少一个具备相同的亲和性标签的微服务;每个聚类簇的亲和性标签和所述聚类簇中的微服务的亲和性标签相同;所述第一微服务的亲和性标签中所包含的属性值个数不小于所述候选聚类簇的亲和性标签中的属性值个数;
基于所述第一微服务的亲和性标签和每个候选聚类簇的亲和性标签,确定所述第一微服务和每个候选聚类簇之间的亲和性;所述亲和性表征所述第一微服务和所述候选聚类簇之间的适配程度;
基于亲和性由高至低的顺序依次遍历各个候选聚类簇,直至从所述至少一个候选聚类簇中确定第一目标聚类簇;所述第一目标聚类簇中包括第二微服务,所述第二微服务的服务类型为目标服务类型;
向所述第一微服务发送所述第二微服务的地址信息,以使得所述第一微服务基于所述第二微服务的地址信息调用所述第二微服务。
2.根据权利要求1所述的方法,其特征在于,所述接收第一微服务发送的分配请求,之前还包括:
接收待注册的微服务发送的注册请求,所述注册请求包括所述待注册的微服务的地址信息、服务类型以及各维度属性的属性值;
存储所述待注册的微服务的地址信息、服务类型以及各维度属性的属性值,确定所述待注册的微服务已注册;
其中,所述注册请求为所述待注册的微服务启动后生成的,所述注册请求用于上报所述待注册微服务的地址信息、服务类型以及各维度属性的属性值。
3.根据权利要求2所述的方法,其特征在于,所述确定所述待注册的微服务已注册,之后还包括:
获取预先构建的属性树,所述属性树的节点表征一个属性值,所述属性树的一层节点对应同一个维度的属性;
对于每个已注册的微服务,根据所述已注册的微服务在各维度属性的属性值遍历所述属性树,在所述属性树中确定所述已注册的微服务对应的目标节点,根据所述目标节点至根节点之间的路径,获得所述已注册的微服务的亲和性标签;
根据各个已注册的微服务的亲和性标签对已注册的微服务进行聚类,获得至少一个聚类簇。
4.根据权利要求3所述的方法,其特征在于,所述根据所述目标节点至根节点之间的路径,获得所述已注册的微服务的亲和性标签,包括:
确定所述路径中所包含的各个节点的顺序,基于所述路径中所包含的各个节点的顺序,对所述路径中所包含的各个节点所表征的属性进行组合,将组合结果作为所述微服务的亲和性标签。
5.根据权利要求3所述的方法,其特征在于,获得所述已注册的微服务的亲和性标签,之后还包括:
对于每个已注册的微服务,建立所述已注册的微服务的地址信息和对应的亲和性标签之间的关联关系;
所述根据所述第一微服务的地址信息确定所述第一微服务的亲和性标签,包括:
将与所述第一微服务的地址信息存在所述关联关系的亲和性标签作为所述第一微服务的亲和性标签。
6.根据权利要求2所述的方法,其特征在于,所述基于所述第一微服务的亲和性标签和每个候选聚类簇的亲和性标签,确定所述第一微服务和每个候选聚类簇之间的亲和性,包括:
对于每个候选聚类簇,确定所述第一微服务和所述候选聚类簇的亲和性标签之间相同的属性值的个数,根据所述相同的属性值的个数确定所述第一微服务和所述候选聚类簇的亲和性标签之间的适配程度;
若确定所述候选聚类簇的亲和性标签和所述第一目标聚类簇的亲和性标签之间不存在预设隔离,则将所述第一微服务和所述候选聚类簇的亲和性标签之间的适配程度,作为所述第一微服务和所述候选聚类簇之间的亲和性;存在预设隔离的两个聚类簇中的微服务之间无法相互调用;
若确定所述候选聚类簇和所述第一目标聚类簇的亲和性标签之间存在预设隔离,则将预设值作为所述第一微服务和所述候选聚类簇之间的亲和性。
7.根据权利要求1所述的方法,其特征在于,所述向所述第一微服务发送所述第二微服务的地址信息,之后还包括:
接收所述第一微服务发送的重分配请求;所述重分配请求为所述第一微服务在确定所述第二微服务不可用后生成的,所述重分配请求用于指示所述第二微服务不可用,请求重新分配一个目标服务类型的微服务;
若确定所述第一目标聚类簇中存在第三微服务,则向所述第一微服务发送所述第三微服务的地址信息,所述第三微服务的服务类型为所述目标服务类型,且所述第三微服务和所述第二微服务的地址信息不同。
8.根据权利要求7所述的方法,其特征在于,所述接收所述第一微服务发送的重分配请求,之后还包括:
若确定所述第一目标聚类簇中不存在所述第三微服务,则从所述至少一个候选聚类簇中确定备选聚类簇;所述备选聚类簇与所述第一微服务之间的亲和性低于所述第一目标聚类簇与所述第一微服务之间的亲和性;
基于亲和性由高至低依次遍历各个备选聚类簇,直至从各个备选聚类簇中确定第二目标聚类簇;所述第二目标聚类簇中包括第四微服务,所述第四微服务的服务类型为目标服务类型,向所述第一微服务发送所述第四微服务的地址信息。
9.一种微服务的分配装置,其特征在于,应用于微服务的注册中心,所述注册中心包括至少一个微服务的地址信息和亲和性标签;所述亲和性标签是基于微服务在各维度属性的属性值生成的;所述装置包括:
分配请求接收模块,用于接收第一微服务发送的分配请求,所述分配请求用于指示为所述第一微服务分配目标服务类型的微服务,所述分配请求中包括所述第一微服务的地址信息,根据所述第一微服务的地址信息确定所述第一微服务的亲和性标签;
候选聚类簇确定模块,用于根据所述第一微服务的亲和性标签从至少一个聚类簇中确定至少一个候选聚类簇;每个聚类簇中包括至少一个具备相同的亲和性标签的微服务;每个聚类簇的亲和性标签和所述聚类簇中的微服务的亲和性标签相同;所述第一微服务的亲和性标签中所包含的属性值个数不小于所述候选聚类簇的亲和性标签中的属性值个数;
亲和性确定模块,用于基于所述第一微服务的亲和性标签和每个候选聚类簇的亲和性标签,确定所述第一微服务和每个候选聚类簇之间的亲和性;所述亲和性表征所述第一微服务和所述候选聚类簇之间的适配程度;
第一目标聚类簇确定模块,用于基于亲和性由高至低的顺序依次遍历各个候选聚类簇,直至从所述至少一个候选聚类簇中确定第一目标聚类簇;所述第一目标聚类簇中包括第二微服务,所述第二微服务的服务类型为目标服务类型;
地址信息发送模块,用于向所述第一微服务发送所述第二微服务的地址信息,以使得所述第一微服务基于所述第二微服务的地址信息调用所述第二微服务。
10.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-8任一项所述方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-8任一项所述方法的步骤。
CN202310758644.6A 2023-06-26 2023-06-26 微服务的分配方法、装置、电子设备及可读存储介质 Active CN116501383B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310758644.6A CN116501383B (zh) 2023-06-26 2023-06-26 微服务的分配方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310758644.6A CN116501383B (zh) 2023-06-26 2023-06-26 微服务的分配方法、装置、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN116501383A CN116501383A (zh) 2023-07-28
CN116501383B true CN116501383B (zh) 2023-08-22

Family

ID=87316941

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310758644.6A Active CN116501383B (zh) 2023-06-26 2023-06-26 微服务的分配方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN116501383B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113204465A (zh) * 2021-04-30 2021-08-03 浙江大学 一种基于执行跟踪的微服务提取方法
KR20220029011A (ko) * 2020-09-01 2022-03-08 삼성에스디에스 주식회사 마이크로 서비스 식별 장치 및 방법
CN114417000A (zh) * 2022-03-01 2022-04-29 北京天融信网络安全技术有限公司 微服务划分方法、装置、设备及存储介质
CN115061663A (zh) * 2022-06-17 2022-09-16 中国兵器工业信息中心 基于客户需求的微服务划分方法、装置、电子设备及介质
CN115509628A (zh) * 2021-06-21 2022-12-23 中国移动通信集团重庆有限公司 微服务调用方法、装置、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11836538B2 (en) * 2021-10-11 2023-12-05 International Business Machines Corporation Heterogeneous graph generation for application microservices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220029011A (ko) * 2020-09-01 2022-03-08 삼성에스디에스 주식회사 마이크로 서비스 식별 장치 및 방법
CN113204465A (zh) * 2021-04-30 2021-08-03 浙江大学 一种基于执行跟踪的微服务提取方法
CN115509628A (zh) * 2021-06-21 2022-12-23 中国移动通信集团重庆有限公司 微服务调用方法、装置、设备及存储介质
CN114417000A (zh) * 2022-03-01 2022-04-29 北京天融信网络安全技术有限公司 微服务划分方法、装置、设备及存储介质
CN115061663A (zh) * 2022-06-17 2022-09-16 中国兵器工业信息中心 基于客户需求的微服务划分方法、装置、电子设备及介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
柔性微服务监控框架;刘一田;刘士进;郭伟;何翔;;计算机系统应用(10);全文 *

Also Published As

Publication number Publication date
CN116501383A (zh) 2023-07-28

Similar Documents

Publication Publication Date Title
US11159411B2 (en) Distributed testing service
CN115328663B (zh) 基于PaaS平台进行资源调度的方法、装置、设备和存储介质
US9749445B2 (en) System and method for updating service information for across-domain messaging in a transactional middleware machine environment
CN110311983B (zh) 服务请求的处理方法、装置、系统、电子设备及存储介质
US20130080509A1 (en) Cloud computing access gateway and method for providing a user terminal access to a cloud provider
CN106131213A (zh) 一种服务管理方法和系统
US20110166952A1 (en) Facilitating dynamic construction of clouds
EP2670114A1 (en) System and Methods for Communicating in a Telecommunication Network via Independent Key Routing and Proxies
CN112714164A (zh) 一种物联网系统及其任务调度方法
CN109639598A (zh) 基于微服务的请求处理方法、服务器、存储介质及装置
US8832215B2 (en) Load-balancing in replication engine of directory server
CN114172966A (zh) 单元化架构下的服务调用方法、服务处理方法及装置
CN113553178A (zh) 任务处理方法、装置和电子设备
CN114036031B (zh) 一种企业数字中台中资源服务应用的调度系统和方法
EP2670112A1 (en) System and Method for Communicating in a Telecommunication Network via Common Key Routing and Proxies
CN112105026B (zh) 一种授权控制的方法、装置以及存储介质
CN111475230B (zh) 应用的功能配置方法、装置和电子设备
US11115914B2 (en) Endpoint computing device multi-network slice utilization system
CN116501383B (zh) 微服务的分配方法、装置、电子设备及可读存储介质
CN112152879A (zh) 网络质量确定方法、装置、电子设备和可读存储介质
US9628401B2 (en) Software product instance placement
CN115480934A (zh) 一种分布式数据处理的方法、装置、设备及储存介质
CN113296911B (zh) 集群调用方法、集群调用装置、电子设备及可读存储介质
US10200301B1 (en) Logical control groups for distributed system resources
CN112181605A (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