日常采坑之消息总线配置各种不生效
***@TOC
#日常采坑之消息总线配置各种不生效
你好,今天在学习微服务消息总线整合配置中心时,遇到了一些教学视屏中的坑,日常采坑。下面简单描述一下:在整合消息总线和configServer时,按照视屏和网上教程,将依赖加入,配置文件写好,但是,然后请求http://localhost:8762/actuator/bus-refresh.
发现一个熟悉的数字 404 。。。如下图
于是开始排查,而重点是,同样的路径请求ConfigServer端,就可以正确执行。
问题就是如此,死活请求不通。
下面介绍解决过程:
查看配置是否正确
网上所说的配置也大致正确,我就不再详细介绍,大致带过。
首先是依赖:
<!--configServer 集成 rabbitmq start-->
<!--仪表盘监控依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<!--configServer 集成 rabbitmq end-->
这两个依赖要加入你的ServerClient中,注意不要有依赖冲突。
之后就是配置文件bootstrap.yml中加入
spring:
#rabbitMQ的配置
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
#actustor暴露的资源配置
management:
endpoints:
web:
exposure:
include: "bus-refresh"
注意,此处有坑
最后,在你需要更新的配置类上加注解@RefreshScope即可。
注意,上述配文件是在gitlab上,是通过configServer进行读取的,并不是直接写在你的项目中的配置文件中。
最后,尝试请求http://localhost:8762/actuator/bus-refresh.发现友好的404出现了。
查看情动日志,你会有新的发现
直接上日志:
2020-12-17 16:56:57.267 INFO [consumer-service,,,] 5580 --- [main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 0 endpoint(s) beneath base path '/actuator'
日志显示,暴露的actuator下的资源是0个,也就是说你的配置没有生效。那就注意细心检查一下你的配置是否有拼写错误等低级错误。如果没有,那就一定是这种情况了。
配置文件中坑!!!
这时相信你已经网上百度很多,但是大部分会和我上边讲的一样,但是,唯一不同的是,网上会极其粗暴地将全部资源暴露。即
#actustor暴露的资源配置
management:
endpoints:
web:
exposure:
include: "*"
以*适配所有资源路径。
然后有进行刷新请求,http://localhost:8762/actuator/bus-refresh.
ok,又一次404。。。
但是,这次你在看日志,就会发现,日志有变化
2020-12-17 17:07:14.571 INFO [consumer-service,,,] 11664 --- [main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 18 endpoint(s) beneath base path '/actuator'
可以发现暴露了18个资源路径。但是你依然请求到404.
到这里,至少证明我们的配置文件是没有问题的,我们离真相只差一步了。
真相!!!
到这里,足以证明暴露的服务是没有问题的,那么只有一种可能,使我们的路径请求不对,于是,你请求http://localhost:8762/actuator.发现了所有暴露资源的路径,碧昂且尝试找到你想要的/bus-refresh,但是你会发现,压根儿没有/bus-refresh,但是,有另一个似曾相识的路径,如图:
于是你终于发现了你想要的的真相:资源路径早已不是/bus-refresh,
而是/refresh。
于是你请求http://localhost:8762/actuator/refresh.
(注意请求方式:POST),发现你最喜欢的200。请求成功,资源也刷新了。
如果你已经愉快的解决了问题,不妨点个赞再走啊》》》》