问题现象:在项目实施过程中,开发人员或测试人员在DEV环境测试验证时,经常会出现之前测试通过的功能又报错了,原因是其他开发人员启了本地服务,导致线上流量负载到本地去了;不仅增加了项目成员的工作量,也增加了项目成本;那么,该如何解决这个问题呢?
解决方法:推荐使用开发者模式组件,那么大家会有疑问:
什么是开发者模式组件?
使用开发者模式组件是否有相应的前提条件?开发者模式有哪些特性?
开发者模式有哪些使用场景等等。不要急,接下来我们会一一解答。
组件概述
概述
Hzero-starter-developer-route开发者模式组件是为了解决在融合开发环境下,开发人员本地代码调试问题,开发人员可以在统一的环境中使用前端、Swagger等渠道进行代码调试,也便于开发测试问题。
注:
-
网关应用开发者组件后,当接口请求对应服务时,网关会优先路由到开发者服务。
-
普通服务应用开发者组件时,当服务Feign调用其他服务接口时,会优先调用开发者服务。
主要特性
-
根据动态路由实现统一环境开发和本地调试。
-
组件根据配置标记和登录用户名进行匹配,实现请求路由的动态转发。
快速入门
前提条件
在网关依赖开发者路由组件,建议仅在开发环境中使用。
下面以网关服务引用开发者为例:
<dependency>
<groupId>org.hzero.starter</groupId>
<artifactId>hzero-starter-developer-route</artifactId>
<optional>true</optional>
</dependency>
以上依赖加入网关服务(Hzero-gateway),启动后生效。
注:依赖应放在其他组件依赖后,避免覆盖Hzero-starter-core等组件的版本号,出现错误。
创建账户
在【系统管理】【用户管理】【子账户管理】中创建帐号
如果系统中已存在自己带工号的账户,则可跳过该步骤。
通过环境变量为服务指定开发者
eureka.instance.metadata-map.developer=xxx
注:这种方式配置起来比较简单,但有可能因为Idea缓存的原因导致配置失效,所以在使用时需要在注册中心上观察该服务的元数据是否正常。
Swagger测试或界面测试
用该账号获取的Token访问服务时,会自动路由到对应的开发者服务上;而找不到开发者路由的情况下,会优先走非开发者服务,所以一般情况下不会影响环境(除非环境中的服务所有实例都挂了,会尝试走开发者服务)。
先确保服务具备Developer的元数据,查看地址[Dev.hzero.org:8000/eureka/apps]
Swagger测试
跳转到登陆界面,使用自己工号的账号登陆;Swagger上调用接口,并在开发者服务上打断点;断点进来,重复调用多次,均走开发者服务。
界面测试
登陆界面,使用自己工号的账号登陆;反复访问该断点的接口;断点进来,重复调用多次,均走开发者服务
开发环境使用Admin账户登陆,并反复访问该断点的接口,均不会进入开发者服务。
通过以上的描述,想必大家对开发者模式都有了一定的了解了,总的来说就是想要改变哪个服务的负载均衡策略,就需要在哪个服务引入开发者依赖;网关调用时在网关引入,服务间调用时在源服务引入。接下来,欢迎大家可以在线下实践,发现开发者模式组件带来的便利。
下期我们将讲述开发者模式组件系列二之组件高级特性,敬请期待。
下期预告
干货分享 | HZERO系列组件之开发者模式组件(下),组件高级特性
往期推荐
1汉得企业级数字化PaaS平台 HZERO 1.9.0 版本正式发布!
2汉得aPaaS低代码平台-飞搭 2.3.0 RELEASE正式发布!
3重磅发布 | 汉得iPaaS全域集成平台 集星獭 1.5.0 版本正式发布
4免费试用 | 汉得企业级PaaS平台HZERO Lite安装版 1.9.0 正式发布!
5干货分享 | HZERO系列组件之消息管理组件,满足您的多种发送需求
6干货分享 | HZERO系列组件之数据分发组件(一),广播表快速入门
7干货分享 | HZERO系列组件之数据分发组件(二),ElasticSearch同步方案
联系我们
产品试用请登录开放平台。请在 PC 端打开:
https://open.hand-china.com/market-home/trial-center/
产品详情请登录开放平台:
https://open.hand-china.com/document-center/
如有疑问登录开放平台提单反馈:
▲ 更多精彩内容,扫码关注 “四海汉得” 公众号