基于微服务的软件开发方法、装置及系统[发明专利]

阅读: 评论:0

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 201610096981.3
(22)申请日 2016.02.23
(71)申请人 中国水电工程顾问集团有限公司
地址 100120 北京市西城区德外六铺炕北
小街2号
申请人 中国水电顾问集团国际工程有限公
(72)发明人 黄小锋 张晶 
(51)Int.Cl.
G06F  9/44(2006.01)
G06F  9/445(2006.01)
(54)发明名称
基于微服务的软件开发方法、
装置及系统(57)摘要
本发明公开了一种基于微服务的软件开发
方法、装置及系统,属于软件开发技术领域。该方
法包括将待开发软件分解为若干微服务,并构建
微服务框架;将每个微服务分别作为一个独立的
开发、调试、部署和运行单元,进行独立开发;通
过微服务框架,实现若干微服务之间的注册、发
现、调用和监控,完成待开发软件的开发。该装置
包括微服务分解单元、微服务框架构建单元。该
系统包括微服务运行时容器和本地服务注册中
心。该方法、装置及系统能够降低大型复杂业务
系统的开发难度,克服传统JAR包或OSGI方式部
署成本高、
系统扩展性差和资源浪费的问题。权利要求书2页  说明书6页  附图2页CN 107102847 A 2017.08.29
C N  107102847
A
1.一种基于微服务的软件开发方法,其特征在于,包括以下步骤:
将待开发软件分解为若干微服务,并构建微服务框架;
将每个所述微服务分别作为一个独立的开发、调试、部署和运行单元,进行独立开发;
通过所述微服务框架,实现所述若干微服务之间的注册、发现、调用和监控,完成所述待开发软件的开发。
2.根据权利要求1所述的基于微服务的软件开发方法,其特征在于,当需要对所述待开发软件进行扩展时,通过对所述若干微服务中的任一或者若干独立地进行水平扩展实现。
3.根据权利要求1所述的基于微服务的软件开发方法,其特征在于,所述若干微服务包括Web微服务和若干业务微服务,
所述Web微服务用于对外提供HTTP访问,和,通过服务接口处理所述若干微服务的处理业务逻辑;
所述若干业务微服务用于具体业务。
4.根据权利要求1所述的基于微服务的软件开发方法,其特征在于,所述若干微服务之间能够通过RPC协议进行通信。
5.一种基于微服务的软件开发装置,其特征在于,包括微服务分解单元、微服务框架构建单元,
所述微服务分解单元用于将待开发软件分解为若干微服务;
所述微服务框架构建单元用于构建微服务框架,使得,通过所述微服务框架,能够实现所述若干微服务之间的注册、发现、调用和监控。
6.根据权利要求5所述的基于微服务的软件开发装置,其特征在于,还包括扩展单元,
所述扩展单元用于通过对所述微服务中的任一或者若干独立地进行水平扩展。
7.根据权利要求5所述的基于微服务的软件开发装置,其特征在于,所述若干微服务包括Web微服务和若干业务微服务,
所述Web微服务用于对外提供HTTP访问,和,通过服务接口处理所述若干微服务的处理业务逻辑;
所述若干业务微服务用于具体业务。
8.根据权利要求5所述的基于微服务的软件开发装置,其特征在于,所述若干微服务之间能够通过RPC协议进行通信。
9.基于微服务的软件开发系统,其特征在于,包括微服务运行时容器和本地服务注册中心,
所述微服务运行时容器用于为所述微服务的运行提供支撑;
所述本地服务注册中心用于微服务的注册发现、注册中心之间消息同步和事件广播、微服务集组建,和,所述微服务集中物理机的状态监测。
10.根据权利要求9所述的基于微服务的软件开发系统,其特征在于,所述微服务运行时容器包括轻量级服务器、运行指标收集器、服务发现器、服务注册器、负载均衡器、轻量级RPC中的一种或几种;
作为优选,所述负载均衡器选自软负载均衡及容错机制,或者,硬件负载均衡器;
作为优选,所述轻量级RPC用于提供基于接口方法的透明远程过程调用;
作为优选,所述本地服务注册中心用于维护服务提供者列表,其中,所述服务提供者列
表为一个服务接口名和服务地址的映射表,保存了业务系统内所有微服务对外提供的服务信息;
作为优选,所述本地服务注册中心通过心跳检测的方式获取集中各物理机的状态,当有机器宕机时,自动更新服务提供者列表,并向其他注册中心广播消息以实现服务列表同步更新;
作为优选,所述微服务注册用于,在微服务容器启动时,服务注册器向本地注册中心发送消息,将微服务对外提供的业务服务进行注册,同时服务发现器从注册中心获取该微服务调用的服务列表并缓存到微服务运行时容器的服务提供者列表中;
作为优选,所述服务发现器每隔一定时间向注册中心发送消息获取服务列表的校验码,并与缓存的校验码进行对比,校验不一致表明其所调用的服务地址发送变更,则服务发现器重新向本地注册中心发送请求获取服务列表;
本地注册中心监测服务发现器发送消息的时间间隔,并和设置的阈值进行对比,当超过阈值时,则认为此微服务容器异常,本地注册中心更新本地服务提供者列表删除该微服务对外发布的服务并广播消息到其他的服务注册中心。
基于微服务的软件开发方法、装置及系统
技术领域
[0001]本发明涉及软件开发技术领域,特别是涉及一种基于微服务的软件开发方法、装置及系统。
背景技术
[0002]随着企业级应用系统的规模和复杂度不断增加,系统变得更加笨重和庞大,这对系统的开发、部署和升级提出了新的挑战,对企业应用架构的高效性和扩展性提出了更高的要求。
保安单元[0003]模块化是解决复杂性问题的重要工具,可以把庞大的应用程序分割成多个模块,每个模块完成独立的功能,模块之间协同工作。这样的模块我们称为组件。这些组件可以进行单独开发、单独编译、单独测试,把所有的组件组合在一起得到了完整的系统。采用组件化的应用结构,使系统的结构更加清晰,简化大型应用系统在开发、部署和升级的难度,实现多种业务功能的分离。
[0004]传统实现组件的方式是通过库(library)或者面向开放服务网管(Open Service Gateway Initiative,OSGI)框架。
[0005]采用库的方式是将通用的、与业务逻辑无关的工具类打成JAR包放到Web应用相应的目录下,如J2EE平台的WEB-INF/lib目录。
手动抽油泵[0006]OSGI是一种动态模块化标准,它为模块化应用的开发定义了一个基础架构。基于OSGI架构的应用程序由一系列OSGI模块组建。一般根据业务功能将系统分解成多个OSGI模块,每个模块是一个独立的工程项目,包含了实现完整业务功能的所有前端代码和后端代码。基于OSGI架构的应用系统结构图参见附图1。
[0007]各业务模块通过中间层的OSGI动态模块框架整合到一个Web应用中,Web应用作为一个整体运行在服务器上。基于OSGI模块化的应用系统,实现了模块的单独开发,而且可以在不重启应用的情况下,动态地安装、卸载、启动和停止应用程序中的模块。
[0008]通过库实现组件化的方式,只是对后端工具类代码进行了封装,无法根据业务功能进行完整切分,各个业务功能的代码混杂在一起,调试和部署难度大,一个或多个JAR包的修改,需要重启整个应用。
[0009]基于OSGI模块化技术的业务应用系统,在开发期,可以实现模块的物理分离,每个业务模块独立开发和调试,但是在部署运行时,仍需要将多个模块耦合在一起发布到Web容器上。这种方式带来如下问题:首先,全部模块在一个Web应用中加载启动,对资源要求高,需要高配置的服务器或集来支撑系统的运行,部署成本高,而且不利于向云环境扩展。另外,不同的业务模块所需资源不同,有些可能是CPU密集型的,另一些可能是IO密集型的,在这种架构模式下,各个模块不能独立部署运
行,当出现性能问题时只能扩展整个业务系统,而不能针对模块扩展其资源能力,系统扩展性差,而且相同的模块在不同业务系统中需要重复部署,造成了资源浪费。
发明内容
[0010]有鉴于此,本发明提供一种基于微服务的软件开发方法、装置及系统,其采用一组微服务的方式来构建一个应用,通过将业务功能分解到各个离散的微服务中实现对系统功能组件的解耦,能够降低大型复杂业务系统的开发难度,克服传统JAR包或OSGI方式部署成本高、系统扩展性差和资源浪费的问题,从而更加适于实用。
[0011]为了达到上述第一个目的,本发明提供的基于微服务的软件开发方法的技术方案如下:
三相马达
[0012]本发明提供的种基于微服务的软件开发方法包括以下步骤:
[0013]将待开发软件分解为若干微服务,并构建微服务框架;
[0014]将每个所述微服务分别作为一个独立的开发、调试、部署和运行单元,进行独立开发;
[0015]通过所述微服务框架,实现所述若干微服务之间的注册、发现、调用和监控,完成所述待开发软件的开发。
[0016]本发明提供的基于微服务的软件开发方法还可采用以下技术措施进一步实现。[0017]作为优选,当需要对所述待开发软件进行扩展时,通过对所述若干微服务中的任一或者若干独立地进行水平扩展实现。
餐具架[0018]作为优选,所述若干微服务包括Web微服务和若干业务微服务,
[0019]所述Web微服务用于对外提供HTTP访问,和,通过服务接口处理所述若干微服务的处理业务逻辑;
[0020]所述若干业务微服务用于具体业务。
[0021]作为优选,所述若干微服务之间能够通过RPC协议进行通信。
[0022]为了达到上述第二个目的,本发明提供的基于微服务的软件开发装置的技术方案如下:
维夫饼干
主动防御[0023]本发明提供的基于微服务的软件开发装置包括微服务分解单元、微服务框架构建单元,
[0024]所述微服务分解单元用于将待开发软件分解为若干微服务;
[0025]所述微服务框架构建单元用于构建微服务框架,使得,通过所述微服务框架,能够实现所述若干微服务之间的注册、发现、调用和监控。
[0026]本发明提供的基于微服务的软件开发装置还可采用以下技术措施进一步实现。[0027]作为优选,所述基于微服务的软件开发装置还包括扩展单元,
[0028]所述扩展单元用于通过对所述微服务中的任一或者若干独立地进行水平扩展。[0029]作为优选,所述若干微服务包括Web微服务和若干业务微服务,
[0030]所述Web微服务用于对外提供HTTP访问,和,通过服务接口处理所述若干微服务的处理业务逻辑;
[0031]所述若干业务微服务用于具体业务。
[0032]作为优选,所述若干微服务之间能够通过RPC协议进行通信。
[0033]为了达到上述第三个目的,本发明提供的基于微服务的软件开发系统的技术方案如下:

本文发布于:2023-06-28 08:06:59,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/156053.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:服务   系统   业务   模块
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图