CN111596924A - 一种微服务划分方法和装置 - Google Patents
一种微服务划分方法和装置 Download PDFInfo
- Publication number
- CN111596924A CN111596924A CN202010559578.6A CN202010559578A CN111596924A CN 111596924 A CN111596924 A CN 111596924A CN 202010559578 A CN202010559578 A CN 202010559578A CN 111596924 A CN111596924 A CN 111596924A
- Authority
- CN
- China
- Prior art keywords
- edge
- code files
- weighted graph
- undirected weighted
- micro
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4434—Reducing the memory space required by the program code
- G06F8/4435—Detection or removal of dead or redundant code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/436—Semantic checking
-
- 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)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种微服务划分方法和装置,用于解决现有的微服务划分方法划分后微服务之间强耦合,代码复用率低,代码冗余度高的技术问题。本发明包括:提取预设计量应用的多个代码文件;获取所述多个代码文件中各个代码文件之间的耦合关系;以所述耦合关系为边构建所述多个代码文件的无向加权图;对所述无向加权图进行聚类,得到连通矩阵;根据所述连通矩阵,将所述计量应用划分为多个微服务。本发明首先提取预设计量应用的多个代码文件;根据多个代码文件相互之间的耦合关系来构建无向加权图,而后对其进行聚类来得到最优的微服务集合,有效提高了计量应用的微服务利用率,减少代码冗余,实现对计量应用低耦合,高内聚的微服务划分。
Description
技术领域
本发明涉及电网计量系统技术领域,尤其涉及一种微服务划分方法和装 置。
背景技术
微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组 成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个 微服务仅关注于完成一件任务并很好地完成该任务。在这种情况下,每个任 务代表着一个小的业务能力。
现有技术根据代码行数来确定计量应用的微服务划分的大小,代码规模 通常设定在100行以内,微服务的代码行数越少则划分后的微服务灵活性越 高,更方便对微服务进行更改或者移除。
然而,现有的微服务划分策略不能很好地确定微服务划分的粒度,且划 分后的微服务之间强耦合,代码复用率低下,导致计量应用的代码冗余度过 高,带来了额外的CPU、内存等硬件成本开销。
发明内容
本发明提供了一种微服务划分方法和装置,用于解决现有的微服务划分 方法划分后微服务之间强耦合,代码复用率低,代码冗余度高的问题。
本发明提供的一种微服务划分方法,包括:
提取预设计量应用的多个代码文件;
获取所述多个代码文件中各个代码文件之间的耦合关系;
以所述耦合关系为边构建所述多个代码文件的无向加权图;
对所述无向加权图进行聚类,得到连通矩阵;
根据所述连通矩阵,将所述计量应用划分为多个微服务。
可选地,所述对所述无向加权图进行聚类,得到连通矩阵的步骤,包括:
分别计算所述无向加权图中每条边的边权比;
移除所述边权比最大的边,将余下的边作为目标边;
采用所述目标边和所述多个代码文件计算模块性值;
判断所述目标边的数量是否为零;
若否,则跳转至移除所述边权比最大的边,将余下的边作为目标边的步 骤;
若是,采用模块性值最大的目标边生成连通矩阵。
可选地,所述分别计算所述无向加权图中每条边的边权比的步骤,包括:
统计所述无向加权图中每条边的边介数;
计算所述无向加权图中每条边的边权重;
求取所述无向加权图中每条边的边介数与边权重的商,得到边权比。
可选地,所述计算所述无向加权图中每条边的边权重的步骤,包括:
分别确定每条边连接的两个代码文件;
获取所述两个代码文件的标识符;
计算所述两个代码文件的标识符的相似度,并将所述相似度确定为所述 两个代码文件之间的边的边权重。
可选地,所述提取预设计量应用的多个代码文件的步骤之后,还包括:
判断所述多个代码文件是否满足预设规范;若否,按照所述预设规范对 所述多个代码文件进行调整。
本发明提供的一种微服务划分装置,包括:
代码文件提取模块,用于提取预设计量应用的多个代码文件;
耦合关系获取模块,用于获取所述多个代码文件中各个代码文件之间的 耦合关系;
无向加权图构建模块,用于以所述耦合关系为边构建所述多个代码文件 的无向加权图;
聚类模块,用于对所述无向加权图进行聚类,得到连通矩阵;
微服务划分模块,用于根据所述连通矩阵,将所述计量应用划分为多个 微服务。
可选地,所述聚类模块,包括:
边权比计算子模块,用于分别计算所述无向加权图中每条边的边权比;
移除子模块,用于移除所述边权比最大的边,将余下的边作为目标边;
模块性值计算子模块,用于采用所述目标边和所述多个代码文件计算模 块性值;
判断子模块,用于判断所述目标边的数量是否为零;
跳转子模块,用于若所述目标边的数量不为零,则跳转至移除所述边权 比最大的边,将余下的边作为目标边的步骤;
连通矩阵生成子模块,用于若所述目标边的数量为零,采用模块性值最 大的目标边生成连通矩阵。
可选地,所述边权比计算子模块,包括:
边介数统计单元,用于统计所述无向加权图中每条边的边介数;
边权重计算单元,用于计算所述无向加权图中每条边的边权重;
边权比计算单元,用于求取所述无向加权图中每条边的边介数与边权重 的商,得到边权比。
可选地,所述边权重计算单元,包括:
代码文件确定子单元,用于分别确定每条边连接的两个代码文件;
标识符获取子单元,用于获取所述两个代码文件的标识符;
边权重计算子单元,用于计算所述两个代码文件的标识符的相似度,并 将所述相似度确定为所述两个代码文件之间的边的边权重。
可选地,所述的装置还包括:
调整模块,用于判断所述多个代码文件是否满足预设规范;若否,按照 所述预设规范对所述多个代码文件进行调整。
从以上技术方案可以看出,本发明具有以下优点:本发明首先提取预设 计量应用的多个代码文件;根据多个代码文件相互之间的耦合关系来构建无 向加权图,而后对其进行聚类来得到最优的微服务集合,有效提高了计量应 用的微服务利用率,减少代码冗余,实现对计量应用低耦合,高内聚的微服 务划分。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面 描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲, 在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种微服务划分方法的步骤流程图;
图2为本发明另一实施例提供的一种微服务划分方法的步骤流程图;
图3为本发明实施例无向加权图的构建过程示意图;
图4为本发明实施例的聚类过程示意图;
图5为本发明实施例提供的一种微服务划分装置的结构框图。
具体实施方式
本发明实施例提供了一种微服务划分方法和装置,用于解决现有的微服 务划分方法划分后微服务之间强耦合,代码复用率低,代码冗余度高的技术 问题。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将 结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整 地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部 的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性 劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明实施例提供的一种微服务划分方法的步骤流程 图。
微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组 成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个 微服务仅关注于完成一件任务并很好地完成该任务。在这种情况下,每个任 务代表着一个小的业务能力。
本发明提供的一种微服务划分方法,包括:
步骤101,提取预设计量应用的多个代码文件;
在实际应用中,计量应用是由代码编写而成的,根据代码的编写逻辑不 同,代码所能实现的功能便有所不同,对计量应用微服务的划分,实际上是 对代码的划分;代码的行数越少则划分后的微服务灵活性越高,更方便对微 服务进行更改或者移除;因此,本发明实施例需要提取预设计量应用的多个 代码文件,以作为微服务划分的数据基础。
本发明实施例所涉及的计量应用可以为电量分析、停电监测、辅助决策 等计量应用。
步骤102,获取所述多个代码文件中各个代码文件之间的耦合关系;
在实际场景中,代码文件之间往往存在一定的耦合关系,根据代码文件 之间的相似度不同,代码文件之间的耦合度也有所不同,了解代码文件之间 的耦合关系,有助于了解微服务之间的耦合关系,从而在进行微服务划分时, 有倾向性地组合代码文件,以降低微服务之间的耦合关系。因此,在本发明 实施例中,在提取到计量应用的多个代码文件之后,可以获取多个代码文件 中各个代码文件之间的耦合关系。
步骤103,以所述耦合关系为边构建所述多个代码文件的无向加权图;
无向加权图是一幅有权值且没有方向的图。在本发明实施例中,无向加 权图由顶点和边组成,其中,顶点为所提取的计量应用的多个代码文件,每 个代码文件均为无向加权图的一个顶点,边为各个代码文件之间的耦合关系。 以耦合关系为边连接相关联的顶点,得到的便是多个代码文件所组成的无向 加权图。
在获取得到各个代码文件之间的耦合关系后,可以以该耦合关系为边构 建多个代码文件之间的无向加权图。
步骤104,对所述无向加权图进行聚类,得到连通矩阵;
连通矩阵用以表征一个图是否是连通的,一个图是连通的需要满足以下 条件:当且仅当从任一个顶点触发,如有必要经过一个或多个中间顶点,能 够到达其余的任意顶点,即,任意两个不同顶点间都存在通路。
在构建得到无向加权图之后,可以使用社区发现GN算法对无向加权图 进行聚类,得到多个连通矩阵,聚类得到的每个连通矩阵最终都用于表征一 个微服务。
步骤105,根据所述连通矩阵,将所述计量应用划分为多个微服务。
根据聚类所得到的最终的连接矩阵所关联的代码文件,可以得到具体的 微服务,至此微服务划分完成。
本发明首先提取预设计量应用的多个代码文件;根据多个代码文件相互 之间的耦合关系来构建无向加权图,而后对其进行聚类来得到最优的微服务 集合,有效提高了计量应用的微服务利用率,减少代码冗余,实现对计量应 用低耦合,高内聚的微服务划分。
请参阅图2,图2为本发明另一实施例提供的一种微服务划分方法的步骤 流程图。
步骤201,提取预设计量应用的多个代码文件;
在实际应用中,计量应用是由代码编写而成的,根据代码的编写逻辑不 同,代码所能实现的功能便有所不同,对计量应用微服务的划分,实际上是 对代码的划分;代码的行数越少则划分后的微服务灵活性越高,更方便对微 服务进行更改或者移除;因此,本发明实施例需要提取预设计量应用的多个 代码文件,以作为微服务划分的数据基础。
在一个示例中,本发明实施例所涉及的计量应用可以为电量分析、停电 监测、辅助决策等单体式计量应用。
需要说明的是,对于单体式计量应用而言,由于公用微服务的存在,因 此需要对存在于同一网级电能量数据中心应用层上的计量应用进行全面统 计,确保所提取的代码文件没有遗漏。
步骤202,判断所述多个代码文件是否满足预设规范;若否,按照所述预 设规范对所述多个代码文件进行调整;
在本发明实施例中,在提取了代码文件后,为了确保每个代码文件都具 有良好的代码规范,即规范的变量名和方法名,需要对所提取的代码文件进 行检查,确保每个代码文件都具有良好的代码规范;对于变量名和方法名不 规范的情况,应按照规范的变量名和方法名构成方式对代码文件进行更正, 以方便后续进行代码文件之间语义相关性的评估。
步骤203,获取所述多个代码文件中各个代码文件之间的耦合关系;
在本发明实施例中,对代码文件之间进行语义相关性的评估的目的在于 确定代码文件之间的耦合关系。
在一个示例中,可以选择BM25方法分析计量应用中代码文件之间的语 义相关性。BM25算法是一种基于概率检索模型提出的算法,可用于评价两个 文件之间的语义相关性。在具体实现中,使用每个代码文件的标识符来便是 文件所具有的功能,标识符可以由变量名和方法名组成。将标识符作为BM25 的输入,便可以得到两个代码文件之间的语义相关性,得到两个代码文件之 间的相似度值,相似度值越高,代表两个代码文件之间的耦合度越高。
步骤204,以所述耦合关系为边构建所述多个代码文件的无向加权图;
在获取得到各个代码文件之间的耦合关系后,可以以该耦合关系为边构 建多个代码文件之间的无向加权图,并根据相似度值为边赋予边权重,边权 重越大代表了两个文件之间的耦合度越高。最终构建的无向加权图G(E,V) 如图3所示。图3为本发明实施例无向加权图的构建过程示意图。
在图3中,ci=c1、c2...c8、c9...表示数据统计分析这项计量应用的代码文 件,将每个代码文件作为无向加权图中的顶点,将代码文件间存在的耦合关 系作为无向加权图的边,便可以得到无向加权图G(E,V),其中,vi=v1、 v2...v8、v9...为无向加权图中的顶点,顶点vi∈V,V是无向加权图中所有顶 点的集合。每条边eij∈E的权重为w(i,j)。
进一步地,无向加权图G(E,V)可以用邻接矩阵A来表示,邻接矩阵 中元素表示两个顶点之间的权重,邻接矩阵的表示形式如下:
其中,aij表示顶点vi和顶点vj之间的边的权重。
邻接矩阵是表示顶点之间相邻关系的矩阵,对无向加权图而言,邻接矩 阵一定是对称的,无向加权图邻接矩阵的第i行(或第i列)非零元素的个数 正好是第i个顶点的度,用邻接矩阵表示无向加权图,很容易确定图中任意两 个顶点是否有边相连。
步骤205,对所述无向加权图进行聚类,得到连通矩阵;
连通矩阵用以表征一个图是否是连通的,一个图是连通的需要满足以下 条件:当且仅当从任一个顶点触发,如有必要经过一个或多个中间顶点,能 够到达其余的任意顶点,即,任意两个不同顶点间都存在通路。
在构建得到无向加权图之后,可以使用社区发现GN算法对无向加权图 进行聚类,得到多个连通矩阵,聚类得到的每个连通矩阵最终都用于表征一 个微服务。
在本发明实施例中,步骤205可以包括以下子步骤:
S11,分别计算所述无向加权图中每条边的边权比;
在本发明实施例中,通过边权比来对无向加权图的邻接矩阵进行聚类, 边权比可以通过以下步骤计算得到:统计无向加权图中每条边的边介数;计 算无向加权图中每条边的边权重求取无向加权图中每条边的边介数与边权重 的商。
边介数是社区发现GN算法里面的概念。无向加权图中任意两个顶点通 过此边的最短路径的数目,也即,无向加权图中所有顶点之间的最短路径中 通过这条边的数量,在实际中,边介数高的边要比边介数低的边更可能是社 区之间的边。因为两个社区中的顶点之间的最短路径都要经过那些社区之间 的边,所以它们的边介数相比之下就会比较高。
边权重由代码文件之间的相似度决定,具体可以通过以下步骤计算得到: 分别确定每条边连接的两个代码文件;获取两个代码文件的标识符,计算两 个代码文件的标识符的相似度,并将相似度确定为两个代码之间的边权重。
本发明实施例通过BM25算法来计算两个代码文件之间的相似度,其中, 算法的输入为代码文件的标识符,输出即为代码之间的相似度。
S12,移除所述边权比最大的边,将余下的边作为目标边;
S13,采用所述目标边和所述多个代码文件计算模块性值;
S14,判断所述目标边的数量是否为零;
S15,若否,则跳转至移除所述边权比最大的边,将余下的边作为目标边 的步骤;
S16,若是,采用模块性值最大的目标边生成连通矩阵。
在本发明实施例中,在得到无向加权图中每条边的加权比后,可以使用 加权比对无向加权图进行聚类,得到多个连通矩阵,每个连通矩阵表示不同 的微服务,从而完成对微服务的划分。
在本发明实施例中,微服务的划分质量可以通过模块性值Q来衡量,当 模块性值Q的函数值最大时,表示此时的微服务划分质量最好,各个微服务 之间都保持了高内聚,低耦合的原则。
在本发明实施例中,Q的函数定义如下:
Q=(1/2M)∑j[(aij-kikj/2M)δ(σi,σj)]
其中,M为无向加权图中所有边的权重之和,aij为无向加权图的邻接矩 阵的元素,若i和j两个顶点有边相连,则aij为边的权重,如果aij等于0,则 i、j两个顶点不相连,δ为隶属函数,当顶点i与j属于同一个微服务时,隶 属关系为1,否则为0。∑aij为加权无向图中边的权重之和。ki为顶点的点权。
在具体实现中,为了微服务划分质量最佳,聚类过程为:找到加权比最 大的边并将其移除,若有多条边则同时移除多条边,计算由余下的边构成的 加权图的模块性值Q,将Q与移除的边同时进行存储;重复上述两步直到所 有边均被移除;在原始邻接矩阵中依次去除Q最大时需要去除的边,得到连 通矩阵即为微服务划分质量最佳的连接矩阵,其中,矩阵的值为权值。
步骤206,根据所述连通矩阵,将所述计量应用划分为多个微服务。
根据聚类所得到的最终的连接矩阵所关联的代码文件,可以得到具体的 微服务,至此微服务划分完成。
如图4所示,图4为本发明实施例的聚类过程示意图,由图4可知,顶 点v2和v3,v4和v7,v5和v8之间的边被从无向加权图中去除,最终得到 多个互相之间没有连接关系的连接图,每个连接图表示一个微服务。包括电 量查询、线损计算、线损报表等多个业务微服务。
本发明首先提取预设计量应用的多个代码文件;根据多个代码文件相互 之间的耦合关系来构建无向加权图,而后对其进行聚类来得到最优的微服务 集合,有效提高了计量应用的微服务利用率,减少代码冗余,实现对计量应 用低耦合,高内聚的微服务划分。
请参阅图5,图5为本发明实施例提供的一种微服务划分装置的结构框图。
本发明提供的一种微服务划分装置,包括:
代码文件提取模块501,用于提取预设计量应用的多个代码文件;
耦合关系获取模块502,用于获取所述多个代码文件中各个代码文件之间 的耦合关系;
无向加权图构建模块503,用于以所述耦合关系为边构建所述多个代码文 件的无向加权图;
聚类模块504,用于对所述无向加权图进行聚类,得到连通矩阵;
微服务划分模块505,用于根据所述连通矩阵,将所述计量应用划分为多 个微服务。
在本发明实施例中,所述聚类模504块,包括:
边权比计算子模块,用于分别计算所述无向加权图中每条边的边权比;
移除子模块,用于移除所述边权比最大的边,将余下的边作为目标边;
模块性值计算子模块,用于采用所述目标边和所述多个代码文件计算模 块性值;
判断子模块,用于判断所述目标边的数量是否为零;
跳转子模块,用于若所述目标边的数量不为零,则跳转至移除所述边权 比最大的边,将余下的边作为目标边的步骤;
连通矩阵生成子模块,用于若所述目标边的数量为零,采用模块性值最 大的目标边生成连通矩阵。
在本发明实施例中,所述边权比计算子模块,包括:
边介数统计单元,用于统计所述无向加权图中每条边的边介数;
边权重计算单元,用于计算所述无向加权图中每条边的边权重;
边权比计算单元,用于求取所述无向加权图中每条边的边介数与边权重 的商,得到边权比。
在本发明实施例中,所述边权重计算单元,包括:
代码文件确定子单元,用于分别确定每条边连接的两个代码文件;
标识符获取子单元,用于获取所述两个代码文件的标识符;
边权重计算子单元,用于计算所述两个代码文件的标识符的相似度,并 将所述相似度确定为所述两个代码文件之间的边的边权重。
在本发明实施例中,所述的装置还包括:
调整模块,用于判断所述多个代码文件是否满足预设规范;若否,按照 所述预设规范对所述多个代码文件进行调整。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描 述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程, 在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法, 可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的, 例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外 的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或 一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或 直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连 接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作 为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方, 或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或 者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中, 也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单 元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单 元的形式实现。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制; 尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应 当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其 中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案 的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种微服务划分方法,其特征在于,所述的方法包括:
提取预设计量应用的多个代码文件;
获取所述多个代码文件中各个代码文件之间的耦合关系;
以所述耦合关系为边构建所述多个代码文件的无向加权图;
对所述无向加权图进行聚类,得到连通矩阵;
根据所述连通矩阵,将所述计量应用划分为多个微服务。
2.根据权利要求1所述的方法,其特征在于,所述对所述无向加权图进行聚类,得到连通矩阵的步骤,包括:
分别计算所述无向加权图中每条边的边权比;
移除所述边权比最大的边,将余下的边作为目标边;
采用所述目标边和所述多个代码文件计算模块性值;
判断所述目标边的数量是否为零;
若否,则跳转至移除所述边权比最大的边,将余下的边作为目标边的步骤;
若是,采用模块性值最大的目标边生成连通矩阵。
3.根据权利要求2所述的方法,其特征在于,所述分别计算所述无向加权图中每条边的边权比的步骤,包括:
统计所述无向加权图中每条边的边介数;
计算所述无向加权图中每条边的边权重;
求取所述无向加权图中每条边的边介数与边权重的商,得到边权比。
4.根据权利要求3所述的方法,其特征在于,所述计算所述无向加权图中每条边的边权重的步骤,包括:
分别确定每条边连接的两个代码文件;
获取所述两个代码文件的标识符;
计算所述两个代码文件的标识符的相似度,并将所述相似度确定为所述两个代码文件之间的边的边权重。
5.根据权利要求1所述的方法,其特征在于,所述提取预设计量应用的多个代码文件的步骤之后,还包括:
判断所述多个代码文件是否满足预设规范;若否,按照所述预设规范对所述多个代码文件进行调整。
6.一种微服务划分装置,其特征在于,所述的装置包括:
代码文件提取模块,用于提取预设计量应用的多个代码文件;
耦合关系获取模块,用于获取所述多个代码文件中各个代码文件之间的耦合关系;
无向加权图构建模块,用于以所述耦合关系为边构建所述多个代码文件的无向加权图;
聚类模块,用于对所述无向加权图进行聚类,得到连通矩阵;
微服务划分模块,用于根据所述连通矩阵,将所述计量应用划分为多个微服务。
7.根据权利要求6所述的装置,其特征在于,所述聚类模块,包括:
边权比计算子模块,用于分别计算所述无向加权图中每条边的边权比;
移除子模块,用于移除所述边权比最大的边,将余下的边作为目标边;
模块性值计算子模块,用于采用所述目标边和所述多个代码文件计算模块性值;
判断子模块,用于判断所述目标边的数量是否为零;
跳转子模块,用于若所述目标边的数量不为零,则跳转至移除所述边权比最大的边,将余下的边作为目标边的步骤;
连通矩阵生成子模块,用于若所述目标边的数量为零,采用模块性值最大的目标边生成连通矩阵。
8.根据权利要求7所述的装置,其特征在于,所述边权比计算子模块,包括:
边介数统计单元,用于统计所述无向加权图中每条边的边介数;
边权重计算单元,用于计算所述无向加权图中每条边的边权重;
边权比计算单元,用于求取所述无向加权图中每条边的边介数与边权重的商,得到边权比。
9.根据权利要求8所述的装置,其特征在于,所述边权重计算单元,包括:
代码文件确定子单元,用于分别确定每条边连接的两个代码文件;
标识符获取子单元,用于获取所述两个代码文件的标识符;
边权重计算子单元,用于计算所述两个代码文件的标识符的相似度,并将所述相似度确定为所述两个代码文件之间的边的边权重。
10.根据权利要求6所述的装置,其特征在于,所述的装置还包括:
调整模块,用于判断所述多个代码文件是否满足预设规范;若否,按照所述预设规范对所述多个代码文件进行调整。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010559578.6A CN111596924B (zh) | 2020-06-18 | 2020-06-18 | 一种微服务划分方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010559578.6A CN111596924B (zh) | 2020-06-18 | 2020-06-18 | 一种微服务划分方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111596924A true CN111596924A (zh) | 2020-08-28 |
CN111596924B CN111596924B (zh) | 2023-08-08 |
Family
ID=72186224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010559578.6A Active CN111596924B (zh) | 2020-06-18 | 2020-06-18 | 一种微服务划分方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111596924B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112540749A (zh) * | 2020-11-16 | 2021-03-23 | 南方电网数字电网研究院有限公司 | 微服务划分方法、装置、计算机设备和可读存储介质 |
CN113139867A (zh) * | 2021-04-30 | 2021-07-20 | 中国银行股份有限公司 | 微服务模块的划分方法、装置、设备及可读存储介质 |
CN115167909A (zh) * | 2022-09-08 | 2022-10-11 | 云账户技术(天津)有限公司 | 一种变更文件的管理方法及装置 |
CN115733750A (zh) * | 2022-11-25 | 2023-03-03 | 中国工商银行股份有限公司 | 微服务网关中元数据更新方法、装置、设备和存储介质 |
CN116192962A (zh) * | 2023-02-27 | 2023-05-30 | 中国人民解放军国防科技大学 | 一种面向云边端计算的通信聚合方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104573730A (zh) * | 2015-01-29 | 2015-04-29 | 中国科学院深圳先进技术研究院 | 一种基于决定路径权重的不确定图分割方法及系统 |
CN109934306A (zh) * | 2019-04-04 | 2019-06-25 | 西南石油大学 | 基于随机游走的多标签属性值划分方法和装置 |
CN109948710A (zh) * | 2019-03-21 | 2019-06-28 | 杭州电子科技大学 | 基于api相似度的微服务识别方法 |
CN110149364A (zh) * | 2019-04-15 | 2019-08-20 | 厦门市美亚柏科信息股份有限公司 | 基于数据服务平台提供微服务的方法、装置、存储介质 |
-
2020
- 2020-06-18 CN CN202010559578.6A patent/CN111596924B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104573730A (zh) * | 2015-01-29 | 2015-04-29 | 中国科学院深圳先进技术研究院 | 一种基于决定路径权重的不确定图分割方法及系统 |
CN109948710A (zh) * | 2019-03-21 | 2019-06-28 | 杭州电子科技大学 | 基于api相似度的微服务识别方法 |
CN109934306A (zh) * | 2019-04-04 | 2019-06-25 | 西南石油大学 | 基于随机游走的多标签属性值划分方法和装置 |
CN110149364A (zh) * | 2019-04-15 | 2019-08-20 | 厦门市美亚柏科信息股份有限公司 | 基于数据服务平台提供微服务的方法、装置、存储介质 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112540749A (zh) * | 2020-11-16 | 2021-03-23 | 南方电网数字电网研究院有限公司 | 微服务划分方法、装置、计算机设备和可读存储介质 |
CN112540749B (zh) * | 2020-11-16 | 2023-10-24 | 南方电网数字平台科技(广东)有限公司 | 微服务划分方法、装置、计算机设备和可读存储介质 |
CN113139867A (zh) * | 2021-04-30 | 2021-07-20 | 中国银行股份有限公司 | 微服务模块的划分方法、装置、设备及可读存储介质 |
CN113139867B (zh) * | 2021-04-30 | 2024-03-08 | 中国银行股份有限公司 | 微服务模块的划分方法、装置、设备及可读存储介质 |
CN115167909A (zh) * | 2022-09-08 | 2022-10-11 | 云账户技术(天津)有限公司 | 一种变更文件的管理方法及装置 |
CN115733750A (zh) * | 2022-11-25 | 2023-03-03 | 中国工商银行股份有限公司 | 微服务网关中元数据更新方法、装置、设备和存储介质 |
CN116192962A (zh) * | 2023-02-27 | 2023-05-30 | 中国人民解放军国防科技大学 | 一种面向云边端计算的通信聚合方法及系统 |
CN116192962B (zh) * | 2023-02-27 | 2023-11-14 | 中国人民解放军国防科技大学 | 一种面向云边端计算的通信聚合方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111596924B (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111596924A (zh) | 一种微服务划分方法和装置 | |
CN107194623B (zh) | 一种团伙欺诈的发现方法及装置 | |
CN109859054B (zh) | 网络社团挖掘方法、装置、计算机设备及存储介质 | |
KR101329350B1 (ko) | 그래프의 매개 중심성 갱신 방법 | |
CN112953738B (zh) | 根因告警的定位系统、方法、装置、计算机设备 | |
RU2527754C2 (ru) | Система генерирования статистической информации и способ генерирования статистической информации | |
CN112764920A (zh) | 一种边缘应用部署方法、装置、设备和存储介质 | |
CN112487658B (zh) | 一种电网关键节点的识别方法、装置及系统 | |
CN111091106B (zh) | 图像聚类方法及装置、存储介质、电子装置 | |
CN111460315B (zh) | 社群画像构建方法、装置、设备及存储介质 | |
CN112052404A (zh) | 多源异构关系网络的群体发现方法、系统、设备及介质 | |
CN113949881B (zh) | 一种基于智慧城市数据的业务处理方法及系统 | |
CN111160661A (zh) | 一种电力通信网可靠性优化方法、系统以及设备 | |
CN111147306A (zh) | 一种物联网设备的故障分析方法、装置以及物联网平台 | |
CN112784025B (zh) | 一种目标事件的确定方法和装置 | |
CN112508260B (zh) | 基于对比学习的配电变压器中长期负荷预测方法及装置 | |
CN114205214B (zh) | 一种电力通信网络故障识别方法、装置、设备及存储介质 | |
CN112311686B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN114880406A (zh) | 一种数据管理方法及装置 | |
CN112087323B (zh) | 告警相关性分析方法、装置、设备及可读存储介质 | |
CN110489568B (zh) | 生成事件图的方法、装置、存储介质和电子设备 | |
CN112907009B (zh) | 标准化模型的构建方法、装置、存储介质及设备 | |
CN116307953A (zh) | 充电场站的分级确定方法、装置及电子设备 | |
Zhao et al. | Ability-based fuzzy web service clustering and searching algorithm | |
CN116629576A (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 |