我是通过代码手动注册的路由(使用register方法,registry.register(URL.valueOf("route://0.0.0.0/com.XXX)这种形式),然后我不小心把路由规则写错了,但是却注册成功了,在dubbo-admin的路由界面可以显示, 但是问题来了,我点删除现在删不掉路由了,而且我从dubbo-admin界面上添加的路由也无法删除了,就算点界面上的删除,它提示删除成功,但是打开页面发现路由规则还在,有没有大大知道如何删除已经注册的路由,是要重启zookeeper吗, 还是要删除服务器上的某些文件呢?求教,
[apache/dubbo]给dubbo设置了路由规则后,如何删除呢
回答
代码手动注册的路由,如果通过dubbo-admin无法删除,可以通过代码反注册unregister(url),只要保持和注册url一致。
风险高一点的,可以通过操作zk接口直接删除指定路径下的节点 /dubbo/com.XXXService/routers/route://0.0.0.0/com.XXX
@chickenlj 你好,我在代码种用unregister()方法反注册也不行,用的url就是注册时的url. 比如我在代码拼接一个url: route://0.0.0.0/com.handu.open.dubbo.monitor.ITest?category=routers&dynamic=true&enabled=false&force=false&name=MY&priority=0&router=condition&rule=consumer.host+%3D+33.88.88.88+%3D%3E+provider.host+%3D+44.55.66.77&runtime=false ,然后我再unregister这个url,后台不报错,但是这个路由信息根本就没有删除... 您说的删除指定路径下的节点,请问这个指定路径在哪里看呢, 是zk配置的吗
去zk节点上看一下,注册路由节点是不是已经被修改过了 /dubbo/com.handu.open.dubbo.monitor.ITest/routers/
是dubbo使用zk做注册中心的设计的默认路径,具体节点结构可以去看一下 dubo开发者文档
@chickenlj 我的zk是单机的,但是并没有/dubbo目录呢
@a13707331174 难道用的不是zk做注册中心?
没有/dubbo目录,是不是指定了registry group?
这应该是个使用问题,仔细检查下,我close掉了
@chickenlj 啊,问题我早解决了,当时我错以为/dubbo是物理的目录,我已经知道是znode了,然后错误的路由也顺利删除了.谢谢帮助