更新gateway路由定义

来源:7-5 注册网关事件监听器(上)

无心铁憨憨

2021-07-21

在更新gateway路由定义,前面已经把所有之前的路由定义都给清除掉了,为什么后面还是调用的私有的update方法,而不是add方法呢?
私有的update方法里面也是做delete操作的啊。

哦,我知道了,清除掉的是gateway中的路由定义,调用updateByRouteDefinition方法是先删除nacos中的路由定义,然后再添加新的进去,最后同步给gateway

写回答

1回答

张勤一

2021-07-21

同学你好:

    你这里的理解其实不对,我们在 Gateway 中的所有操作都不会去直接修改 Nacos 中的任何数据,这是不合理的。Nacos 中的数据应该是我们通过 Nacos Web 页面手动修改,否则,你通过代码修改是没办法保证数据可靠性的。

    这里,我之所以会调用 update 方法,也是为了二次保证清理所有旧的路由定义,当然,我们的代码里面,也不存在其他的线程更新的情况,可以直接去 add;可以自己试试自己的想法是不是可行的。

    我的实现也是典型的冗余设计,如果觉得没必要,可以直接去 save。

1
7
无心铁憨憨
回复
qq_粽翎_0
删除一个不存在的路由是会报错的,为什么要删除两次,你可以在课程群或者问答区提问
2021-09-03
共7条回复

Spring Cloud / Alibaba 微服务架构实战

从架构设计到开发实践,手把手实现

1210 学习 · 674 问题

查看课程