一种基于云端环境的微服务开发方法技术

技术编号:29933087 阅读:9 留言:0更新日期:2021-09-04 19:04
本发明专利技术的基本思想是通过打通本地开发环境和云端环境后改变数据请求路由,从而解决微服务架构下复杂的开发环境问题。实现步骤如下:S1本地开发环境中的微服务注册到云端容器环境的注册中心时,给本地开发环境的微服务加标签以区分本地开发环境和云端容器环境的微服务,其中,本地开发环境的微服务和云端容器环境的微服务是逻辑对等的两个微服务;S2在开发微服务时,本地开发环境发出服务请求访问云端容器环境;S3网关及远程调用进行服务发现时,在逻辑对等的两个微服务中优先识别带有标签的微服务,作出正确的路由。通过以上方法,本发明专利技术可有效提高开发效率。发明专利技术可有效提高开发效率。发明专利技术可有效提高开发效率。

【技术实现步骤摘要】
一种基于云端环境的微服务开发方法


[0001]本专利技术涉及计算机
,具体涉及微服务开发领域,尤其涉及一种基于云端环境的微服务开发方法。

技术介绍

[0002]随着移动互联网日渐成熟以及服务于制造业的工业互联网平台逐步兴起,系统开发由原来单体式架构的业务服务逐渐被拆分成多个由许多松散耦合且可独立部署的较小组件或服务组成的微服务应用。在微服务架构下,系统开发具有更易于开发和维护、单个服务启动快、技术栈不受限等优点。然而随着微服务应用的数目剧增,其带来的问题也逐渐显露,繁杂的配置、更高成本的运维以及微服务应用之间错综复杂的依赖等,开发人员本地的开发环境也面临同样的问题。由于微服务架构带来开发环境的复杂度,开发人员需要花费大量时间和精力维护开发环境,包括正在开发的微服务所依赖的其它微服务、数据库资源、其它集成系统环境以及基础样例数据等等。
[0003]从开发人员的角度看,整个系统可以分为两部分:正在开发的,和开发依赖的服务。正在开发的部分一般运行在IDE(Integrated Development Environment,集成开发环境)中,便于开发人员进行调试;开发依赖的部分只要易于和正在开发的部分进行联调。应对微服务架构下复杂的开发环境问题,现有的解决方法有以下几种:一、全部在本地运行,即将所有的服务都编织在一个docker

compose文件,全部在本地启动。可以将正在开发的运行在HOST上,通过端口映射配置依赖关系。这种方法的好处是简单且易于开发,但是本地配置环境十分复杂,需要花费大量时间和精力维护开发环境,随着服务越来越多,大量本地数据、样例数据及部分配置数据等存储对本地服务器配置要求极高,几十个服务一起运行往往无法承受。
[0004]二、全部在云端运行,即所有服务部署在云端,正在开发的部分也部署到云端,远程联调。这种方法解决了本地配置环境复杂和数据存储困难的问题,但是云端相对不透明的环境对开发而言,复杂的依赖指向无法快速定位到需要调用和调试的微服务,会带来远程调用和调试困难的问题。
[0005]三、部分在本地或者web端、部分在云端运行,即将正在开发的服务以及向正在开发的服务发送请求的服务放在本地/web端,其余放在云端运行。结合附图1所示,比如开发人员需开发服务B,数据流向是服务A

服务B

服务D

服务E,则向正在开发的服务发送请求的服务A,以及正在开发的服务B都需要在本地,其余服务如服务D、服务E可部署在云端。这是一种相对折中的方法,也是大部分微服务开发使用的方法,但是当发送请求的服务数量增加且复杂度增加时,同样会出现大量本地数据、样例数据及部分配置数据等存储困难的问题,同时在本地的服务无法与其他开发人员共享,比如上述例子中的服务A [1]。
[0006]为了改进以上已有的解决方法,有必要专利技术一种基于云端环境的微服务开发方法,解决开发环境复杂需花费大量时间维护的困难,从而提高开发效率和简易度。

技术实现思路

[0007]本专利技术是为了解决微服务架构下开发环境复杂的问题,包括本地服务器配置不足、远程调试困难以及无法共享发送请求的服务,通过打通本地开发环境和云端环境后改变数据请求路由,而提出的一种基于云端环境的微服务开发方法。
[0008]为实现上述目的,本专利技术提出的一种基于云端环境的微服务开发方法,其中,云端有相互隔离的命名空间(namespace),开发人员在命名空间中有一套自己的微服务开发环境,即云端容器环境;通过VPN工具建立网段互通,连通云端容器环境网络和本地开发环境。
[0009]上述方法包括以下步骤:S1本地开发环境中的微服务注册到云端容器环境的注册中心时,通过给本地开发环境中的微服务加标签的方法区分本地开发环境和云端容器环境的微服务,其中,本地开发环境的微服务和云端容器环境的微服务是逻辑对等的两个微服务;S2在开发微服务时,本地开发环境发出服务请求访问云端容器环境,其中,服务请求包括微服务标签;S3网关及远程调用进行服务发现时,在逻辑对等的两个微服务中优先识别带有标签的微服务,作出正确的路由:如果在本地开发环境和云端容器环境中识别到加标签的微服务,服务请求优先转发至环境中带有标签的微服务;如果在本地开发环境和云端容器环境中没有识别到加标签的微服务,则服务请求转发至环境中默认的微服务。
[0010]其中,上述方法中的识别带有tag的微服务,包括但不限于以下方法:将已编译的公共程序包引入到本地开发环境和云端容器环境的所有微服务中,并在微服务中运行,已编译的公共程序包可获取和识别服务请求的微服务标签;或者在微服务容器内通过边车模式(Sidecar pattern)识别:在本地开发环境和云端容器环境的所有微服务容器内给微服务配备边车代理,即容器内至少包含微服务和边车代理,当服务请求发出时,由边车代理获取和识别标签,决定路由方向,微服务代码及功能不受影响。
[0011]可选地,上述方法中的标签,可以是任意字符,包括但不限于tag。
[0012]可选地,上述方法中的标签,可以以多种形式存在,包括但不限于放在浏览器cookie里、指定HTTP头(HTTP header)请求、作为参数请求提交。
[0013]可选地,上述方法中区分本地开发环境加了标签的微服务和云端容器环境中的微服务的方式,还包括在注册中心注册微服务时添加属性以区分所述逻辑对等的两个微服务。
[0014]需要说明的是,以添加属性的方式区分微服务可选地,上述方法中逻辑对等的两个微服务,即加标签的本地开发环境的微服务和云端容器环境的微服务,包含的代码可以有差异,本地开发环境中的带有标签的微服务代码因开发需求不断修改。
[0015]本专利技术对比已有技术具有以下创新点:1. 本专利技术通过只保留正在开发的微服务在本地环境,其余微服务均运行在云端的方法,降低微服务开发环境的复杂度,确保本地环境配置相对简单,且解决了本地样例数
据及部分配置数据等存储困难的问题,无需再花费大量时间维护开发环境,提高开发效率。
[0016]2. 本专利技术通过给微服务打标识的方法,在进行服务查找时能够快速定位请求数据的流向,相较于云端相对黑盒的环境,本专利技术可以提高准确率和开发效率。
[0017]3. 本专利技术通过把正在开发的微服务部署在本地环境,其余不作改变的微服务仍然保留在云端环境的方法,可以保证云端微服务或正在使用的微服务代码及功能不受开发影响。
[0018]4. 本专利技术把当前微服务开发需要依赖的微服务保留在云端环境,相较于现有技术中微服务开发需要依赖的微服务存储在本地的方式,开发人员可以重用保留在云端环境的微服务,提升协同工作的可能性并提高开发效率。
附图说明
[0019]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1是现有技术中服务之间抽象出来的依赖关系,箭头代表数据流向。
[0020]图2是根据本专利技术的实施例本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于云端环境的微服务开发方法,其中,云端有相互隔离的命名空间(namespace),开发人员在命名空间中有一套自己的微服务开发环境,即云端容器环境;通过VPN工具建立网段互通,连通各自云端容器环境网络和本地开发环境;其特征在于,包括以下步骤:S1本地开发环境中的微服务注册到云端容器环境的注册中心时,通过给所述本地开发环境中的微服务加标签的方法,区分所述本地开发环境和所述云端容器环境的微服务,其中,所述本地开发环境的微服务和所述云端容器环境的微服务是逻辑对等的两个微服务;S2在开发微服务时,所述步骤S1的本地开发环境发出服务请求访问所述步骤S1的云端容器环境,其中,所述服务请求包括微服务标签信息;S3网关及远程调用进行服务发现时,在所述步骤S1的逻辑对等的两个微服务中优先识别带有标签的微服务,作出正确的路由:如果在所述步骤S1的本地开发环境和云端容器环境中识别到加标签的微服务,所述步骤S2中的服务请求优先转发至环境中带有标...

【专利技术属性】
技术研发人员:刘圣质刘沛
申请(专利权)人:广州易行数字技术有限公司
类型:发明
国别省市:

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

1