Skip to content

关于consul 注册的问题,麻烦作者看一下 #436

@StayGoldTY

Description

@StayGoldTY

看了几乎所有consul服务注册的代码,包括心跳检测等,发现服务的新增和修改是没有问题的。
但是同一个服务参数的变动,watch心跳检测代码是根据ServiceDescriptor.Id 来作为唯一标识来注册的,而ServiceDescriptor.Id是根据路径和具体的参数拼接生成的,这样让同一个path路径,但是参数变动的情况下,相当于ServiceDescriptor.Id变动了,但是之前注册的watch是另外参数的ServiceDescriptor.Id,导致这个变动永远watch检测不到,这种更新就只能重启consul,再重启服务,最后重启网关这样的,对于线上的服务其实是非常不友好的。
我开始想着能不能把watch的机制改成针对于ServiceDescriptor.RoutePath的这样的,但是如果是针对有函数重载的情况下,这样也是不合理的。
不知道上面的情况,作者有什么样好的思路,或者其实已经处理了上面的场景了,麻烦作者解答一下。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions