We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
看了几乎所有consul服务注册的代码,包括心跳检测等,发现服务的新增和修改是没有问题的。 但是同一个服务参数的变动,watch心跳检测代码是根据ServiceDescriptor.Id 来作为唯一标识来注册的,而ServiceDescriptor.Id是根据路径和具体的参数拼接生成的,这样让同一个path路径,但是参数变动的情况下,相当于ServiceDescriptor.Id变动了,但是之前注册的watch是另外参数的ServiceDescriptor.Id,导致这个变动永远watch检测不到,这种更新就只能重启consul,再重启服务,最后重启网关这样的,对于线上的服务其实是非常不友好的。 我开始想着能不能把watch的机制改成针对于ServiceDescriptor.RoutePath的这样的,但是如果是针对有函数重载的情况下,这样也是不合理的。 不知道上面的情况,作者有什么样好的思路,或者其实已经处理了上面的场景了,麻烦作者解答一下。
The text was updated successfully, but these errors were encountered:
最近因为身体原因,还有忙平台问题未进行解答,服务参数的变动就完全改变了微服务的结构,生成新的服务进行注册,这个逻辑没有问题,而routepath 是不根据参数来进行匹配的,如果用routepath就不能用微服务重载了
Sorry, something went wrong.
No branches or pull requests
看了几乎所有consul服务注册的代码,包括心跳检测等,发现服务的新增和修改是没有问题的。
但是同一个服务参数的变动,watch心跳检测代码是根据ServiceDescriptor.Id 来作为唯一标识来注册的,而ServiceDescriptor.Id是根据路径和具体的参数拼接生成的,这样让同一个path路径,但是参数变动的情况下,相当于ServiceDescriptor.Id变动了,但是之前注册的watch是另外参数的ServiceDescriptor.Id,导致这个变动永远watch检测不到,这种更新就只能重启consul,再重启服务,最后重启网关这样的,对于线上的服务其实是非常不友好的。
我开始想着能不能把watch的机制改成针对于ServiceDescriptor.RoutePath的这样的,但是如果是针对有函数重载的情况下,这样也是不合理的。
不知道上面的情况,作者有什么样好的思路,或者其实已经处理了上面的场景了,麻烦作者解答一下。
The text was updated successfully, but these errors were encountered: