springcloud nacos下线服务及时通知gateway

gateway是每隔30s获取一次nacos的服务列表。
那么当nacos下线了服务之后,gateway还没来得急刷新服务列表,会导致请求打到下线的服务器上。 这个怎么处理。

阅读 10k
1 个回答

动态刷新 gateway 中的路由。

这里用 zuul 举例子。 gateway 没用过。

zuul 中,有个接口RefreshableRouteLocator.
大致的编码请参考
初识zuul

如果,贵司的技术战 都是基于 java,那么 继承 DiscoveryClientRouteLocator 实现 RefreshableRouteLocator 接口。其他的事情什么都不用处理。

然后暴露一个接口。或者一个配置。可以触发 RoutesRefreshedEvent 事件的发布即可