The invention discloses a method of single application micro service, which includes the call analysis stage, the module split stage and the frame adaptation stage. By analyzing the bytecode of the packaged files, the method call relationship between the classes in the application code is obtained, and the call chain in the application is analyzed and the call graph is generated; and the call is called. Graph, all of the nodes entering 0 are taken as the entrance, and all the lower nodes are found by the breadth first traversal of the directed graph at the starting point, and the starting point and the ergodic result are used as a micro service module that will be split out. In accordance with this rule, a complete project is divided into multiple independent micro units. Service modules, each module can be developed and deployed separately, and the application of monomers has also achieved rapid micro service. The invention reduces the input of the monomer architecture to the transformation of the micro service architecture, reduces the learning cost of the development, and helps the project smooth transition to the micro service architecture.
【技术实现步骤摘要】
一种单体应用微服务化的方法
本专利技术提供了一种简单快速的微服务化方法,主要涉及微服务化和单体应用的微服务化改造,可以帮助非微服务的单体项目快速平稳地微服务化。
技术介绍
传统代码的框架将所有功能(例如对于一个电商系统的商品展示、商品下单、商品支付等业务)都打包在一个WAR包里,基本没有外部依赖,部署在一个J2EE容器(Tomcat,JBoss,WebLogic)里,包含了DO/DAO,Service,UI等所有逻辑。这种单块架构实现的软件系统随着业务规模的扩大,技术选型越来越困难,维护成本陡然增加,可扩展性和持续交付能力也变得更差,任何一个模块的失效都可能导致系统的整体崩溃,任何一个模块负载过重,都可能影响系统的整体稳定性。为了解决这一系列弊端,微服务架构被提出。微服务不需要像普通服务那样成为一种独立的功能或者资源,他需要与业务能力相匹配,按照可重用的维度划分,将一组相关的功能组织在一起给消费者提供服务,每一个服务都以独立的进程运行,不同服务之间通过轻量的协议进行通信。微服务带来的优势有:(1)规模小:微服务架构中,服务的规模较小,通常而言如果一个服务过大,就应当被拆解成两个或多个服务,这使得业务开发专注于保证单一服务的能力,这给服务的可维护性和可扩展性带来了好处。(2)有界限:相关的功能会被整合到一个单独的业务单元中,以一个服务的形式实现。(3)独立性:每个微服务独立运行,互不干扰。服务间仅能通过它们公开的接口进行通信。(4)扩展性:基于微服务的系统可以持续跟进多变的业务环境,支持任何形式的修改。(5)模块性:基于微服务的系统由独立的组件组成,各个组件 ...
【技术保护点】
1.一种单体应用微服务化的方法,其特征在于,包括以下步骤:(1)调用分析:通过分析打包文件的字节码,获取应用代码中类之间的方法调用关系,从而分析出应用中的调用链,生成以球表示类节点,箭头表示调用关系的调用图;(2)模块拆分:对于步骤(1)生成的调用图,将所有的入度为0的节点作为入口,然后依次以入口为起点进行有向图的广度优先遍历找到所有的下层节点,并将该起点与此次遍历结果一起作为一个将要拆分出去的微服务模块,按照此规则将一个完整的项目分为多个微服务模块;如果同一个节点被不同的微服务模块共用则做出标识;(3)框架适配:让微服务模块适配不同的微服务框架,每个微服务模块单独进行开发和部署,实现单体应用的微服务化。
【技术特征摘要】
1.一种单体应用微服务化的方法,其特征在于,包括以下步骤:(1)调用分析:通过分析打包文件的字节码,获取应用代码中类之间的方法调用关系,从而分析出应用中的调用链,生成以球表示类节点,箭头表示调用关系的调用图;(2)模块拆分:对于步骤(1)生成的调用图,将所有的入度为0的节点作为入口,然后依次以入口为起点进行有向图的广度优先遍历找到所有的下层节点,并将该起点与此次遍历结果一起作为一个将要拆分出去的微服务模块,按照此规则将一个完整的项目分为多个微服务模块;如果同一个节点被不同的微服务模块共用则做出标识;(3)框架适配:让微服务模块适配不同的微服务框架,每个微服务模块单独进行开发和部署,实现单体应用的微服务化。2.根据权利要求1所述的一种单体应用微服务化的方法,其特征在于,在模块拆分阶段后,进入人工修正阶段:用户根据调用图再结合自己对业务的理解对模块拆分的结果做出适当的修正,如果某个微服务模块拆分的过于分散,可以选择将相同和相近业务的几个微服务模块合并到一起,生成一个微服务模块;如果...
【专利技术属性】
技术研发人员:周晓勇,李善平,李明华,朱维阳,
申请(专利权)人:浙江网新恒天软件有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。