nacos2.0.3 单机模式,dashboard修改配置后,client一直没有拿到新的配置,直到重启nacos client才能拿到最新的配置
[alibaba/nacos]nacos2.0.3 单机模式,dashboard修改配置后,client一直没有拿到新的配置,直到重启nacos client才能拿到最新的配置
回答
看起来是 client refresh 的问题,能提供你的具体的使用方式么
client 没有refresh 使用方式是 client启动从naocs server load 配置 补充一下: dashboard修改配置后,client重启一直没有load到新的配置,调用的是com.alibaba.nacos.api.config.ConfigService#getConfig
一般获取不到配置就不会更新 或者把你重现问题的代码demo发出来
这个问题一般是客户端使用方式不正确的问题
是否使用了订阅的方式,如果只是使用getConfig的话, 那很可能只有启动的时候查询一次 是否订阅了但是listener写的不对,listener没有刷新或者应用配置 如果用的是spring boot或者spring cloud,确保打开了auto-refresh或者使用了Refresh注解这个问题一般是客户端使用方式不正确的问题
是否使用了订阅的方式,如果只是使用getConfig的话, 那很可能只有启动的时候查询一次 是否订阅了但是listener写的不对,listener没有刷新或者应用配置 如果用的是spring boot或者spring cloud,确保打开了auto-refresh或者使用了Refresh注解这个问题一般是客户端使用方式不正确的问题
是否使用了订阅的方式,如果只是使用getConfig的话, 那很可能只有启动的时候查询一次 是否订阅了但是listener写的不对,listener没有刷新或者应用配置 如果用的是spring boot或者spring cloud,确保打开了auto-refresh或者使用了Refresh注解是的,启动的时候getConfig查询一次,拿不到。多次启动都是拿不到。 请问这个要怎么解决?
这个问题一般是客户端使用方式不正确的问题
是否使用了订阅的方式,如果只是使用getConfig的话, 那很可能只有启动的时候查询一次 是否订阅了但是listener写的不对,listener没有刷新或者应用配置 如果用的是spring boot或者spring cloud,确保打开了auto-refresh或者使用了Refresh注解这个问题一般是客户端使用方式不正确的问题
是否使用了订阅的方式,如果只是使用getConfig的话, 那很可能只有启动的时候查询一次 是否订阅了但是listener写的不对,listener没有刷新或者应用配置 如果用的是spring boot或者spring cloud,确保打开了auto-refresh或者使用了Refresh注解是的,启动的时候getConfig查询一次,拿不到。多次启动都是拿不到。 请问这个要怎么解决?
补充一下,拿不到是指拿不到最新的配置,都是拿到修改之前的
我看标题是重启客户端才能拿到,说明getConfig是能拿到最新配置的, 但是因为你只有启动的时候getConfig一次, 没有用listenConfig, 所以只有启动的时候获取一次新配置, 之后全都是使用旧配置。
改成启动的时候getConfig一次, 然后再listenConfig并添加自己的listener, listner在配置变更时会被回调,在listener中实现你自己的刷新配置逻辑即可。
我看标题是重启客户端才能拿到,说明getConfig是能拿到最新配置的, 但是因为你只有启动的时候getConfig一次, 没有用listenConfig, 所以只有启动的时候获取一次新配置, 之后全都是使用旧配置。
改成启动的时候getConfig一次, 然后再listenConfig并添加自己的listener, listner在配置变更时会被回调,在listener中实现你自己的刷新配置逻辑即可。
很抱歉,标题没写清楚,是重启nacos-server后,client才能拿到最新的配置
我看标题是重启客户端才能拿到,说明getConfig是能拿到最新配置的, 但是因为你只有启动的时候getConfig一次, 没有用listenConfig, 所以只有启动的时候获取一次新配置, 之后全都是使用旧配置。 改成启动的时候getConfig一次, 然后再listenConfig并添加自己的listener, listner在配置变更时会被回调,在listener中实现你自己的刷新配置逻辑即可。
很抱歉,标题没写清楚,是重启nacos-server后,client才能拿到最新的配置
我也有这个问题
我看标题是重启客户端才能拿到,说明getConfig是能拿到最新配置的, 但是因为你只有启动的时候getConfig一次, 没有用listenConfig, 所以只有启动的时候获取一次新配置, 之后全都是使用旧配置。 改成启动的时候getConfig一次, 然后再listenConfig并添加自己的listener, listner在配置变更时会被回调,在listener中实现你自己的刷新配置逻辑即可。
很抱歉,标题没写清楚,是重启nacos-server后,client才能拿到最新的配置
控制台中查看是最新的配置吗?
我看标题是重启客户端才能拿到,说明getConfig是能拿到最新配置的, 但是因为你只有启动的时候getConfig一次, 没有用listenConfig, 所以只有启动的时候获取一次新配置, 之后全都是使用旧配置。 改成启动的时候getConfig一次, 然后再listenConfig并添加自己的listener, listner在配置变更时会被回调,在listener中实现你自己的刷新配置逻辑即可。
很抱歉,标题没写清楚,是重启nacos-server后,client才能拿到最新的配置
控制台中查看是最新的配置吗?
控制台查看是最新的数据
那有可能是数据库的时区和nacos-server所在的时区不同,导致nacos-server认为这个数据库里的数据比本地缓存的数据更旧,因此返回了缓存数据。重启之后server会全量从数据库同步,所以重启server后数据就是新的了。
那有可能是数据库的时区和nacos-server所在的时区不同,导致nacos-server认为这个数据库里的数据比本地缓存的数据更旧,因此返回了缓存数据。重启之后server会全量从数据库同步,所以重启server后数据就是新的了。
检查了,时区是一样的
你可以试着变更一个配置,然后从变更历史中看一下变更时间是否是正确的
以试着变更一个配置,然后从变更历史中看一下变更时间是否是正确的
数据更新后是变更时间没有问题,包括数据已成功写入到数据库。补充一下,这个问题不是必现的,只是偶尔出现过几次
目前的信息无法定位到问题,可以在下次出现时, 先保留现场日志和控制台订阅者信息,客户端日志和配置快照等,并重新提交issue关联此issue。