确保config server能够访问
1.访问config server(config server配置为git),访问链接http://localhost:7070/app/test/master
2.访问如下图:
3.确认config server一切工作正常,config server并没有问题,排查config client。
检查config client
1.检查配置
application.properties
## Spring Cloud Eureka 客户端应用名称
spring.application.name = spring-cloud-eureka-client
## Spring Cloud Eureka 客户端服务端口
server.port = 8080
# 启用端点 envmanagement.endpoint.env.enabled=true
# 暴露端点 env 配置多个,隔开
management.endpoints.web.exposure.include=*
management.endpoint.info.enabled=true
management.info.env.enabled=true
#eureka.client.serviceUrl.defaultZone=http://localhost:9090/eureka
logging.level.org.springframework.cloud=trace
bootstrap.properties
eureka.client.serviceUrl.defaultZone=http://127.0.0.1:9090/eureka
spring.cloud.config.name=app
spring.cloud.config.profile=test
spring.cloud.config.label=master
spring.profiles.active=test
#spring.config.import=optional:spring-cloud-config-server:http://localhost:7070/
spring.cloud.config.fail-fast=true
## 激活 Config 服务器发现
spring.cloud.config.discovery.enabled=true
## 配置 Config 服务器的应用名称(Service ID)
spring.cloud.config.discovery.serviceId=spring-cloud-config-server
检查配置发现并没有什么问题,确认配置没有问题,问题应该在其他地方。
2. 检查日志
检查日志后发现,我配置的profile为test,但是并没有读取出来,根据日志来看,貌似并没有从bootstrap.properties读取配置,得出如下猜测:
1.配置文件应该在全部配置在application中。
2.springboot 并没有从bootstrap.properties启动,可能是缺少什么依赖。
2.1 针对猜测1检查问题
将所有配置整合在application中,再次启动。
## Spring Cloud Eureka 客户端应用名称
spring.application.name = spring-cloud-eureka-client
## Spring Cloud Eureka 客户端服务端口
server.port = 8080
# 启用端点 envmanagement.endpoint.env.enabled=true
# 暴露端点 env 配置多个,隔开
management.endpoints.web.exposure.include=*
management.endpoint.info.enabled=true
management.info.env.enabled=true
#eureka.client.serviceUrl.defaultZone=http://localhost:9090/eureka
logging.level.org.springframework.cloud=trace
#logging.level.org.springframework=trace
eureka.client.serviceUrl.defaultZone=http://127.0.0.1:9090/eureka
spring.cloud.config.name=app
spring.cloud.config.profile=test
spring.cloud.config.label=master
spring.profiles.active=test
#spring.config.import=optional:spring-cloud-config-server:http://localhost:7070/
spring.cloud.config.fail-fast=true
## 激活 Config 服务器发现
spring.cloud.config.discovery.enabled=true
## 配置 Config 服务器的应用名称(Service ID)
spring.cloud.config.discovery.serviceId=spring-cloud-config-server
启动之后日志如下,发现还是没有所有应用配置文件
2.2 猜测1基本错误
通过日志来看,猜测1基本错误,不仅没有读取相应的配置,还检查不到config server,针对猜测的检查截止。
2.3 针对猜测2检查问题
- 查询spring官网,发现spring团队居然将
spring-cloud-starter-bootstrap
提取出来了,在以前的版本中,bootstrap是整合在springboot中的,从springboot2.4就独立出来了。
2.添加依赖
3.再次启动
4.通过env检查发现能够获取到相应的配置,确认了是bootstrap.properties缺少了启动依赖导致。与application.properties文件无关。
结论
针对config client无法获取config server的配置服务的参数,从springboot2.4以后的版本是需要添加spring-cloud-starter-bootstrap
依赖。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。