默认注册consul的服务id为服务名-端口号,相同的服务名和端口号注册会覆盖

解决方式:

1.自定义Consul注册Id

import com.ecwid.consul.v1.ConsulClient;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
import org.springframework.cloud.consul.discovery.HeartbeatProperties;
import org.springframework.cloud.consul.discovery.TtlScheduler;
import org.springframework.cloud.consul.serviceregistry.ConsulRegistration;
import org.springframework.cloud.consul.serviceregistry.ConsulServiceRegistry; /**
* @describe: 自定义consul注册id
* @author: zhuCw
* @date: 2019/4/25 17:57
*/
public class RpsConsulServiceRegistry extends ConsulServiceRegistry {
public RpsConsulServiceRegistry(
ConsulClient client,
ConsulDiscoveryProperties properties,
TtlScheduler ttlScheduler,
HeartbeatProperties heartbeatProperties) {
super(client, properties, ttlScheduler, heartbeatProperties);
} @Override
public void register(ConsulRegistration reg) {
// 重新设计id,此处用的是名字也可以用其他方式例如instanceid、host、uri等
reg.getService()
.setId(
reg.getService().getName() + "-" + reg.getService().getAddress() + "-" + reg.getPort());
super.register(reg);
}
}
2. 放入容器

import com.ecwid.consul.v1.ConsulClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
import org.springframework.cloud.consul.discovery.HeartbeatProperties;
import org.springframework.cloud.consul.discovery.TtlScheduler;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; /**
* @describe: TODO
* @author: zhuCw
* @date: 2019/4/25 17:57
*/
@Configuration
public class RpsConsulServiceRegistryConfig {
@Autowired(required = false)
private TtlScheduler ttlScheduler; @Bean
public RpsConsulServiceRegistry consulServiceRegistry(
ConsulClient consulClient,
ConsulDiscoveryProperties properties,
HeartbeatProperties heartbeatProperties) {
return new RpsConsulServiceRegistry(
consulClient, properties, ttlScheduler, heartbeatProperties);
}
}

最新文章

  1. C++的性能C#的产能?! - .Net Native 系列四:性能测试方法(PerfView)
  2. 【转】jquery 中scrollTop在Firefox下不起作用
  3. Java内存模型与垃圾回收
  4. 使用dnspod进行简单的HTTP dns解析(防劫持)
  5. BigPipe 了解
  6. mysql describe
  7. 设计模式之工厂方法模式VS简单工厂方法模式
  8. hdu4436-str2int(后缀数组 or 后缀自动机)
  9. 40个Java集合面试问题和答案
  10. SVN中trunk,branches,tags用法详解
  11. String源码学习
  12. sizeof()的用法
  13. Ubuntu下使用vpn连接远程服务器
  14. Velocity.js的使用
  15. NDK Jni 开发(1)
  16. 第1次作业:no blog no fun
  17. Oracle expdp数据泵导出,并在文件上附加上日期格式
  18. centos mysql 修改mysql用户密码
  19. RestExpress response中addHeader 导致stackOverflow
  20. 1,rocketmq 的原理与安装教程

热门文章

  1. Tomcat更新方法
  2. Windows server 1709(不含UI)模板部署
  3. css+js调整当前界面背景音量
  4. nginx之location配置详解及案例
  5. this指针的初运用
  6. eShopOnContainers 知多少[1]:总体概览
  7. 为 VUE 项目添加 PWA 解决发布后刷新报错问题
  8. 如何解决Mac无法读取外置硬盘问题?
  9. Java Web开发模式
  10. 【转载】SQL语句中Union和Union All的区别