Spring Cloud 配置服务器在 git 上配置错误

问题描述 投票:0回答:1

我使用以下依赖项和属性创建了云配置服务器的实例:

<properties>
    <java.version>17</java.version>
    <spring-cloud.version>2023.0.0</spring-cloud.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-server</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
        <version>3.2.2</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.jayway.jsonpath/json-path -->
    <dependency>
        <groupId>com.jayway.jsonpath</groupId>
        <artifactId>json-path</artifactId>
        <version>2.9.0</version>
    </dependency>
</dependencies>

我启用配置服务器:

@SpringBootApplication
@EnableConfigServer
public class CloudConfigServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(CloudConfigServiceApplication.class, args);
    }
}

到目前为止一切顺利。现在我也在application.properties中传递了几个配置:

server.port=8888
spring.application.name=cloud-config-service

# https://cloud.spring.io/spring-cloud-config/multi/multi__spring_cloud_config_server.html#_git_ssh_configuration_using_properties
spring.profiles.active=git
[email protected]
spring.cloud.config.server.git.password=ghp_tokenGenerated
spring.cloud.config.server.git.uri=https://github.com/me/spring-cloud-remote-configs.git
spring.cloud.config.server.git.clone-on-start=true
spring.cloud.config.server.git.force-pull=true
spring.cloud.config.server.git.default-label=master
spring.cloud.config.server.git.basedir=applicationName 

logging.pattern.file=%d{dd-MM-yyyy HH:mm:ss.SSS} [%thread] %-5level %logger.%M - %msg%n
logging.pattern.dateformat=yyyy-MM-dd HH:mm:ss
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} %green([%thread]) %highlight(%level)  %logger - %msg%n
logging.file.name=webapps-logs/cloud-config-service.log
logging.logback.rollingpolicy.max-history=5
logging.logback.rollingpolicy.max-file-size=1250MB
logging.level.root=INFO
logging.level.fr.dsidiff=INFO
logging.level.org.springframework=INFO

management.endpoints.web.exposure.include=*
management.endpoint.health.enabled=true
management.endpoint.health.show-details=always

实际上,文件被克隆到applicationName/applicationName的同一个文件夹中 当应用程序启动时,我注意到一条警告消息:

WARN  org.springframework.cloud.config.server.environment.EnvironmentController - Error getting the Environment with name=dsipilot profiles=discovery-service label=default includeOrigin=false

org.springframework.cloud.config.server.environment.NoSuchLabelException:没有这样的标签:默认

第二步是在其他微服务中使用配置。这是我使用配置的 Web 服务的 application.yml:

server:
  port: ${PORT:0}
  forward-headers-strategy: framework

spring:
  application:
    name: users-service
  cloud:
    config:
      enabled: true
      name: ${spring.application.name}
  rabbitmq:
    host: localhost
    username: guest
    password: guest
    port: 5672
  config:
    import: "optional:configserver:${CONFIG_SERVER:http://localhost:8888}"
  datasource:
    username: root
    password: root
    url: jdbc:mysql://localhost:3306/users?autoReconnect=true&useSSL=false&createDatabaseIfNotExist=true
  jpa:
    properties:
      hibernate:
        column_ordering_strategy: legacy
    hibernate:
      ddl-auto: update
    show-sql: 'true'
    database-platform: org.hibernate.dialect.MySQLDialect
  devtools:
    restart:
      enabled: true

eureka:
  client:
    serviceUrl:
      defaultZone: ${EUREKA_SERVER:http://localhost:8761/eureka}
  instance:
    preferIpAddress: true
    instance-id: ${spring.application.name}:${spring.application.instance_id:${random.value}}

logging:
  pattern:
    level: "%5p [${spring.application.name}, %X{traceId:-}, %X{spanId:-}]"
    dateformat: yyyy-MM-dd HH:mm:ss
  file:
    name: webapps-logs/users-service.log
  logback:
    rollingpolicy:
      max-history: '5'
      max-file-size: 250MB
  level:
    root: WARN
    fr.webservices: INFO
    org.springframework: INFO
    org.hibernate: INFO

management:
  endpoints:
    web:
      exposure:
        #include: openapi, swagger-ui, busrefresh
        include: '*'
  endpoint:
    health:
      enabled: true
      show-details: always
  tracing:
    sampling:
      probability: 1
  zipkin:
    tracing:
      endpoint: http://localhost:9411/api/v2/spans

users-ws:
  message: "message from Localhost"

我的网络服务包含以下依赖项:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>

出于测试目的,我添加了以下控制器方法:

@GetMapping
public String status() {
    String status = "Users service > Working on port " +
            env.getProperty("local.server.port") +
            "Current message: \r\n " + env.getProperty("users-ws.message");
    log.info(status);
    return status;
}

在 git 存储库中,我在 github 上的 applicationName 目录中有一个 users-service.yml 文件。

此文件包含不同的消息:

users-ws:
  message: "message from Github"

我的问题如下:

  1. 我不使用 http://localhost:8888/users-service/default 检索配置

  1. 我没有检索到我期望的消息。我确实猜测配置服务器配置的一些细节出了点问题。我只是看到在哪里。
spring-boot spring-cloud
1个回答
0
投票

我只是更换

spring.cloud.config.server.git.basedir=applicationName 

spring.cloud.config.server.git.search-paths=applicationName 

我只是在设置属性时没有注意。

© www.soinside.com 2019 - 2024. All rights reserved.