微服务划分方法、装置、设备及存储介质与流程

文档序号:29869415发布日期:2022-04-30 17:32阅读:95来源:国知局
微服务划分方法、装置、设备及存储介质与流程

1.本技术涉及计算机技术领域,具体而言,涉及一种微服务划分方法、装置、设备及存储介质。


背景技术:

2.目前,微服务的划分依赖人工来划分,这方式存在沟通成本大、划分效率低的缺陷。


技术实现要素:

3.本技术实施例的目的在于提供一种微服务划分方法、装置、设备及存储介质,用以提高微服务的划分效率。
4.为此,本技术第一方面公开一种微服务划分方法,所述方法包括:
5.获取针对单体应用的命令;
6.将所述单体应用的命令转换为词向量,并得包括所述单体应用的词向量的向量集合d;
7.对所述向量集合d进行无监督聚类,以基于聚类结果对所述单体应用的命令进行分组;
8.基于davies-boulding指数公式计算各个k值下的聚类评估值,并基于聚类评估值最小的k值确定所述单体应用的划分结果。
9.在本技术第一方面中,作为一种可选的实施方式,所述对所述向量集合d进行无监督聚类,以基于聚类结果对所述单体应用的命令进行分组,包括:
10.基于k-means算法对所述向量集合d进行无监督聚类,以基于聚类结果对所述单体应用的命令进行分组。
11.在本技术第一方面中,作为一种可选的实施方式所述基于k-means算法对所述向量集合d进行无监督聚类,以基于聚类结果对所述单体应用的命令进行分组,包括:
12.建立k个候选分类簇;
13.基于所述向量集合d确定k个数据点并分别作为k个所述候选分类簇的第一:质心;
14.计算所述向量集合d中的每一个词向量与每一个所述第一质心的欧式距离;
15.确定将所述向量集合d中的词向量的最小欧式距离对应的所述第一质心;
16.将所最小欧式距离对应的所述第一质心所属的候选分类簇作为所述单体应用的微服务划分结果。
17.在本技术第一方面中,作为一种可选的实施方式,所述将所最小欧式距离对应的所述第一质心所属的候选分类簇作为所述单体应用的微服务划分结果之后,所述方法还包括:
18.基于所述单体应用的微服务划分结果,计算所述候选分类簇的第二质心;
19.计算所述第二质心与所述第一质心的差值;
20.若所述差值小于预设质心阈值,则确定所述单体应用划分完成,若所述差值大于等于所述预设质心阈值,则基于k-means算法对所述向量集合d进行迭代无监督聚类。
21.在本技术第一方面中,作为一种可选的实施方式,所述建立k个候选分类簇,包括:
22.获取服务器能够接纳的微服务数量上限;
23.根据所述微服务数量上限建立k个所述候选分类簇,其中,k等于所述微服务数量上限。
24.在本技术第一方面中,作为一种可选的实施方式,所述单体应用的命令包括商城系统中已下单命令、取消订单命令、支付命令、发货命令、退货命令。
25.在本技术第一方面中,作为一种可选的实施方式,所述将所述单体应用的命令转换为词向量,包括:
26.基于word2vector模型将所述单体应用的命令转换为词向量。
27.本技术第二方面公开一种微服务划分装置,所述装置包括:
28.获取模块,用于获取针对单体应用的命令;
29.向量转换模块,用于将所述单体应用的命令转换为词向量,并得包括所述单体应用的词向量的向量集合d;
30.聚类模块,用于对所述向量集合d进行无监督聚类,以基于聚类结果对所述单体应用的命令进行分组;
31.评估模块,用于基于davies-boulding指数公式计算各个k值下的聚类评估值,并基于聚类评估值最小的k值确定所述单体应用的划分结果。
32.本技术第三方面公开一种微服务划分设备,所述设备包括:
33.与存储有可执行程序代码的存储器耦合的处理器;
34.所述处理器调用所述存储器中存储的所述可执行程序代码,执行如本技术第一方面的微服务划分方法。
35.本技术第四方面公开一种存储介质,所述存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本技术第一方面的微服务划分方法。
36.本技术的有益效果为:本技术能够获取针对单体应用的命令和能够将单体应用的命令转换为词向量,并得包括单体应用的词向量的向量集合d,同时,通过对向量集合d进行无监督聚类,能够基于聚类结果对单体应用的命令进行分组,基于davies-boulding指数公式计算各个k值下的聚类评估值,并基于聚类评估值最小的k值确定单体应用的划分结果。与现有技术相比,本技术能够自动对单体应用进行划分,从而能够克服人工划分存在的划分效率低、耗时的缺点。
附图说明
37.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
38.图1为本技术实施例提供的一种微服务划分方法的流程示意图;
39.图2为本技术实施例提供的一种微服务划分装置的结构示意图;
40.图3为本技术实施例提供的一种微服务划分设备的结构示意图。
具体实施方式
41.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
42.实施例一
43.请参阅图1,图1是本技术实施例公开的一种微服务划分方法的流程示意图。如图1所示,本技术实施例的方法包括以下步骤:
44.101、获取针对单体应用的命令;
45.102、将单体应用的命令转换为词向量,并得包括单体应用的词向量的向量集合d;
46.103、对向量集合d进行无监督聚类,以基于聚类结果对单体应用的命令进行分组;
47.104、基于davies-boulding指数公式计算各个k值下的聚类评估值,并基于聚类评估值最小的k值确定单体应用的划分结果。
48.在申请实施例中,单体应用指的是微服务,例如,单体应用为电子商城系统,其中,电子商城系统可为用户提供商品购买服务。
49.在本技术实施例中,单体应用的命令指的是单体应用的工作过程中所采用的命令,例如,对于电子商城系统,单体应用的命令可以是支付命令、取消订单命令等,其中,根据单体应用的命令能够按照该单体应用能够实现的功能对单体应用进行划分,例如,由于电子商城系统具有支付功能,进而能够将电子商城系统划分为支付类微服务。
50.在本技术实施例中,单体应用的命令同时包括多个命令,例如,在一些场景中,单体应用命令同时包括取消订单命令、支付命令。
51.在本技术实施例中,单体应用的命令的获取的具体过程可以为:
52.响应操作人员的输入指令,解析输入指令并得到单体应用的命令,其中,操作人员基于ddd(领域驱动设计)进而事件风暴,从而得到携带单体应用的命令的输入指令。
53.在本技术实施例中,向量集合d包括多个单体应用的词向量,例如,向量集合d包括单体应用a的词向量、单体应用b的词向量。
54.在本技术实施例中,关于于davies-boulding指数公式,请参阅现有技术,本技术实施例对此不作赘述。
55.本技术实施例通过获取针对单体应用的命令,能够将单体应用的命令转换为词向量,并得包括单体应用的词向量的向量集合d,同时,通过对向量集合d进行无监督聚类,能够基于聚类结果对单体应用的命令进行分组,基于davies-boulding指数公式计算各个k值下的聚类评估值,并基于聚类评估值最小的k值确定单体应用的划分结果。与现有技术相比,本技术能够自动对单体应用进行划分,从而能够克服人工划分存在的划分效率低、耗时的缺点。
56.在本技术实施例中,davies-boulding指数公式是一种聚类算法评价指标算法,即davies-boulding指数公式能够计算类内距离之和与类间距离之比,且可以优化k值的选择。进一步地,本技术实施例采用davies-boulding指数公式计算各个k值下的聚类评估值,能够避免k-means算法中由于只计算目标函数而导致局部最优的情况。
57.在本技术实施例中,作为一种可选的实施方式,步骤102:对向量集合d进行无监督聚类,以基于聚类结果对单体应用的命令进行分组,包括以下子步骤:
58.基于k-means算法对向量集合d进行无监督聚类,以基于聚类结果对单体应用的命令进行分组。
59.在本可选的实施方式中,通过k-means算法能够对向量集合d进行无监督聚类,以基于聚类结果对单体应用的命令进行分组。另一方面,采用k-means算法对向量集合d进行无监督聚类过程中,k-means算法能根据较少的已知聚类样本的类别对向量集合d进行无监督聚类,其次,采用k-means算法能够降低总的聚类时间与复杂度,具体地,k-means算法能够对向量集合d对应的部分小样本进行聚类,进而可以降低总的聚类时间和聚类复杂度。
60.在本技术实施例中,作为一种可选的实施方式,基于k-means算法对向量集合d进行无监督聚类,以基于聚类结果对单体应用的命令进行分组,包括:
61.建立k个候选分类簇;
62.基于向量集合d确定k个数据点并分别作为k个候选分类簇的第一质心;
63.计算向量集合d中的每一个词向量与每一个第一质心的欧式距离;
64.确定将向量集合d中的词向量的最小欧式距离对应的第一质心;
65.将所最小欧式距离对应的第一质心所属的候选分类簇作为单体应用的微服务划分结果。
66.在本可选的实施方式中,具体地,通过随机在向量集合d中选择k个向量,进而可确定k个数据点并分别作为k个候选分类簇的第一质心;
67.计算向量集合d中的每一个词向量与每一个第一质心的欧式距离;
68.确定将向量集合d中的词向量的最小欧式距离对应的第一质心;
69.将所最小欧式距离对应的第一质心所属的候选分类簇作为单体应用的微服务划分结果。
70.在本技术实施例中,作为一种可选的实施方式,将所最小欧式距离对应的第一质心所属的候选分类簇作为单体应用的微服务划分结果之后,本技术实施例的方法还包括以下子步骤:
71.基于单体应用的微服务划分结果,计算候选分类簇的第二质心;
72.计算第二质心与第一质心的差值;
73.若差值小于预设质心阈值,则确定单体应用划分完成,若差值大于等于预设质心阈值,则基于k-means算法对向量集合d进行迭代无监督聚类。
74.在本技术实施例中,当差值小于预设质心阈值时,基于步骤101、102、103、104进行迭代无监督聚类训练。
75.在本技术实施例中,作为一种可选的实施方式,步骤:建立k个候选分类簇,包括以下子步骤:
76.获取服务器能够接纳的微服务数量上限;
77.根据微服务数量上限建立k个候选分类簇,其中,k等于微服务数量上限。
78.在本技术实施例中,作为一种可选的实施方式,单体应用的命令包括商城系统中已下单命令、取消订单命令、支付命令、发货命令、退货命令。
79.在本技术实施例中,作为一种可选的实施方式,步骤:基于word2vector模型将单体应用的命令转换为词向量,包括以下子步骤:
80.基于word2vector模型将单体应用的命令转换为词向量。
81.实施例二
82.请参阅图2,图2是本技术实施例公开的一种微服务划分装置的结构示意图。如图2所示,本技术实施例的装置包括以下功能模块:
83.获取模块201,用于获取针对单体应用的命令;
84.向量转换模块202,用于基于word2vector模型将单体应用的命令转换为词向量,并得包括单体应用的词向量的向量集合d;
85.聚类模块203,用于对向量集合d进行无监督聚类,以基于聚类结果对单体应用的命令进行分组;
86.评估模块204,用于基于davies-boulding指数公式计算各个k值下的聚类评估值,并基于聚类评估值最小的k值确定单体应用的划分结果。
87.本技术实施例的装置通过执行微服务划分方法,进而能够获取针对单体应用的命令和能够将单体应用的命令转换为词向量,并得包括单体应用的词向量的向量集合d,同时,通过对向量集合d进行无监督聚类,能够基于聚类结果对单体应用的命令进行分组,基于davies-boulding指数公式计算各个k值下的聚类评估值,并基于聚类评估值最小的k值确定单体应用的划分结果。与现有技术相比,本技术能够自动对单体应用进行划分,从而能够克服人工划分存在的划分效率低、耗时的缺点。
88.需要说明的是,关于本技术实施例的其他详细说明,请参阅本技术实施例,本技术实施例对此不作赘述。
89.实施例三
90.请参阅图3,图3是本技术实施例公开的一种微服务划分设备的结构示意图。如图3所示,本技术实施例的微服务划分设备包括:
91.与处理器301耦合的存储有可执行程序代码的存储器302;
92.处理器301调用存储器302中存储的可执行程序代码,执行如本技术实施例一的微服务划分方法。
93.本技术实施例的设备通过执行微服务划分方法,进而能够获取针对单体应用的命令和能够将单体应用的命令转换为词向量,并得包括单体应用的词向量的向量集合d,同时,通过对向量集合d进行无监督聚类,能够基于聚类结果对单体应用的命令进行分组,基于davies-boulding指数公式计算各个k值下的聚类评估值,并基于聚类评估值最小的k值确定单体应用的划分结果。与现有技术相比,本技术能够自动对单体应用进行划分,从而能够克服人工划分存在的划分效率低、耗时的缺点。
94.实施例四
95.本技术实施例公开一种存储介质,存储介质存储有计算机指令,计算机指令被调用时,用于执行本技术实施例的微服务划分方法。
96.本技术实施例的存储介质通过执行微服务划分方法,进而能够获取针对单体应用的命令和能够将单体应用的命令转换为词向量,并得包括单体应用的词向量的向量集合d,同时,通过对向量集合d进行无监督聚类,能够基于聚类结果对单体应用的命令进行分组,基于davies-boulding指数公式计算各个k值下的聚类评估值,并基于聚类评估值最小的k值确定单体应用的划分结果。与现有技术相比,本技术能够自动对单体应用进行划分,从而能够克服人工划分存在的划分效率低、耗时的缺点。
97.在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
98.另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
99.再者,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
100.需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
101.在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
102.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1