今天和前端联调的时候出现了一个非常奇怪的问题。我启动开发环境的时候,启动到用户中心时,日志报了个err passwd的错。我一看这不是redis密码的错误嘛。然后分别去看了nacos配置文件中的redis密码,以及redis的配置文件中的密码,几番确认,发现密码完全一致。那这就见了鬼了。后面我同事小潘建议我通过远程debug来排查。
命令如下:
java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 xxx.jar
然后在idea上通过remote,启动该项目,并打上断点就ok了。
host和port分别是远程服务器的host地址,以及远程启动命令指定的port。
通过远程debg发现我在nacos管理平台上的配置文件和debug加载出来的配置文件完全不一致。
这就可以断定是nacos的缓存问题了,最终我杀掉了nacos进程,通过./start.sh -m standalone重启后服务正常了。
我分析之前出现这个问题应该是因为原来nacos直接是./start.sh启动的,这样默认是启动了个nacos集群,然后在nacos管理平台修改了配置文件后,界面修改过来了,但是有仍有原来配置文件的缓存,导致服务在启动时读取的配置文件仍然是原来的配置文件。