一种微服务运行管理工具的制作方法

文档序号:11063359阅读:393来源:国知局
一种微服务运行管理工具的制造方法与工艺

本发明涉及业务应用技术领域,特别是涉及一种微服务运行管理工具。



背景技术:

业务应用系统微服务化后,业务应用系统被拆分成为几百甚至几千个微服务,每个微服务包含独立的配置,独立的运行容器,作为一个独立的服务启动。大型的企业应用系统一般由多个应用系统实例组成集群,微服务化后,每个微服务也会根据其提供的服务组成不同的集群,由分布式服务注册中心进行调度,从而实现微服务的负载均衡,以提供稳定可靠的服务。

基于Dropwizard微服务架构的微服务部署不同于一般的Java企业级Web应用,它不依赖中间件,每个微服务自带服务启动和运行的容器,单个微服务启动和部署比较简单,但是在业务应用系统的集群环境下,每个业务应用系统被拆分成为几百甚至几千的微服务,微服务的部署、监视和控制等运行维护的工作量十分庞大。目前只有tomcat、weblogic等商业应用中间件供集群部署、监控能力,但是这些应用中间件不能提供微服务的部署和监控。在没有专门的发布与运行管理功能的情况下,微服务的部署和监控一般由人工远程登录服务器进行微服务发布、升级、启动和停止等操作。由于集群环境的复杂性,可能出现多种类多版本操作系统,再加上微服务拆分粒度小,数量庞大,这就需要大量不同平台的专业人员来进行日常的运维工作。系统部署、升级工作量庞大,人工操作容错性差,运维质量得不到保证。



技术实现要素:

本发明的目的是提供一种微服务运行管理工具,以解决应用系统的运行中人工对微服务进行部署控制带来的效率低、错误率较高的问题。

为解决上述技术问题,本发明提供一种微服务运行管理工具,包括:

注册模块,用于对微服务资源库、微服务信息、微服务版本信息以及服务器信息进行注册;

微服务部署模块,用于采用代理服务的方式获取部署文件以及配置数据,根据所述部署文件以及所述配置数据生成配置文件,将微服务部署到服务器上;

微服务控制模块,用于通过与代理服务的远程通信,由代理服务执行相应的命令以实现对微服务的控制。

可选地,所述微服务部署模块部署模式包括:微服务与服务器的多对多部署、根据微服务实例将一个微服务部署到多台服务器、在一台服务器上部署多个微服务。

可选地,还包括:

微服务监控模块,用于统计Java虚拟机运行时的状态信息,所述状态信息包括Java虚拟机内存使用情况、物理内存使用情况以及Java虚拟机的线程数。

可选地,还包括:

服务器监控模块,用于对服务器的性能状态信息、网络状态信息以及系统进程信息进行监控。

可选地,所述性能状态信息包括CPU、内存以及交换区的性能参数;所述网络状态信息包括适配器名称、发送字节数、接收字节数以及网络使用率;所述系统进程信息包括进程ID、进程名、CPU使用率、用户和命令行。

可选地,还包括:

微服务日志模块,用于将生成的日志存储至分布式文件系统,并从所述分布式文件系统中调用日志进行读取或查询。

可选地,所述微服务资源库包括FTP服务器地址、登录信息;

所述微服务信息包括名称、微服务部署子路径和微服务图标;

所述微服务版本信息包括版本号、微服务Jar包和微服务配置;

所述服务器信息包括服务器IP、服务器安装子目录和注册中心启动模式。

可选地,所述微服务部署模块预先将微服务部署文件上传至FTP服务器,在应用部署时采用代理服务的方式从所述FTP服务器下载所述部署文件。

可选地,还包括:数据库,用于存储微服务运行管理工具产生的各数据信息。

可选地,还包括:显示模块,用于向用户提供部署以及运维操作的图形化显示。

本发明所提供的微服务运行管理工具,采用注册模块对微服务资源库、微服务信息、微服务版本信息以及服务器信息进行注册;微服务部署模块采用代理服务的方式获取部署文件以及配置数据,根据部署文件以及配置数据生成配置文件,将微服务部署到服务器上;微服务控制模块通过与代理服务的远程通信,由代理服务执行相应的命令以实现对微服务的控制。本发明所提供的微服务运行管理工具,有效解决了大规模集群中的应用系统微服务的配置、部署、运行控制等问题,减少了远程人工操作的环节,提高了微服务发布和运行管理的效率,降低了人工操作的错误率。进一步地,本申请具备实时监控能力,快速准确查询微服务状态、服务器状态以及微服务的日志等信息的功能。

附图说明

为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明所提供的微服务运行管理工具的一种具体实施方式的结构框图;

图2为本发明所提供的微服务运行管理工具的另一种具体实施方式结构框图;

图3为本发明所提供的微服务运行管理工具的具体实施过程示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明所提供的微服务运行管理工具的一种具体实施方式的结构框图如图1所示,其具体可以包括:

注册模块1,用于对微服务资源库、微服务信息、微服务版本信息以及服务器信息进行注册;

微服务部署模块2,用于采用代理服务的方式获取部署文件以及配置数据,根据所述部署文件以及所述配置数据生成配置文件,将微服务部署到服务器上;

微服务控制模块3,用于通过与代理服务的远程通信,由代理服务执行相应的命令以实现对微服务的控制。

具体地,微服务资源库包括FTP服务器地址、登录信息;微服务信息包括名称、微服务部署子路径和微服务图标;微服务版本信息包括版本号、微服务Jar包和微服务配置;服务器信息包括服务器IP、服务器安装子目录和注册中心启动模式。

本发明所提供的微服务运行管理工具中,微服务部署模块部署模式包括:微服务与服务器的多对多部署、根据微服务实例将微服务部署到多台服务器、在一台服务器上部署多个微服务。

本发明实施例中,微服务部署模块预先将微服务部署文件上传至FTP服务器,在应用部署时采用代理服务的方式从所述FTP服务器下载所述部署文件。本发明微服务运行管理工具通过与可跨平台的代理服务进行交互,实现了微服务的图形化配置式的部署,有效解决了大规模集群环境下的微服务部署工作量庞大的问题;微服务运行管理工具还通过对微服务无侵入式的监视运行数据采集,微服务的监控不依赖向微服务内部植入插件,运行数据采集和发送通过代理服务完成,不影响微服务的正常运行,有效降低了微服务的配置和部署难度。

需要指出的是,本申请中微服务为大型业务系统拆分,可独立部署的服务。业务应用系统拆分成为基于Dropwizard微服务架构的微服务后,具有微服务粒度小,微服务数量庞大的特点,部署、监视和控制较传统Web应用复杂,运维工作量大。运维人员在运维过程中也存在对集群环境微服务出现的故障难以快速排查和准确定位的问题。本发明实施例通过对微服务的发布与运行提供集中式的管理,提高了业务应用系统各个微服务运行环境的稳定性和可靠性,保证业务应用系统的各个微服务能够正常运行和提供服务。

本发明针对集群环境中基于Dropwizard微服务架构的微服务发布和运行的模式,提供了微服务资源的统一管理、微服务多维度的部署、微服务的控制和运行数据采集、微服务监控等功能。如图2本发明所提供的微服务运行管理工具的另一种具体实施方式结构框图所示,作为一种优选实施方式,本申请还可以进一步包括:

微服务监控模块4,用于统计Java虚拟机运行时的状态信息,所述状态信息包括Java虚拟机内存使用情况、物理内存使用情况以及Java虚拟机的线程数。

服务器监控模块5,用于对服务器的性能状态信息、网络状态信息以及系统进程信息进行监控。

其中,性能状态信息包括CPU、内存以及交换区的性能参数;所述网络状态信息包括适配器名称、发送字节数、接收字节数以及网络使用率;所述系统进程信息包括进程ID、进程名、CPU使用率、用户和命令行。

微服务日志模块6,用于将生成的日志存储至分布式文件系统,并从所述分布式文件系统中调用日志进行读取或查询。

本发明实施例中日志集中进行收集和读取,微服务日志不再以每个微服务为单位的文件形式存储,提高了日志检索效率,加快了系统问题的排查时间,大大提高了运维效率,为以后的微服务日志分析提供数据基础。

此外,本发明实施例还可以进一步包括:数据库,用于存储微服务运行管理工具产生的各数据信息。

显示模块,用于向用户提供部署以及运维操作的图形化显示。通过这样的设置,使得微服务的部署配置更加简单快捷。向用户提供可视化的配置,用户能够准确快速的进行部署和微服务的日常运维操作,极大提高微服务运维效率。

目前由于微服务的部署局限性,部署工作量大、效率低,人工操作容错性差,监控维护难成本高。虽然目前市面已经有一些微服务监控的开源软件,但由于其具有侵入性,对微服务性能损耗较大,不利于微服务稳定可靠的为业务应用系统提供服务。另外,市面已经有一些微服务监控的开源软件存在监控力度小,无法快速、准确的定位服务故障的问题,这些也不利于服务的正常可靠的运行。本发明实施例通过代理服务的方式与微服务进行无关交互,从而达到服务监视的目的,有效地解决了大规模集群环境中服务器和微服务的运行数据的无侵入采集问题,有效地降低了微服务监控和微服务配置部署的难度。

请参照图3,下面对本发明所提供的微服务运行管理工具的具体实施过程进行进一步详细阐述。该系统的实现过程具体包括:

安装、启动代理服务程序,在需要部署微服务的服务器上安装代理服务程序并启动。代理服务程序是微服务发布与运行管理工具与微服务交互的重要组成部分,主要负责处理远程请求、文件下载、服务状态收集与转发。

注册微服务资源库,在微服务发布与运行管理工具中注册微服务资源库的FTP服务器地址、登录信息等。微服务发布与运行管理工具将微服务的部署包集中存储在FTP服务器中,应用部署的时候,代理服务通过访问FTP服务器,进行微服务部署包的下载。

注册微服务,在微服务发布与运行管理工具中注册微服务信息和微服务版本信息,微服务信息主要属性包括名称、微服务部署子路径和微服务图标,微服务版本信息主要属性包括:版本号、微服务Jar包和微服务配置。微服务信息与微服务版本信息是一对多的关系,一个微服务可以有多个版本信息,每个微应用版本对应一个微应用部署程序包和一个微服务配置。

注册服务器,在微服务发布与运行管理工具中注册服务器信息,服务器信息的主要属性包括服务器IP、微服务安装子目录和注册中心启动模式。注册服务器还对代理服务和服务注册中心进行了一些必要的参数的初始化。

微服务部署,在微服务发布与运行管理工具中提供了三种部署模式,一种是微服务与服务器的多对多部署,一种是根据微服务实例将微服务部署到多台服务器上,还有一种是在某一服务器上部署多个微服务。微服务部署是代理服务通过向FTP服务器下载微服务Jar包和根据配置数据自动生成配置文件实现的。

微服务控制,微服务控制主要包括微服务启动、停止、微服务的更新和卸载。微服务发布与运行管理工具通过与代理服务的远程通信,再由代理服务执行相应命令实现的这些功能。

服务器监视,服务器监视是代理服务通过集成的Sigar插件实现与服务器进行交互的,服务器监视主要监视服务器的性能状态、网络状态和系统进程,性能状态包括:CPU、内存和SWAP;网络状态包括适配器名称,发送字节数,接收字节数和网络使用率;系统进程包括:进程ID,进程名,CPU使用率,用户和命令行等。

微服务监视,微服务启动后,JVM的扩展插件加载并运行。插件运行时会自动统计JVM运行时状态信息,运行时状态信息主要包括:JVM内存使用情况、物理内存使用情况和JVM的线程数。

微服务日志,微服务发布与运行管理工具提供了微服务日志的扩展依赖包,这个扩展依赖包集成了支持分布式文件系统收集和存储的日志插件,微服务通过依赖这个扩展包可以向分布式文件系统存储日志,微服务的日志统一集中存储到分布式文件系统中,再由微服务发布与运行管理工具进行读取和查询。

综上,本发明所提供的微服务运行管理工具,采用注册模块对微服务资源库、微服务信息、微服务版本信息以及服务器信息进行注册;利用微服务部署模块采用代理服务的方式获取部署文件以及配置数据,根据部署文件以及配置数据生成配置文件,将微服务部署到服务器上;微服务控制模块通过与代理服务的远程通信,由代理服务执行相应的命令以实现对微服务的控制。本发明所提供的微服务运行管理工具,有效解决了大规模集群中的应用系统微服务的配置、部署、运行控制等问题,减少了远程人工操作的环节,提高了微服务发布和运行管理的效率,降低了人工操作的错误率。进一步地,本申请具备实时监控能力,快速准确查询微服务状态、服务器状态以及微服务的日志等信息的功能。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的微服务运行管理工具进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1