CN115061663B - 基于客户需求的微服务划分方法、装置、电子设备及介质 - Google Patents

基于客户需求的微服务划分方法、装置、电子设备及介质 Download PDF

Info

Publication number
CN115061663B
CN115061663B CN202210690097.8A CN202210690097A CN115061663B CN 115061663 B CN115061663 B CN 115061663B CN 202210690097 A CN202210690097 A CN 202210690097A CN 115061663 B CN115061663 B CN 115061663B
Authority
CN
China
Prior art keywords
micro
service
subset
services
coincident
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
CN202210690097.8A
Other languages
English (en)
Other versions
CN115061663A (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.)
Information Central Of China North Industries Group Corp
Original Assignee
Information Central Of China North Industries Group Corp
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 Information Central Of China North Industries Group Corp filed Critical Information Central Of China North Industries Group Corp
Priority to CN202210690097.8A priority Critical patent/CN115061663B/zh
Publication of CN115061663A publication Critical patent/CN115061663A/zh
Application granted granted Critical
Publication of CN115061663B publication Critical patent/CN115061663B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data
    • G06Q30/0203Market surveys; Market polls

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Theoretical Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Game Theory and Decision Science (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请涉及微服务划分技术领域,特别涉及基于客户需求的微服务划分方法、装置、电子设备及介质。方法包括:获取当前用户需求信息并确定当前用户需求信息对应的当前微服务;获取多个历史实例;将当前用户需求信息与每个历史需求信息进行比对,将历史需求信息中与当前用户需求信息匹配度最高的历史实例作为引用实例;根据引用实例的历史微服务集合将所有当前微服务划分重合微服务和非重合微服务;基于引用实例与重合微服务,确定重合微服务对应的各个历史微服务子集分别作为引用微服务子集;将非重合微服务与引用微服务子集进行重聚类,生成当前实例。本申请提高了针对客户需求进行微服务划分的效率。

Description

基于客户需求的微服务划分方法、装置、电子设备及介质
技术领域
本申请涉及软件模块设计的领域,尤其是涉及基于客户需求的微服务划分方法、装置、电子设备及介质。
背景技术
在软件设计过程中进行软件模块详细设计时,将软件产品依据功能分为多个微服务,一个或多个微服务合并成一个功能子块,用于实现客户指定的需求。
对于软件产品,微服务化的设计方法在任务对接分配与组合流程上可以大大简化,但是对于软件设计而言需以用户需求为导向,针对客户的需求进行软件设计时,单纯以各微服务间的功能和结构关联为依据的微服务划分,在客户需求发生变化时,需要首先分析评价该需求涉及到的微服务,再对与该需求相关联的微服务进行筛选与调整,进而适应客户需求,可见,采用功能和结构关联为依据的微服务思想,不能很快反应需求变化带来的软件产品改进。
发明内容
为了提升针对客户需求进行软件设计规划的效率,本申请提供基于客户需求的微服务划分方法、装置、电子设备及介质。
第一方面,本申请提供一种基于客户需求的微服务划分方法,采用如下的技术方案:一种基于客户需求的微服务划分方法,包括:
获取当前用户需求信息并确定当前用户需求信息对应的当前微服务;
获取多个历史实例;
将所述当前用户需求信息与每个所述历史需求信息进行比对,将所述历史需求信息中与当前用户需求信息匹配度最高的所述历史实例作为引用实例;
根据所述引用实例的历史微服务集合将所有所述当前微服务划分重合微服务和非重合微服务;基于所述引用实例与所述重合微服务,确定所述重合微服务对应的各个历史微服务子集分别作为引用微服务子集;
将所述非重合微服务与所述引用微服务子集进行重聚类,生成当前实例。
通过采用上述技术方案,根据历史实例确定重合微服务的聚类方式后,仅需再确定非重合微服务对应的子块规划方式,即可建立当前实例;基于本申请方案,通过分析已有历史实例,实现对当前实例的快速规划,提高了基于客户需求进行微服务划分的效率,进而有效缩短设计周期。
在另一种可能的实现方式中,所述方法还包括:
根据所述历史实例建立多维搜索树;
在所述将所述当前用户需求信息与多个所述历史需求信息进行比对之前,还包括:根据所述当前用户需求信息在所述多维搜索树中搜索。
通过采用上述技术方案,在多维搜索树中进行搜索,以便对比时能够快速搜索引用实例。
在另一种可能的实现方式中,所述将所述非重合微服务与所述引用微服务子集进行重聚类,包括:
将每个所述非重合微服务与每个所述引用微服务子集进行子集内耦合度计算,若所述耦合度大于等于第一阈值,则将所述非重合微服务合并至对应的所述引用微服务子集中。
通过采用上述技术方案,将各个非重合微服务中与引用微服务子集的耦合度高于第一阈值的非重合微服务合并至对应的引用微服务子集中,使得剩余的各个非重合微服务与引用微服务子集间的耦合度低,在以最后确定的划分结果分配任务时,各个分配小组间的任务联系小,更利于快速设计软件产品。
在另一种可能的实现方式中,所述将所述非重合微服务与所述引用微服务子集进行重聚类,还包括:
若所述耦合度小于等于第一阈值,则建立新微服务子集,将耦合度小于等于所述第一阈值的所述非重合微服务合并至所述新微服务子集。
通过采用上述技术方案,将耦合度小于等于第一阈值的非重合微服务划分至新微服务子集中,进行设计。
在另一种可能的实现方式中,所述建立新微服务子集之前,还包括:
确定当前微服务总数;
根据所述当前微服务总数与各个所述引用微服务子集内的微服务数量,确定优化集合,以及,所述优化集合包括的优化子集数;
其中,所述优化集合为各种微服务集合中各个子集包括的微服务数量均匀度最高的微服务集合;
根据所述优化子集数,确定所述新微服务子集的个数。
通过采用上述技术方案,在建立新微服务子集之前,考虑到最终确定的每个微服务子集中的微服务数量均匀度,将均匀度最高的微服务集合,作为优化集合,根据优化集合确定新微服务子集的个数,以及新微服务子集内包含的微服务数量;在后期规划和分配任务时,更能提高效率,且便于管理。
在另一种可能的实现方式中,所述生成当前实例之后,还包括:
确定所有的所述引用微服务子集以及所有所述新微服务子集之间的子集间耦合系数;
若所述子集间耦合系数大于第二阈值,则调整第一阈值,直至所述子集间耦合系数小于等于第二阈值。
通过采用上述技术方案,若微服务子集间耦合系数大于第二阈值,即,微服务子集间仍存在较强的关联性,则说明当前对各个微服务的划分方式可能不是最优值,因此通过调整第一阈值,改变非重合微服务的合并方式,从而改变建立微服务子集的个数,通过控制单一变量的调整对子集间耦合系数进行调整。
第二方面,本申请提供一种基于客户需求的微服务划分装置,采用如下的技术方案:一种基于客户需求的微服务划分装置,包括:
第一获取模块,用于获取当前用户需求信息并确定当前用户需求信息对应的当前微服务;
第二获取模块,用于获取多个历史实例;
匹配模块,用于将所述当前用户需求信息与每个所述历史需求信息进行比对,将所述历史需求信息中与当前用户需求信息匹配度最高的所述历史实例作为引用实例;
重划分模块,用于根据所述引用实例的历史微服务集合将所有所述当前微服务划分重合微服务和非重合微服务;
引用子集生成模块,用于基于所述引用实例与所述重合微服务,确定所述重合微服务对应的各个历史微服务子集分别作为引用微服务子集;
实例生成模块,用于将所述非重合微服务与所述引用微服务子集进行重聚类,生成当前实例。
在另一种可能的实现方式中,所述装置还包括:
搜索树建立模块,用于根据所述历史实例建立多维搜索树;
搜索模块,用于根据所述当前用户需求信息在所述多维搜索树中搜索。
在另一种可能的实现方式中,所述实例生成模块在将所述非重合微服务与所述引用微服务子集进行重聚类时,具体用于:
将每个所述非重合微服务与每个所述引用微服务子集进行子集内耦合度计算,若所述耦合度大于等于第一阈值,则将所述非重合微服务合并至对应的所述引用微服务子集中。
在另一种可能的实现方式中,所述装置还包括:
新子集建立模块,用于若所述耦合度小于等于第一阈值,则建立新微服务子集,将耦合度小于等于所述第一阈值的所述非重合微服务合并至所述新微服务子集。
在另一种可能的实现方式中,所述装置还包括:
总数确定模块,用于确定当前微服务总数;
优化确定模块,用于根据所述当前微服务总数与各个所述引用微服务子集内的微服务数量,确定优化集合,以及,所述优化集合包括的优化子集数;
其中,所述优化集合为各种微服务集合中各个子集包括的微服务数量均匀度最高的微服务集合;
新子集确定模块,用于根据所述优化子集数,确定所述新微服务子集的个数。
在另一种可能的实现方式中,所述方法还包括:
耦合系数确定模块,用于确定所有的所述引用微服务子集以及所有所述新微服务子集之间的子集间耦合系数;
阈值调整模块,用于若所述子集间耦合系数大于第二阈值,则调整第一阈值,直至所述子集间耦合系数小于等于第二阈值。
第三方面,本申请提供一种电子设备,采用如下的技术方案:
一种电子设备,该电子设备包括:
至少一个处理器;
存储器;
至少一个应用程序,其中至少一个应用程序被存储在存储器中并被配置为由至少一个处理器执行,所述至少一个应用程序配置用于:执行上述一种基于客户需求的微服务划分方法。
第四方面,本申请提供一种计算机可读存储介质,采用如下的技术方案:
一种计算机可读存储介质,包括:存储有能够被处理器加载并执行上述一种基于客户需求的微服务划分方法的计算机程序。
综上所述,本申请包括以下至少一种有益技术效果:
根据历史实例确定重合微服务的聚类方式后,仅需再确定非重合微服务对应的子集规划方式,即可建立当前实例;基于本申请方案,通过分析已有历史实例,实现对当前实例的快速规划,提高了基于客户需求进行微服务划分的效率,进而有效缩短设计周期。
附图说明
图1是本申请实施例基于客户需求的微服务划分方法的流程示意图;
图2是本申请实施例基于客户需求的微服务划分装置的方框示意图;
图3是本申请实施例电子设备的示意图。
具体实施方式
以下结合附图1-3对本申请作进一步详细说明。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
本申请实施例提供了一种基于客户需求的微服务划分方法,由电子设备执行,参照图1,该方法包括:
步骤S101、获取当前用户需求信息并确定当前用户需求信息对应的当前微服务。
具体地,当前用户输入的需求信息即为表征软件产品的技术参数和性能要求的需求集合。
对软件来说,用户的需求集合包括但不限于{应用场景、应用对象、并发人数、网络环境、交互方式、接口设置、硬件要求}等等。每个需求对应一个或者多个微服务,一个或多个微服务单元组成一个最小功能模块以实现用户的需求。例如:满足交互方式需求对应的微服务包括:语音处理、文字识别、图像采集等;满足视频播放的需求仅涉及到流媒体处理一个微服务。
再例如:用户想要设计一个专用于医院的患者监护系统,对病人的生理数据进行检测,记录日期和时间,在病人生理数据有异常时生成警告信息,同时在每日生成每个病人的病情报告。则,用户的需求集合包括{定时取样生理信号、分析生理信号、产生警告信息、更新患者日志数据、产生病情报告},对于定时取样生理信号的需求所对应的微服务包括{定时微服务、获取微服务},对于获取微服务而言,获取的数据来源需要依靠微服务与其他微服务之间的数据接口而实现。再者,对于分析生理信号的需求而言,所对应的微服务包括{接收微服务、判断微服务},接收微服务接收生理信号,以及生理安全范围,判断微服务根据生理信号和生理安全范围判断病人是否异常。
步骤S102、获取多个历史实例。
其中,每个历史实例对应有历史需求信息和历史微服务集合,历史需求信息包括至少一个历史需求,历史微服务集合包括至少一个历史微服务子集,历史需求与历史微服务子集一一对应,每个历史微服务子集包括至少一个微服务。
不同的历史需求信息对应的历史微服务集合不同,例如,历史实例A对应的历史需求信息A为{需求1;需求2;需求3},历史实例A对应的微服务集合A为{微服务1、微服务2;微服务4、微服务5;微服务7}其中,微服务1和微服务2构成微服务子集1,对应需求1;微服务4和微服务5构成微服务子集2,对应需求2;微服务7构成微服务子集3,对应需求3;
历史实例B对应的历史需求信息B为{需求1;需求2;需求4;需求6},历史实例B对应的微服务集合B为{微服务1、微服务2;微服务4、微服务5;微服务9、微服务3、微服务12;微服务8}……
进一步地,历史实例可以是从已经设计出来的软件中,根据所使用的微服务,反向推导出其对应的历史微服务集合中所形成的历史实例。
例如,当前用户想要设计的软件产品为步骤S101中所举例的患者监护系统,对应的历史实例包括,历史实例A1,采集患者的生理信号对患者的身体进行预测,生成预测报告,同时在患者的生理信号产生异常时生成警告信息的软件产品;历史实例A2,采集患者的生理信号和患者的各项检查结果,对患者的身体进行预测,生成预测报告的软件产品;
其中,历史实例A1对应的历史需求信息A1{定时取样生理信号;分析生理信号;产生警告信息;生成预测报告};
历史实例A2对应的历史需求信息A2为{定时取样生理信号;获取检查结果;分析生理信号和检查结果;生成预测报告}。
步骤S103、将当前用户需求信息与每个历史需求信息进行比对,之后将所有历史需求信息中与当前用户需求信息匹配度最高的历史实例作为引用实例。
其中,不同用户进行定制软件产品时,可能会在非关键设计的部分提出个性化需求,如上例中的需求4、需求6以及需求3,再例如,上例中的生成预测报告、获取检查结果以及分析生理信号和检查结果;而产品主体涉及的关键设计部分是相同的,如上例中的需求1和需求2,再例如,上例中的定时取样生理信号和分析生理信号,或者产品主体只是存在部分参数的差别;对于一个软件产品来说,实现某一功能需要多个微服务共同完成,因此微服务之间的配合关系(即,关联程度)为主要的考虑因素,部分参数上的差别在一个微服务集合内的各个微服务相配合的情况下可以统一或者适应性调试。
在进行需求相似度对比时,将进行对比的两个需求集合中的每个元素进行逐一匹配,将匹配成功个数最多的历史需求对应的历史实例作为引用实例。本申请中,首先将当前用户需求信息与多个历史需求信息进行逐一对比,根据需求确定两个软件产品设计方案的相似度,在相似度达到预设值后,在已有实例的基础上对当前用户的需求再次进行微服务集合的划分,以提高划分效率,同时提高划分准确度。
例如,上例中所述的历史实例A1和历史实例A2中,引用实例为历史实例A1,对应的历史需求信息A1{定时取样生理信号;分析生理信号;产生警告信息;生成预测报告}。
步骤S104、根据引用实例的历史微服务集合将所有当前微服务划分重合微服务和非重合微服务。
其中,由于需求-微服务之间的对应关系,使得引用实例中与当前用户需求信息中相同的需求元素必定对应相同的微服务,即在引用实例和当前微服务中均存在的重合微服务,当前用户需求中的其他微服务为非重合微服务。
例如,当前需求信息{定时取样生理信号、分析生理信号、产生警告信息、更新患者日志数据、产生病情报告},引用实例对应的历史需求信息为{定时取样生理信号;分析生理信号;产生警告信息;生成预测报告},则重合需求包括定时取样生理信号、分析生理信号和产生警告信息三个需求,非重合需求包括更新患者日志数据、产生病情报告两个需求,每个重合需求各自对应的微服务为重合微服务,每个非重合需求对应的微服务为非重合微服务。
步骤S105、基于引用实例与所述重合微服务,确定所述重合微服务对应的各个历史微服务子集分别作为引用微服务子集。
其中,例如重合微服务为1、2、3、5、6、9、12、13、15,以上7个微服务在历史实例中对应3个历史微服务子集,分别为历史微服务子集1(对应微服务1、2、3),历史微服务子集2(对应微服务5、12、13),以及历史微服务子集3(对应微服务6、9、15);则将重合微服务对应的三个历史微服务子集分别作为引用微服务子集,即生成引用微服务子集1(对应微服务1、2、3),引用微服务子集2(对应微服务5、12、13),以及引用微服务子集3(对应微服务6、9、15)。
步骤S106、将非重合微服务与引用微服务子集进行重聚类,生成当前实例。
根据历史实例确定重合微服务的聚类方式后,仅需再确定非重合微服务对应的微服务集合的规划方式,即可建立当前实例;基于本申请方案,通过分析已有历史实例,实现对当前实例的快速规划,有效缩短设计周期。
在一个具体的实施例中,方法还包括:根据历史实例建立多维搜索树;在将当前用户需求信息与多个历史需求信息进行比对之前,还包括:根据当前用户需求信息在多维结构树中搜索。通过多维结构树,以便对比时快速搜索引用实例。
在一个具体的实施例中,在步骤S106中将非重合微服务与引用微服务子集进行重聚类,生成当前实例,包括:将每个非重合微服务与每个引用微服务子集进行子集内耦合度计算,若耦合度大于等于第一阈值,则将非重合微服务合并至对应的引用微服务子集中;若耦合度小于第一阈值,则建立新微服务子集,将耦合度小于第一阈值的非重合微服务合并至新微服务子集。
其中,计算非重合微服务与每个引用微服务子集的子集内耦合度包括:步骤S61、步骤S62以及步骤S63,其中:
步骤S61(图中未示出)、根据客户需求与微服务的关联关系建立客户需求矩阵DDM。
其中,DDM为一个m行n列的长方阵,第i行(ri)代表第i个客户需求,第j列(cj)表示第j个微服务,若ri与cj存在关联关系,则矩阵元素mij=1,否则mij=0,最终建立DDM矩阵M=[mij],(i=1,2…,m;j=1,2…,n)。
例如,对于用于销售商品的软件,对应的微服务包括用户注册、账号绑定、地址输入、支付管理、收入管理、查阅订单、修改订单、短信验证、商品编号、商品排序、相似查找、权限设置、好友添加、好友分享、名称搜索、物流查询、物流显示、绑定会员、会员管理等,若用户需求包括会员管理、用户管理、订单管理、商品管理以及物流管理,则用户当前需求信息以及对应的微服务之间的关系如下表所示:
以用户管理为例说明,用户管理与用户注册、账号绑定、查阅订单、修改订单、短信验证、权限设置、好友添加、好友分享之间为关联关系,因此对应的元素为1,与其他微服务之间无关联关系,则对应的元素为0。
将所有的用户需求为一列,将该领域对应的所有微服务作为行,建立DDM矩阵。
步骤S62(图中未示出)、根据客户需求矩阵DDM以及非重合微服务构建子集耦合矩阵BK
步骤S63(图中未示出)、计算子集耦合矩阵BK对应的子集内耦合度。
其中,子集耦合矩阵Bk为表征非重合微服务加入至各个引用微服务子集后形成的矩阵,子集内耦合度用以判断子集内的各个微服务之间的几何关联复杂程度。
例如,若当前用户需求为会员管理、用户管理、订单管理、商品管理以及物流管理,与引用实例对应的重合需求为用户管理、订单管理以及商品管理,引用微服务子集包括引用微服务子集1{用户注册、账号绑定、查阅订单、修改订单、短信验证、权限设置、好友添加、好友分享};引用微服务子集2{订单支付、收入统计、查阅订单、修改订单}以及引用微服务子集3{商品编号、商品排序、关键词设置、相似查找}。则非重合微服务包括:地址输入、物流查询、物流显示、会员绑定以及会员设置。
对于物流查询这一类的微服务而言,物流查询(微服务)与查阅订单(微服务)两个微服务之间具备较强的耦合性,想要查询物流,需要首先确定订单;物流查询还与账号绑定之间存在较强的关联性。
逐一将非重合微服务分别置于各个引用微服务子集中,形成各个子集耦合矩阵Bk,分别计算每个微服务子集Bk内的各个微服务之间的耦合度。
设任一微服务子集BK为t阶方阵,对于t阶方阵BK,子集内的微服务的耦合度为产品开发的工作难点,子集内耦合度包括强关联和弱关联,根据ci和rj的关联关系,对Cop(ci,rj)赋值。
Cop(ci,rj)赋值表
例如,物流查询与地址输入、查阅订单、账号绑定之间为强关联,与修改订单、用户注册之间为弱关联,与商品编号、商品排序、关键词设置、相似查找等之间无关联。
对于t阶任一微服务子集BK,其子集内的各个微服务之间的耦合度表示为:
式中,i≠j,ci∩rj∈BK;显然0≤Ci<2,且微服务子集内耦合度越高,Ci越大。
若将该非重合微服务加入任一引用微服务子集后生成的微服务子集内耦合度大于第一阈值,则说明该非重合微服务与该任一引用微服务子集的相关性较强,即,可将该非重合微服务加入该任一引用微服务子集中,例如,物流显示该非重合微服务与订单管理对应的引用微服务子集之间相关性较强,因此将物流显示加入至订单管理对应的引用微服务子集中;若将该非重合微服务加入任一引用微服务子集合并后生成的微服务子集所得的微服务子集内耦合度小于等于第一阈值,则说明该非重合微服务与该任一引用微服务子集的相关性较弱,即,不应将该非重合微服务加入该任一引用微服务子集中,此时建立新的微服务子集,新的微服务子集中将包括该非重合微服务。
将所有的非重合微服务中的与引用子集之间有较强的关联性的微服务归入至引用子集,在根据历史实例设计软件产品时,直接在历史实例的基础上,将非重合微服务对应的软件与引用子集内的各个模块之间建立相应的联系(接口),减小了各个微服务子集间的耦合度,更便捷高效。
在一个具体的实施例中,在建立新的微服务子集之前还包括:确定当前微服务总数;根据当前微服务总数与各个引用微服务子集内的微服务数量,确定优化集合,以及,优化集合所包括的优化子集数;其中,所述优化集合为各种微服务集合中的子集数量均匀度最高的微服务集合。根据优化子集数,确定新的微服务子集的个数。
具体地,根据当前微服务总数确定优化集合是为了使得各个微服务子集内的微服务数量保持均衡差异,微服务规划的子集数量均匀度E是指各个微服务子集包含的微服务数量的均匀程度。各个微服务子集内包含的微服务的数量越接近,微服务规划的均匀度越好,以此为结果进行任务分配,各功能模块处理的微服务数量越平均,更便于管理。
子集数量均匀度E是通过比较微服务数量最多的与最少的微服务子集的微服务数量确定的,即
式中,当E越接近1,说明微服务划分的均匀度越好。
在引用微服务子集的基础上将非重合微服务进行合并后,若还存在耦合度小于等于第一阈值的非重合微服务,则根据微服务划分的均匀度E,
确定没有合并至引用微服务子集的非重合微服务需要分配到几个新微服务子集中,以使得微服务子集的总数量接近优化微服务子集的个数。
例如:当前需求共包含9个微服务总数,确定出引用微服务子集(将耦合度高的非重合微服务已合并至该子集中)包括引用微服务子集1;引用微服务子集1包括4个微服务,若不考虑各个微服务子集间的均匀度,剩余的五个微服务将分别各自为一个微服务子集,使得任务分配不均,也不便于后期管理;除此之外,还可以将剩余五个微服务划分为两个子集,其中一个子集中包括2个微服务,另一个子集中包括3个微服务;或者,将剩余五个微服务划分为两个子集,一个子集中包括1个微服务和另一个子集中包括4个微服务;或者将五个微服务单独作为一个子集;共有四种划分方式,对应有四种微服务集合,计算每种微服务集合对应的子集数量均匀度,其中,将五个非重合微服务合并为一个子集,对应的微服务集合的均匀度最高,因此,优化集合包括两个优化子集,即,优化子集数为两个,一个优化子集的微服务数量为四个,另一个优化子集的微服务数量为五个。
在一个具体的实施例中,生成当前实例之后,还包括:确定所有引用微服务子集以及所有新微服务子集之间的子集间耦合系数;若子集间耦合系数大于第二阈值,则调整第一阈值,直至子集间耦合系数小于等于第二阈值。
其中,如果不同微服务子集中的微服务之间存在关联,则称子集与子集耦合,子集之间的耦合度是导致软件各模块间通信成本增加的主要因素,如果各个微服务子集间存在几何关联,记Cop(Bi,Bj)=1,微服务子集间的耦合度可以表示为式中,i≠j,i,j=1,2,……K;显然,0≤Ca≤1,且子集间耦合度越低,Ca越小,Ck表示各个微服务子集中的微服务数量。
即,若微服务子集间耦合系数大于第二阈值,即,微服务子集间仍存在较强的关联性,则说明当前对各个微服务的划分方式可能不是最优值,因此通过调整第一阈值,改变非重合微服务的合并方式,从而改变建立微服务子集的个数,通过控制单一变量的调整对子集间耦合系数进行调整。
参照图2,上述实施例从方法流程的角度介绍一种基于客户需求的微服务划分方法,下述实施例从虚拟微服务或者虚拟单元的角度介绍了一种基于客户需求的微服务划分装置100,具体详见下述实施例。
一种基于客户需求的微服务划分装置100,包括:
第一获取模块1001,用于获取当前用户需求信息并确定当前用户需求信息对应的当前微服务;
第二获取模块1002,用于获取多个历史实例;
匹配模块1003,用于将当前用户需求信息与每个历史需求信息进行比对,将历史需求信息中与当前用户需求信息匹配度最高的历史实例作为引用实例;
重划分模块1004,用于根据所述引用实例的历史微服务集合将所有所述当前微服务划分重合微服务和非重合微服务;
子块生成模块1005,用于基于所述引用实例与所述重合微服务,确定所述重合微服务对应的各个历史微服务子集分别作为引用微服务子集;
实例生成模块1006,用于将所述非重合微服务与所述引用微服务子集进行重聚类,生成当前实例。
本申请实施例一种可能的实现方式,装置100还包括:
搜索树建立模块,用于根据所述历史实例建立多维搜索树;
搜索模块,用于根据所述当前用户需求信息在所述多维搜索树中搜索。
本申请实施例一种可能的实现方式,所述实例生成模块1006在将所述非重合微服务与所述引用微服务子集进行重聚类时,具体用于:
将每个所述非重合微服务与每个所述引用微服务子集进行子集内耦合度计算,若所述耦合度大于等于第一阈值,则将所述非重合微服务合并至对应的所述引用微服务子集中。
本申请实施例一种可能的实现方式,装置100还包括:
新子集建立模块,用于若所述耦合度小于等于第一阈值,则建立新微服务子集,将耦合度小于等于所述第一阈值的所述非重合微服务合并至所述新微服务子集。
本申请实施例一种可能的实现方式,装置100还包括:
总数确定模块,用于确定当前微服务总数;
优化确定模块,用于根据所述当前微服务总数与各个所述引用微服务子集内的微服务数量,确定优化集合,以及,所述优化集合包括的优化子集数;
其中,所述优化集合为各种微服务集合中各个子集包括的微服务数量均匀度最高的微服务集合;
新子集确定模块,用于根据所述优化子集数,确定所述新微服务子集的个数。
本申请实施例一种可能的实现方式,所述装置100还包括:
耦合系数确定模块,用于确定所有的所述引用微服务子集以及所有所述新微服务子集之间的子集间耦合系数;
阈值调整模块,用于若所述子集间耦合系数大于第二阈值,则调整第一阈值,直至所述子集间耦合系数小于等于第二阈值。
本申请实施例还从实体装置的角度介绍了一种电子设备,如图3所示,图3所示的电子设备1100包括:处理器1101和存储器1103。其中,处理器1101和存储器1103相连,如通过总线1102相连。可选地,电子设备1100还可以包括收发器1104。需要说明的是,实际应用中收发器1104不限于一个,该电子设备1100的结构并不构成对本申请实施例的限定。
处理器1101可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,零件和电路。处理器1101也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线1102可包括一通路,在上述组件之间传送信息。总线1102可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry StandardArchitecture,扩展工业标准结构)总线等。总线1102可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器1103可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(RandomAccess Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器1103用于存储执行本申请方案的应用程序代码,并由处理器1101来控制执行。处理器1101用于执行存储器1103中存储的应用程序代码,以实现前述方法实施例所示的内容。
其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。还可以为服务器等。图3示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (9)

1.一种基于客户需求的微服务划分方法,其特征在于,包括:
获取当前用户需求信息并确定当前用户需求信息对应的当前微服务;
获取多个历史实例;
将所述当前用户需求信息与每个历史需求信息进行比对,将所述历史需求信息中与当前用户需求信息匹配度最高的所述历史实例作为引用实例;
根据所述引用实例的历史微服务集合将所有所述当前微服务划分重合微服务和非重合微服务;
基于所述引用实例与所述重合微服务,确定所述重合微服务对应的各个历史微服务子集分别作为引用微服务子集;
将所述非重合微服务与所述引用微服务子集进行重聚类,生成当前实例。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述历史实例建立多维搜索树;
在所述将所述当前用户需求信息与多个所述历史需求信息进行比对之前,还包括:根据所述当前用户需求信息在所述多维搜索树中搜索。
3.根据权利要求1所述的方法,其特征在于,所述将所述非重合微服务与所述引用微服务子集进行重聚类,包括:
将每个所述非重合微服务与每个所述引用微服务子集进行子集内耦合度计算,若所述耦合度大于等于第一阈值,则将所述非重合微服务合并至对应的所述引用微服务子集中。
4.根据权利要求3所述的方法,其特征在于,所述将所述非重合微服务与所述引用微服务子集进行重聚类,还包括:
若所述耦合度小于第一阈值,则建立新微服务子集,将耦合度小于第一阈值的所述非重合微服务合并至所述新微服务子集。
5.根据权利要求4所述的方法,其特征在于,所述建立新微服务子集之前,还包括:
确定当前微服务总数;
根据所述当前微服务总数与各个所述引用微服务子集内的微服务数量,确定优化集合,以及,所述优化集合包括的优化子集数;
其中,所述优化集合为各种微服务集合中各个子集包括的微服务数量均匀度最高的微服务集合;
根据所述优化子集数,确定所述新微服务子集的个数。
6.根据权利要求4所述的方法,其特征在于,所述生成当前实例之后,还包括:
确定所有的所述引用微服务子集以及所有所述新微服务子集之间的子集间耦合系数;
若所述子集间耦合系数大于第二阈值,则调整第一阈值,直至所述子集间耦合系数小于等于第二阈值。
7.一种基于客户需求的微服务划分装置,其特征在于,包括:
第一获取模块,用于获取当前用户需求信息并确定当前用户需求信息对应的当前微服务;
第二获取模块,用于获取多个历史实例;
匹配模块,用于将所述当前用户需求信息与每个历史需求信息进行比对,将所述历史需求信息中与当前用户需求信息匹配度最高的所述历史实例作为引用实例;
重划分模块,用于根据所述引用实例的历史微服务集合将所有所述当前微服务划分重合微服务和非重合微服务;
引用子集生成模块,用于基于所述引用实例与所述重合微服务,确定所述重合微服务对应的各个历史微服务子集分别作为引用微服务子集;
实例生成模块,用于将所述非重合微服务与所述引用微服务子集进行重聚类,生成当前实例。
8.一种电子设备,其特征在于,该电子设备包括:
至少一个处理器;
存储器;
至少一个应用程序,其中至少一个应用程序被存储在存储器中并被配置为由至少一个处理器执行,所述至少一个应用程序配置用于:执行权利要求1~6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,包括:存储有能够被处理器加载并执行如权利要求1~6中任一项方法的计算机程序。
CN202210690097.8A 2022-06-17 2022-06-17 基于客户需求的微服务划分方法、装置、电子设备及介质 Active CN115061663B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210690097.8A CN115061663B (zh) 2022-06-17 2022-06-17 基于客户需求的微服务划分方法、装置、电子设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210690097.8A CN115061663B (zh) 2022-06-17 2022-06-17 基于客户需求的微服务划分方法、装置、电子设备及介质

Publications (2)

Publication Number Publication Date
CN115061663A CN115061663A (zh) 2022-09-16
CN115061663B true CN115061663B (zh) 2024-06-21

Family

ID=83203192

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210690097.8A Active CN115061663B (zh) 2022-06-17 2022-06-17 基于客户需求的微服务划分方法、装置、电子设备及介质

Country Status (1)

Country Link
CN (1) CN115061663B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116501383B (zh) * 2023-06-26 2023-08-22 亚信科技(中国)有限公司 微服务的分配方法、装置、电子设备及可读存储介质

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9363301B2 (en) * 2014-10-21 2016-06-07 Twilio, Inc. System and method for providing a micro-services communication platform
CN106506605B (zh) * 2016-10-14 2020-09-22 华南理工大学 一种基于微服务架构的SaaS应用构建方法
CN106845947A (zh) * 2017-02-10 2017-06-13 中国电建集团成都勘测设计研究院有限公司 一种基于云的企业微服务持续交付的方法及系统
US20180254996A1 (en) * 2017-03-03 2018-09-06 International Business Machines Corporation Automatic scaling of microservices based on projected demand
CN110737425B (zh) * 2018-07-20 2023-05-16 网宿科技股份有限公司 一种计费平台系统的应用程序的建立方法及装置
CN110069380B (zh) * 2019-03-20 2024-01-16 陕西合友网络科技有限公司 一种基于微服务的Web分布式软件演化与监控方法
CN112019369A (zh) * 2019-05-31 2020-12-01 烽火通信科技股份有限公司 一种微服务框架下动态配置管理方法及系统
JP2021009589A (ja) * 2019-07-02 2021-01-28 アズビル株式会社 マイクロサービス分割装置およびマイクロサービス分割プログラム
CN113051303A (zh) * 2019-12-27 2021-06-29 北京国双科技有限公司 业务数据处理方法、装置、电子设备以及存储介质
CN111541746B (zh) * 2020-04-09 2022-04-15 哈尔滨工业大学 面向用户需求变化的多版本并存的微服务自适应方法
CN111767047A (zh) * 2020-06-28 2020-10-13 北京思特奇信息技术股份有限公司 一种微服务组件管理方法和装置
CN112398899B (zh) * 2020-07-10 2022-02-25 南京邮电大学 一种面向边缘云系统的软件微服务组合优化方法
CN112346717A (zh) * 2020-09-18 2021-02-09 长沙市到家悠享网络科技有限公司 微服务系统创建方法、装置、设备、介质、微服务系统
CN112308521B (zh) * 2020-11-02 2023-09-05 中国联合网络通信集团有限公司 微服务划分方法和系统
CN113342472A (zh) * 2021-06-28 2021-09-03 平安消费金融有限公司 微服务集群创建方法、装置、电子设备及可读存储介质
CN113961173B (zh) * 2021-10-13 2024-04-30 天津大学 基于领域事件驱动的单体系统微服务拆分方法
CN114089956A (zh) * 2021-11-17 2022-02-25 北京航空航天大学 一种基于需求模型的微服务拆分方法
CN114115818A (zh) * 2021-11-30 2022-03-01 数字广东网络建设有限公司 一种微服务划分方法、装置、设备及介质
CN114385576B (zh) * 2021-12-21 2024-08-27 同济大学 基于业务需求数据流图的云计算微服务划分方法和系统
CN114417000A (zh) * 2022-03-01 2022-04-29 北京天融信网络安全技术有限公司 微服务划分方法、装置、设备及存储介质
CN114253519B (zh) * 2022-03-01 2022-06-24 中国电子信息产业集团有限公司第六研究所 一种智慧园区安防管理系统及电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于微服务架构的生产管控系统设计与实现;杨建新等;新技术新工艺;20210925;第28-33页 *
基于情境的微服务动态发现技术研究;刘欢;中国优秀硕士学位论文全文数据库 信息科技辑;20200615(第I139-89期);I139-89 *

Also Published As

Publication number Publication date
CN115061663A (zh) 2022-09-16

Similar Documents

Publication Publication Date Title
JP7343568B2 (ja) 機械学習のためのハイパーパラメータの識別および適用
US9195693B2 (en) Transaction prediction modeling method
US9996593B1 (en) Parallel processing framework
CN111722806B (zh) 云盘分配方法、装置、电子设备及存储介质
US8682885B2 (en) Method and system for combining data objects
WO2014004741A1 (en) Distributed, real-time online analytical processing (olap)
KR20080085142A (ko) 사용자 대 사용자 추천자
CN103177062A (zh) 用于高速内存在线分析处理查询和操作的加速查询操作器
EP3217296A1 (en) Data query method and apparatus
US10445341B2 (en) Methods and systems for analyzing datasets
CN111159563A (zh) 用户兴趣点信息的确定方法、装置、设备及存储介质
CN103177066A (zh) 分析和表示人际关系
CN111427911A (zh) 数据查询方法、装置、计算机设备和存储介质
CN115061663B (zh) 基于客户需求的微服务划分方法、装置、电子设备及介质
AU2018282315A1 (en) Relation aware aggregation (RAA) on normalized datasets
WO2022156086A1 (zh) 人机交互方法、装置、设备及存储介质
US11741101B2 (en) Estimating execution time for batch queries
US11361003B2 (en) Data clustering and visualization with determined group number
US11023485B2 (en) Cube construction for an OLAP system
CN110020181B (zh) 一种推荐信息的处理方法、装置及计算机可读存储介质
CN112579422A (zh) 一种方案测试方法、装置、服务器及存储介质
CN114296965A (zh) 特征检索方法、装置、电子设备及计算机存储介质
US20180276294A1 (en) Information processing apparatus, information processing system, and information processing method
JP2021522605A (ja) 高速化された大規模な類似度計算
RU2755568C1 (ru) Способ параллельного выполнения операции JOIN при обработке больших структурированных высокоактивных данных

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