一种分布微服务研发平台制造技术

技术编号:36291077 阅读:55 留言:0更新日期:2023-01-13 10:03
本申请提出一种分布微服务研发平台。所述平台包括服务组件选择单元、代码生成单元、服务组件管理单元、运转单元、运维单元。前述平台可以通过服务组件选择单元、代码生成单元、服务组件管理单元、运转单元、运维单元之间的完成微服务项目的灵活开发、自动运转、跟踪运维,降低开发人员开发工作量,降低项目开发与维护难度。难度。难度。

【技术实现步骤摘要】
一种分布微服务研发平台


[0001]本申请涉及计算机技术,具体涉及一种分布微服务研发平台。

技术介绍

[0002]微服务,一种软件开发技术,是面向服务的体系结构(SOA)架构样式的一种变体,它提倡将单一应用程序划分成一组小的服务组件,服务组件之间互相协调、互相配合,为用户提供最终价值。分布微服务是指每个服务组件运行在其独立的进程中,服务组件与服务组件间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。
[0003]目前根据业务需求需要基于微服务组件生成微服务项目,并对微服务项目的运转状况进行跟踪运维。

技术实现思路

[0004]有鉴于此,本申请公开一种分布微服务研发平台。所述平台包括服务组件选择单元、代码生成单元、服务组件管理单元、运转单元、运维单元。所述服务组件管理单元,用于管理微服务组件;所述服务组件选择单元,用于向用户展示所述微服务组件,以及预设的连接符,以及,响应于用户针对任意微服务组件和针对相邻微服务组件之间的连接符的选择操作,将用户选择的所述任意微服务组件按照选择的所述连接符连接起来形成微服务项目;所述代码生成单元,用于基于所述用户选择的所述任意微服务组件和相邻微服务组件之间的连接符,生成与所述微服务项目对应的代码;所述运转单元,用于基于所述代码运转所述微服务项目;所述运维单元,用于追踪开始运转的微服务项目并进行运维。
[0005]在一些实施例中,所述代码生成单元,进一步用于:针对每一连接符,将所述连接符连接的两个微服务组件确定为组件组合,得到若干组件组合;根据所述连接符的类型,确定每一所述组件组合内两个微服务组件的调用关系;其中,如果所述连接符为第一类型,位置在前的微服务组件为需求组件,位置在后的微服务组件为被调用组件,如果所述连接符为第二类型,位置在前的组件为被调用组件,位置在后的组件为需求组件;针对每一微服务组件,获取包含所述微服务组件的目标组件组合,对获取的所述目标组件组合进行排序,其中,排序规则为将所述微服务组件作为被调用组件的目标组件组合位于将所述微服务组件作为需求组件的目标组件组合之前;针对排序完成的组件组合,将包含相同的被调用组件的组件组合进行合并;按照排序依次将合并后的每一组件组合作为当前组件组合,将当前组件组合中需求组件的执行结果,作为被调用组件对应的第二调用函数的入参,并将需求组件对应的第一调用函数放置于所述第二调用函数之前,得到调用函数集合;将得到的所述调用函数集合确定为与所述微服务项目对应的代码。
[0006]在一些实施例中,所述代码生成单元,进一步用于:针对排序完成的组件组合,筛选出包含相同的被调用组件的第一组件组合,得到组件组合集合;针对筛选出的每一所述第一组件组合,在位于所述第一组件组合之前的组件组合中,确定是否存在于所述第一组件组合内组件的调用关系相反的第二组件组合,以及,若存在所述第二组件组合,在所述组
件组合集合中删除所述第一组件组合;将所述组件组合集合中的组件组合进行合并,其中合并原则为保留全部需求组件,保留一个被调用组件。
[0007]在一些实施例中,所述运转单元,进一步用于:基于所述代码中各调用函数的排序,依次执行所述调用函数,完成所述微服务项目的运转。
[0008]在一些实施例中,所述平台还包括服务注册与发现单元;所述服务注册与发现单元,用于注册启动后的所述微服务组件,并记录所述微服务组件的访问地址;所述运转单元,进一步用于响应于针对目标微服务组件的调用函数,向所述服务注册与发现单元发起针对所述目标微服务组件的访问地址的获取请求,并在接收到所述获取请求后,基于所述获取请求包括的访问地址执行所述调用函数。
[0009]在一些实施例中,所述运维单元,进一步用于:周期性遍历所述微服务项目包含的各微服务组件的资源使用情况,并回收为占用的资源形成资源池;响应于任意微服务组件的资源申请请求,从所述资源池中分配所述资源申请请求中携带数量的资源至所述任意微服务组件,以确保所述任意微服务组件顺利运转。
[0010]在一些实施例中,所述任意微服务组件定期获取自身资源占用率,所述资源占用率是指微服务组件的资源实际使用量与资源分配量的占比,在所述自身资源占用率达到第一预设阈值的情形下,计算资源剩余量,基于所述资源剩余量的预设倍数发起资源申请请求。
[0011]在一些实施例中,所述运维单元,进一步用于:周期性遍历所述微服务项目包含的各微服务组件的资源占用率;计算所述资源占用率低于第二预设阈值的第一微服务组件的资源剩余量;回收所述第一微服务组件的资源剩余量中的至少部分资源量至资源池。
[0012]本申请还提出一种分布微服务研发方法。方法包括:向用户展示所述微服务组件,以及预设的连接符,以及,响应于用户针对任意微服务组件和针对相邻微服务组件之间的连接符的选择操作,将用户选择的所述任意微服务组件按照选择的所述连接符连接起来形成微服务项目;基于所述用户选择的所述任意微服务组件和相邻微服务组件之间的连接符,生成与所述微服务项目对应的代码;基于所述代码运转所述微服务项目;追踪开始运转的微服务项目并进行运维。
[0013]在一些实施例中,所述基于所述用户选择的所述任意微服务组件和相邻微服务组件之间的连接符,生成与所述微服务项目对应的代码,包括:针对每一连接符,将所述连接符连接的两个微服务组件确定为组件组合,得到若干组件组合;根据所述连接符的类型,确定每一所述组件组合内两个微服务组件的调用关系;其中,如果所述连接符为第一类型,位置在前的微服务组件为需求组件,位置在后的微服务组件为被调用组件,如果所述连接符为第二类型,位置在前的组件为被调用组件,位置在后的组件为需求组件;针对每一微服务组件,获取包含所述微服务组件的目标组件组合,对获取的所述目标组件组合进行排序,其中,排序规则为将所述微服务组件作为被调用组件的目标组件组合位于将所述微服务组件作为需求组件的目标组件组合之前;针对排序完成的组件组合,将包含相同的被调用组件的组件组合进行合并;按照排序依次将合并后的每一组件组合作为当前组件组合,将当前组件组合中需求组件的执行结果,作为被调用组件对应的第二调用函数的入参,并将需求组件对应的第一调用函数放置于所述第二调用函数之前,得到调用函数集合;将得到的所述调用函数集合确定为与所述微服务项目对应的代码。
[0014]前述平台中,可以通过服务组件选择单元、代码生成单元、服务组件管理单元、运转单元、运维单元之间的完成微服务项目的灵活开发、自动运转、跟踪运维,降低开发人员开发工作量,降低项目开发与维护难度。
附图说明
[0015]下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍。
[0016]图1为本申请实施例示出的一种分布微服务研发平台的结构示意图;
[0017]图2为代码生成单元执行的代码生成方法流程示意图;
[0018]图3为本申请示意的一种微服务组件组合结构图;
[0019]图4为本申请示意的一种微服务组件组合结构;
[0020]图5为本申请本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布微服务研发平台,其特征在于,所述平台包括服务组件选择单元、代码生成单元、服务组件管理单元、运转单元、运维单元;所述服务组件管理单元,用于管理微服务组件;所述服务组件选择单元,用于向用户展示所述微服务组件,以及预设的连接符,以及,响应于用户针对任意微服务组件和针对相邻微服务组件之间的连接符的选择操作,将用户选择的所述任意微服务组件按照选择的所述连接符连接起来形成微服务项目;所述代码生成单元,用于基于所述用户选择的所述任意微服务组件和相邻微服务组件之间的连接符,生成与所述微服务项目对应的代码;所述运转单元,用于基于所述代码运转所述微服务项目;所述运维单元,用于追踪开始运转的微服务项目并进行运维。2.根据权利要求1所述的平台,其特征在于,所述代码生成单元,进一步用于:针对每一连接符,将所述连接符连接的两个微服务组件确定为组件组合,得到若干组件组合;根据所述连接符的类型,确定每一所述组件组合内两个微服务组件的调用关系;其中,如果所述连接符为第一类型,位置在前的微服务组件为需求组件,位置在后的微服务组件为被调用组件,如果所述连接符为第二类型,位置在前的组件为被调用组件,位置在后的组件为需求组件;针对每一微服务组件,获取包含所述微服务组件的目标组件组合,对获取的所述目标组件组合进行排序,其中,排序规则为将所述微服务组件作为被调用组件的目标组件组合位于将所述微服务组件作为需求组件的目标组件组合之前;针对排序完成的组件组合,将包含相同的被调用组件的组件组合进行合并;按照排序依次将合并后的每一组件组合作为当前组件组合,将当前组件组合中需求组件的执行结果,作为被调用组件对应的第二调用函数的入参,并将需求组件对应的第一调用函数放置于所述第二调用函数之前,得到调用函数集合;将得到的所述调用函数集合确定为与所述微服务项目对应的代码。3.根据权利要求2所述的平台,其特征在于,所述代码生成单元,进一步用于:针对排序完成的组件组合,筛选出包含相同的被调用组件的第一组件组合,得到组件组合集合;针对筛选出的每一所述第一组件组合,在位于所述第一组件组合之前的组件组合中,确定是否存在于所述第一组件组合内组件的调用关系相反的第二组件组合,以及,若存在所述第二组件组合,在所述组件组合集合中删除所述第一组件组合;将所述组件组合集合中的组件组合进行合并,其中合并原则为保留全部需求组件,保留一个被调用组件。4.根据权利要求2或3所述的平台,其特征在于,所述运转单元,进一步用于:基于所述代码中各调用函数的排序,依次执行所述调用函数,完成所述微服务项目的运转。5.根据权利要求4所述的平台,其特征在于,所述平台还包括服务注册与发现单元、流量防护单元、链路跟踪单元;所述服务注册与发现单元,用于注册启动后的所述微服务组件,并记录所述微服务组
件的访问地址;所述流量防护单元,以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多维度保障所述微服务项目稳定性。所述链路跟踪单元,将调用请求还原成调用链...

【专利技术属性】
技术研发人员:陈宇张瑜瑾李哲峰栾继勇刘坤张盈涛孙丹宇张宇婷刘晓航于蕾韩旭蔡臻炎
申请(专利权)人:黑龙江邮政易通信息网络有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1