前序
- SpringBootAdmin的官网上示例介绍,真的让人感觉体验十分糟糕!!!
- 这也是本人第一次接触到这个东西,自己摸索了一上午和半个下午,才终于得出正确做法,故此分享。
错误与解决
1、Server无法连接Client(出现这种情况一般很少,但是也可能有)
- 请检查Client服务中的配置文件的
spring.boot.admin.client.url
是否为正确的Server服务的Url地址
2、Client无法连接Server!!!(这个遇到的坑绝对是最多的)
- 1)403 Forbidden,对于这个错误,大多数回答都是说关闭crsf即可,但是在亲身尝试过后,关闭之后仍然如此,最好的建议就是降低版本,避免使用较新的SpringBoot版本,本人情况就是活生生的例子,使用了此时较新的2.5.4一直报错,换回2.4.x版本,之后调整相关依赖就解决了
- 2)401 NoAuth,这个错误比上面的403可是要好得多(此时你应该庆幸至少版本符合),这个原因其实就是Client登录Server时用户名或密码错误,主要是设置正确的Server的name和password,之后再确保Client中
spring.boot.admin.client.username
和spring.boot.admin.client.password
与之完全相同即可- 多提一嘴:对于如何设置SpringSecurity的密码这一说法,我的建议是不要在代码中写死!!!请看官网的这个例子Spring Boot Admin Reference Guide (codecentric.github.io)
- 我的意思是最后的configure(Auth…)这个方法duck不必重写,因为在代码中确定了就是确定了,线上服务是很难调整的,最好是写在yml文件,如下所示:
spring:
security:
user:
name: user
password: gezq0714
最后
- 因为SpringBootAdmin官网上只列举了Eureka、Consul等注册中心,而国内大部分人使用的注册中心都会是Nacos,因此本人提供了本次解决方法的Demo供大家参考,链接如下:https://github.com/gezq0714/spring-boot-admin-nacos-demo
- 当遇到各种warn和error时,本人与诸位此时心情也是相同的,希望这篇文章对各位有所帮助!
- 因为本人也是初学,难免有更多错误和解决方法等待各位发掘,最好的解决办法就是自己新建一个项目,然后从Getting Started开始,一行一行敲过去,最终任何错误都将迎刃而解!