简介
前段时间因为前端吐槽开发环境接口总是不稳定 后来检查发现 因为本地和开发环境服务使用的同一个注册中心 本地启动服务之后会使得开发环境会轮询调到本地因为本地有的会打断点造成调用失败
之后查询资料可知使用springcloud分区可以解决。
1 eureka-servcie配置
eureka.client.region= us-east-1 //这是cloude默认值 无需配置
eureka.client.prefer-same-zone-eureka=true //配置使用分区 自己理解的从官网没找到解释
eureka.client.availability-zones.us-east-1=zone-1,zone-2,zone-3 //设置region下的区域
集群模式下也可以这样设置 无需配置哪个区域使用哪工注册中心
2 eureka-client配置
eureka.instance.metadata-map.zone=zone-1
gateway配置了zone-1 然后 调用服务如果一个 配置了 zone-1 和zone-2时 会一直调用配置了zone-1的服务
如果只是配置文件开发和本地使用的一份的话
这样就需要把参数使用启动参数
开发环境启动时也需要 带上参数 java -jar xx.jar -Deureka.instance.metadata-map.zone=zone-6
结论
这样通过分区就可以保证开发环境不会调用到本地。保证开发环境稳定 。
有的资料说 集群需要配置 区域路径 测试是无需配置 就是 在 eureka-service 配置 几个区域 client就可以使用区域 如果不配置区域的话 如果service端没有配置的区域 比如只配置了zone-1,zone-2 但是 client使用了zone-6之前测试的是如果没有配置zone-6的后端服务会报错但是 这次测试 又是好的 。网友可以自己再测一下 测试代码地址https://gitee.com/httpsei/spring-cloude-zone.git