Spring Cloud 系列之 Config 配置中心(一) (3)

  客户端配置文件名称必须叫 bootstrap.yml

spring: cloud: config: name: config-client # 配置文件名称,对应 git 仓库中配置文件前半部分 uri: :8888 # config-server 服务端地址 label: master # git 分支 profile: default # 指定环境

  

控制层

  

  添加一个 RestController 用于测试获取配置文件信息。

package com.example.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class ConfigController { @Value("${name}") private String name; @GetMapping("/name") public String getName() { return name; } }

  

启动类

  

package com.example; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class ConfigClientApplication { public static void main(String[] args) { SpringApplication.run(ConfigClientApplication.class, args); } }

  

测试

  

  访问::7777/name 结果如下:

Spring Cloud 系列之 Config 配置中心(一)

  

  修改配置文件为 dev 环境:

spring: cloud: config: name: config-client # 应用名称,对应 git 仓库中配置文件前半部分 uri: :8888 # config-server 服务端地址 label: master # git 分支 profile: dev # 指定环境

  访问::7778/name 结果如下:

Spring Cloud 系列之 Config 配置中心(一)

  

Spring Cloud Config 高可用

  

  以上讲了 Spring Cloud Config 最基础的用法,如果我们的项目中使用了 Eureka 作为服务注册发现中心,那么 Spring Cloud Config 也应该注册到 Eureka,方便其他服务使用,并且可以注册多个配置中心服务端,实现高可用。

  接下来就集成 Spring Cloud Config 到 Eureka。关于 Eureka 的相关知识大家可翻阅我的历史文章进行学习。

  

添加配置文件

  

  在 Github 仓库中增加配置文件。

Spring Cloud 系列之 Config 配置中心(一)

  order-service-dev.yml

server: port: 9090 # 端口 spring: application: name: order-service # 应用名称 # 配置 Eureka Server 注册中心 eureka: instance: prefer-ip-address: true # 是否使用 ip 地址注册 instance-id: ${spring.cloud.client.ip-address}:${server.port} # ip:port client: service-url: # 设置服务注册中心地址 defaultZone: :8761/eureka/,:8762/eureka/ # 自定义配置 name: order-service-dev

  order-service-prod.yml

server: port: 9091 # 端口 spring: application: name: order-service # 应用名称 # 配置 Eureka Server 注册中心 eureka: instance: prefer-ip-address: true # 是否使用 ip 地址注册 instance-id: ${spring.cloud.client.ip-address}:${server.port} # ip:port client: service-url: # 设置服务注册中心地址 defaultZone: :8761/eureka/,:8762/eureka/ # 自定义配置 name: order-service-prod

  

整合注册中心

  

  案例已经给大家准备好了,无需创建注册中心直接使用即可,为了清楚,把依赖和配置信息给大家贴出来。

  

依赖

  

  eureka-server 和 eureka-server02 核心依赖部分一致。

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 "> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>eureka-server</artifactId> <version>1.0-SNAPSHOT</version> <!-- 继承父依赖 --> <parent> <groupId>com.example</groupId> <artifactId>config-demo</artifactId> <version>1.0-SNAPSHOT</version> </parent> <!-- 项目依赖 --> <dependencies> <!-- netflix eureka server 依赖 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <!-- spring boot web 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- spring boot test 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> </project>

  

配置文件

  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpydjy.html