本发明涉及通信技术领域,更具体地说,涉及一种微服务开发平台、生成方法以及部署方法和装置。
背景技术:
近年来,微服务正在博客和社交媒体等领域获得越来越多的关注,它是一种软件架构的新名词。微服务可以为敏捷部署以及复杂企业应用实施提供巨大帮助,微服务具体可以为查询服务、评论服务或者排行榜服务等等。
传统单体式架构都存在层次结构复杂的特点,当升级某些功能时需要将该功能相关联的所有功能停止,并且由于层次结构复杂,会牵扯太多模块或者功能,不利于维护和升级。
技术实现要素:
有鉴于此,本发明提供一种微服务开发平台、生成方法以及部署方法和装置,以解决传统单体式架构层次结构复杂的问题。技术方案如下:
一种微服务开发平台,包括:核心层、功能层和业务层;
所述核心层包括至少一个预先生成的功能单元;
所述功能层包括至少一个功能组件,所述功能组件用于根据预设组件构建规则从所述核心层调取至少一个所述功能单元,以实现所述功能组件对应的功能;
所述业务层包括至少一个微服务,所述微服务用于根据预设服务构成规则从所述功能层调取至少一个所述功能组件,以实现对应的微服务。
优选的,所述业务层,还包括:
至少一个微应用,所述微应用用于根据预设应用构成规则调取至少一个所述微服务,以实现对应的微服务。
优选的,所述功能单元,包括:
应用容器单元、服务注册/发现单元、集群管理单元、资源调度单元和资源申请/释放单元。
优选的,所述功能组件,包括:
控制器、路由器、跟踪监控器和性能管理器。
一种微服务生成方法,应用于上述技术方案任意一项所述的微服务开发平台,所述微服务开发平台包括核心层、功能层和业务层,所述微服务生成方法,包括:
接收微服务生成指令,所述微服务生成指令中包含目标微服务对应的功能集合;
依据所述功能集合确定所述目标微服务对应的目标功能组件;
依据预设服务构成规则从所述功能层确定所述目标功能组件对应的至少一个功能组件;
建立所述目标微服务与其对应的目标功能组件间的调用关系;
依据所述预设组件构建规则从所述核心层确定与所述目标功能组件对应的至少一个功能单元;
建立所述目标功能组件与其对应的功能单元间的调用关系。
一种微服务部署方法,服务注册/发现单元在集群内的每个节点上启动一个注册中心和监控中心,包括:
当所述注册中心接收到与所述注册中心对应的微服务发送的注册请求信息时,将所述注册请求信息同步至集群内除本注册中心以外的其他注册中心;
当所述监控中心检测到所述微服务对应的节点运行状态异常时,向所述服务注册/发现单元发送提示信息;
当所述服务注册/发现单元接收到所述提示信息时,删除所述节点,并为所述微服务重新分配一个可用节点。
优选的,还包括:
当所述服务注册/发现单元检测到新节点时,将所述新节点添加至所述集群内。
优选的,所述注册中心通过Gossip协议与所述集群内除本注册中心之外的其他注册中心进行周期性通信。
一种微服务部署装置,包括:服务注册/发现单元、注册中心和监控中心,其中,所述注册中心和所述监控中心是服务注册/发现单元在集群内的每一个节点上启动的;
所述注册中心,用于当接收到与所述注册中心对应的微服务发送的注册请求信息时,将所述注册请求信息同步至集群内除本注册中心以外的其他注册中心;
所述监控中心,用于当检测到所述微服务对应的节点运行状态异常时,向所述服务注册/发现单元发送提示信息;
所述服务注册/发现单元,用于当所述服务注册/发现单元接收到所述提示信息时,删除所述节点,并为所述微服务重新分配一个可用节点。
优选的,所述服务注册/发现单元,还用于:
当检测到新节点时,将所述新节点添加至所述集群内。
相较于现有技术,本发明实现的有益效果为:
以上本发明提供的一种微服务开发平台、生成方法以及部署方法和装置,该微服务开发平台针对业务层中各个微服务的功能集合对应的目标功能组件,在功能层为目标功能组件分配对应的各个功能组件,并且在核心层为各个功能组件分配对应的预先生成的功能单元。基于本发明公开的方法,通过建立轻量级架构,可实现不同微服务的便捷开发,并且,由于每个微服务职责单一,因此,开发周期短,并且灵活性强。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例一公开的一种微服务开发平台结构示意图;
图2为本发明实施例二公开的一种微服务生成方法流程图;
图3为本发明实施例三公开的一种微服务部署方法流程图;
图4为本发明实施例四公开的一种微服务部署装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一公开了一种微服务开发平台,结构示意图如图1所示,微服务开发平台包括:核心层101、功能层102和业务层103;
核心层101包括至少一个预先生成的功能单元;
功能层102包括至少一个功能组件,功能组件用于根据预设组件构建规则从核心层调取至少一个所述功能单元,以实现功能组件对应的功能;
业务层103包括至少一个微服务,微服务用于根据预设服务构成规则从功能层调取至少一个功能组件,以实现对应的微服务。
需要说明的是,功能单元包括但不局限于应用容器单元、服务注册/发现单元、集群管理单元、资源调度单元和资源申请/释放单元,可根据实际需要具体设置。
还需要说明的是,功能组件包括但不局限于控制器、路由器、跟踪监控器和性能管理器,可根据实际需要具体设置,其中,控制器可用于应用发布、应用扩展和应用升级,路由器可用于请求发现、路由注册和负载均衡,跟踪监控器可用于发起跟踪请求控制和监控,性能管理器可用于管理移动终端设备、Web服务器和服务端。
还需要说明的是,业务层还包括:至少一个微应用,微应用用于根据预设应用构成规则调取至少一个微服务,以实现对应的微服务。
本发明实施例公开的一种微服务开发平台,包括核心层、功能层和业务层;核心层包括至少一个预先生成的功能单元;功能层包括至少一个功能组件,功能组件用于根据预设组件构建规则从核心层调取至少一个功能单元,以实现功能组件对应的功能;业务层包括至少一个微服务,微服务用于根据预设服务构成规则从功能层调取至少一个功能组件,以实现对应的微服务。基于本发明公开的方法,通过建立轻量级架构,可实现不同微服务的便捷开发,并且,由于每个微服务职责单一,因此,开发周期短,并且灵活性强。
实施例二
基于上述本发明实施例一公开的微服务开发平台,本发明实施例二则提供一种微服务生成方法,该方法应用于上述微服务开发平台,微服务开发平台包括核心层、功能层和业务层,微服务生成方法的具体执行过程,包括如下步骤:
S201,接收微服务生成指令,微服务生成指令中包含目标微服务对应的功能集合;
S202,依据功能集合确定目标微服务对应的目标功能组件;
S203,依据预设服务构成规则从功能层确定目标功能组件对应的至少一个功能组件;
S204,建立目标微服务与其对应的目标功能组件间的调用关系;
S205,依据预设组件构建规则从核心层确定与目标功能组件对应的至少一个功能单元;
S206,建立目标功能组件与其对应的功能单元间的调用关系。
本发明实施例公开的微服务生成方法,通过建立目标微服务与其对应的目标功能组件间的调用关系,目标功能组件与其对应的功能单元间的调用关系,建立微服务与功能单元的对应关系,当微服务运行时,可直接调用对应的功能单元。基于本发明公开的方法可实现不同微服务的便捷开发,并且,由于每个微服务职责单一,因此,开发周期短,并且灵活性强。
实施例三
基于本发明实施例一公开的微服务开发平台、实施例二公开的微服务生成方法,本发明实施三则公开一种微服务部署方法,服务注册/发现单元在集群内的每个节点上启动一个注册中心和监控中心,方法流程图如图3所示,包括如下步骤:
S301,当注册中心接收到与注册中心对应的微服务发送的注册请求信息时,将注册请求信息同步至集群内除本注册中心以外的其他注册中心;
在执行步骤S301的过程中,注册中心可通过Gossip协议与所述集群内除本注册中心之外的其他注册中心进行周期性通信。
S302,当监控中心检测到微服务对应的节点运行状态异常时,向服务注册/发现单元发送提示信息;
S303,当服务注册/发现单元接收到提示信息时,删除节点,并为微服务重新分配一个可用节点。
需要说明的是,当服务注册/发现单元检测到新节点时,可将新节点添加至集群内。
本发明实施例公开的微服务部署方法,通过去中心化的部署方式,在每一个节点上启动一个注册中心,不同节点的多个注册中心没有主次之分,每个注册中心的微服务规模大大减小,有效降低了系统瘫痪的风险。
实施例四
结合上述本发明实施例三公开的微服务部署方法,本实施例四则对应公开了执行上述微服务部署方法的微服务部署装置,结构示意图如图4所示,微服务部署装置包括:服务注册/发现单元401、注册中心402和监控中心403,其中,注册中心401和监控中心402是服务注册/发现单元在集群内的每一个节点上启动的;
注册中心401,用于当接收到与注册中心对应的微服务发送的注册请求信息时,将注册请求信息同步至集群内除本注册中心以外的其他注册中心;
监控中心402,用于当检测到微服务对应的节点运行状态异常时,向服务注册/发现单元发送提示信息;
服务注册/发现单元403,用于当服务注册/发现单元接收到提示信息时,删除节点,并为微服务重新分配一个可用节点。
需要说明的是,所述服务注册/发现单元403,还用于:当检测到新节点时,将新节点添加至所述集群内。
本发明实施例公开的微服务部署装置,通过去中心化的部署方式,在每一个节点上启动一个注册中心,不同节点的多个注册中心没有主次之分,每个注册中心的微服务规模大大减小,有效降低了系统瘫痪的风险。
以上对本发明所提供的微服务开发平台、生成方法以及部署方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素,或者是还包括为这些过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。