最新在项目中使用到了springcloud微服务架构,使用consul作为服务注册中心。不过经常遇到已经失效、注销或宕掉的服务依旧存在于consul中,导致调用服务时,时不时的会调用失败的问题。

consul源码暂时还没来得及去看,不过找到了consul提供的一个删除服务的接口:{consul地址}/v1/agent/service/deregister/{服务实例ID},请求方式为**‘PUT’**,利用这个接口就可以把不想要的服务删除掉了。

** 不知道服务id怎么办? ** 很简单:

1. 打开consul网页,找到服务

在这里插入图片描述
这里的服务并不是我们要直接删除的东西,这里只是列出了所有的服务注册名称,我们需要删除的是服务实例

2. 进入服务实例列表

点击上面的服务名称进入实例列表页面
在这里插入图片描述
可以看到有很多个实例,上图中所有实例都是正常运行的,这只是个例子,正常运行的服务实例当然也可以删除。ID列即为服务实例ID。

3. 复制需要删除的服务实例ID,调用删除接口

这一步都会吧…就不赘述了,记得是 PUT 请求就行

不过这一系列操作还是麻烦了,毕竟最后还需要一个一个的删除。后续再更新批量删除吧~~

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐