dev,test环境公用一个Eureka的总结

需求1:保证不同环境服务调用稳定

dev环境存在调用方A,提供方B
test环境存在调用方C,提供方D
(A,C同一个工程,B,D同一个工程)
期望:A->B,C->D,dev环境和test环境下的服务调用不会乱串,必须在eureka上报中指定自己的所属分区

配置application-test.yml(调用方和提供方都必须指定)

eureka:
  instance:
    metadata-map:
      zone: test

application-test.yml指定后,application-dev.yml的配置不需要特别指定,以默认的zone即可(什么都不用写)。
这样,在服务在Eureka中注册成功后,从Eureka中拉取全部注册的Applications信息,当applications中存在多个实例,ribbon会过滤掉zone与当前服务zone不同的服务,只会连接属于同一个zone的服务实例。

需求2:dev环境连接test环境中的服务

dev环境存在调用方A,提供方B
test环境存在调用方C,提供方D
(A,C同一个工程,B,D同一个工程)
本地dev环境中经常需要进行调试,调试的时候必须启动服务A,服务B,组成完成的调用链,假如涉及的服务比较多,这样耗时耗力,很不现实。
所以,产生了需求:有时候只变更了服务A,服务B不需要启动,A发起对B的调用使用test环境的服务D代替。
在dev,test网络隔离的情况下,我们必须要通过转发连通test环境的服务才能实现本地服务调用测试的依赖。

配置application-test.yml(提供方配置)

所以test环境的服务上报的hostname必须是跳板机的公网ip或者域名,port如果不指定则和server.port一致。

eureka:
  instance:
    hostname: example.com

配置nginx

配置完成后需要在nginx中开启端口转发至对应的内网ip:port
如果对应的域名的端口号(运营商对于很多常见的端口都会做禁封处理,如8080,可以使用telnet测试对应的端口是否被禁封)被禁封,可以在上报eureka的时候使用高端口(>30000),然后上述配置改为

eureka:
  instance:
    non-secure-port: 40004
    hostname: example.com

完整配置

如果需要满足需求1、需求2,请拷贝下述配置即可

eureka:
  instance:
    hostname: example.com
    metadata-map:
      zone: test
  client:
    serviceUrl:
      defaultZone: http://example.com/eureka/eureka
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值