今天在听课的时候,看到了druid的后端。我看看我们项目用的数据库连接池也是Druid,然后访问一下地址,发现有的好使有的不好使。

其中9600 是 system模块的端口, 192.168.40.179是本机IPV4地址,192.168.1.66是测试环境地址。

http://localhost:9600/druid/login.html,这个地址可以访问

http://127.0.0.1:9600/druid/login.html,这个地址可以访问

http://192.168.40.179:9600/druid/login.html,这个地址是访问不了的

http://192.168.1.66:9600/druid/login.html,这个地址也是访问不了的

百度资料后,解决方案是:allow: .但是我改了几次nacos配置文件,不管是allow: ,还是 allow:192.168.40.179,192.168.1.66 。仍然一样的问题。

spring: 
  redis:
    host: ${secret.redis.host}
    port: ${secret.redis.port}
    password: ${secret.redis.password}
  datasource:
    druid:
      stat-view-servlet:
        allow: 
        enabled: ${secret.druid.stat-view-servlet.enabled}
        loginUsername: ${secret.druid.stat-view-servlet.loginUsername}
        loginPassword: ${secret.druid.stat-view-servlet.loginPassword}

放弃之余,调试了两次,找到了原因及解决方案。

这有个allow的加载,是在9600对应模块重启后,第一次访问druid的监控页面,才会初始化。之后的访问将直接判断是否能访问。

 所以,对于allow的改动,要应用重启后,才能生效。

因为还学到了@RefreshScope这个注解,可以不用重启,刷新配置。

于是乎在9600这个模块的启动类,增加@RefreshScope,但是也不好使。

所以暂且,修改druid的allow配置后,重启应用。

参考资料:配置_StatViewServlet配置 · alibaba/druid Wiki · GitHub

你写的不是代码,而是设计思路,是bug,是解决问题的方式和方法。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐