dyc87112 / blog-comments

5 stars 1 forks source link

Spring Cloud Finchley版中Consul多实例注册的问题处理 | 程序猿DD #290

Open dyc87112 opened 6 years ago

dyc87112 commented 6 years ago

http://blog.didispace.com/Spring-Cloud-Finchley-Consul-InstanceId/

由于Spring Cloud对Etcd的支持一直没能从孵化器中出来,所以目前来说大多用户还在使用Eureka和Consul,之前又因为Eureka 2.0不在开源的消息,外加一些博眼球的标题党媒体使得Eureka的用户有所减少,所以,相信在选择Spring Cloud的用户群体中,应该有不少用户会选择Consul来做服

yingw commented 6 years ago

我用 cloud F版本和consul 1.2.2 好像没有这个问题啊,是多个实例的,调用也正常

dyc87112 commented 6 years ago

@yingw 我用 cloud F版本和consul 1.2.2 好像没有这个问题啊,是多个实例的,调用也正常

试试看这个场景,假设某个node的consul agent上注册了服务A,然后在本地也启动相同服务注册到这个node 的agent上,服务实例会覆盖。

UpdateCw commented 6 years ago

我确实出现了此问题。原本考虑后期来查看的,今早正好看见了博主此文章,学习了!

UpdateCw commented 6 years ago

image 验证了没毛病

UpdateCw commented 6 years ago

但是这样每次回创建新的服务,服务多了,会有什么影响么?

dyc87112 commented 6 years ago

@UpdateCw 但是这样每次回创建新的服务,服务多了,会有什么影响么?

不会啊,是同一个服务,不同实例而已

yingw commented 6 years ago

@dyc87112

@yingw 我用 cloud F版本和consul 1.2.2 好像没有这个问题啊,是多个实例的,调用也正常

试试看这个场景,假设某个node的consul agent上注册了服务A,然后在本地也启动相同服务注册到这个node 的agent上,服务实例会覆盖。

试出来了的确是这样,之前没有出现问题是我们设置了默认的instance-id规则已经加了个随机数了。

另外 ip + 端口的方式很实用,我们已经改成这个了,非常感谢。有个小问题需要设置 spring.cloud.consul.discovery.heartbeat.enabled=true 否则会报错找不到:TtlScheduler 实现。

chyuch-github commented 6 years ago

通过扩展ConsulServiceRegistry,自定义的类如何使用才能生效?

libin2722 commented 5 years ago

怎么扩展ConsulServiceRegistry的register方法

xiaomabenten commented 5 years ago

@yingw

@dyc87112

@yingw 我用 cloud F版本和consul 1.2.2 好像没有这个问题啊,是多个实例的,调用也正常

试试看这个场景,假设某个node的consul agent上注册了服务A,然后在本地也启动相同服务注册到这个node 的agent上,服务实例会覆盖。

试出来了的确是这样,之前没有出现问题是我们设置了默认的instance-id规则已经加了个随机数了。

另外 ip + 端口的方式很实用,我们已经改成这个了,非常感谢。有个小问题需要设置 spring.cloud.consul.discovery.heartbeat.enabled=true 否则会报错找不到:TtlScheduler 实现。

在consul上看不到output内容,如何定位哪台服务器??

leondryu commented 5 years ago

请教一下,把instance-id写死可以吗?比如instance-id: abcdef。这样做有什么不好吗?

dean20191028 commented 4 years ago

那如果是容器化部署怎么办呢,假设同一个应用的docker实例都部署在同一个服务器上面的话,那么instance-id 就是重复的呀