开发环境和测试环境共用Eureka

问题描述

在开发过程中会遇到一种情况,那就是只需要修改一个服务,但是这个服务依赖了其他的3个服务,导致开发人员在本地也要启动其他的3个服务,还要启动一个Eureka注册中心。问题显而易见,在依赖过多的情况下,本地需要启动很多无须修改的服务。

解决问题

在Eureka中有Region Zone的概念;

Region:可以简单的理解为地理上的分区,比如北京,上海等,没有具体大小的限制,我们可以根据项目的情况,可以自行合理的划分Region;

Zone:可以简单的理解为region内的具体的机房,比如说Region划分为北京,然后北京有两个机房,就可以在此Region之下划分出Zone1,Zone2两个Zone。

在调用的过程中会优先选择相同的Zone发起调用,当找不到相同名称的Zone时会选择其他的Zone进行调用,我们可以利用这个特性来解决本地启动需要启动多个服务的问题。

测试环境有所有的服务部署,需要将测试环境的服务Zone改成同一个,这个可以在appllo上指定。

eureka.instance.metadata-map.zone=test222

本地开发的时候将appllo的环境改成本地开发的模式:

env=Local

然后再修改本地缓存的配置文件,将你需要修改的那个服务的Zone改成自己特有的,只要不跟测试环境一样就行。

eureka.instance.metadata-map.zone=localJh

如果你要修改2个服务,那就改2个,这样当你访问你修改的服务A的时候,这个服务依赖了B,C,D三个服务,B和C本地没有启动,D服务需要修改,在本地启动了。D服务有相同的zone就会优先调用本地的D服务,B和C找不到相同的Zone就会选择其他的Zone进行调用,也就是会调到

测试环境的B和C的服务,这样一来就解决了本地部署多个服务的问题。

测试环境的调用会优先选择测试的Zone进行调用,所以不会影响测试环境,但前提是测试环境的服务都要启动着,不然会调到开发人员注册的服务商,zone特性图下所示:

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值