Spring Cloud Config 实现配置中心,看这一篇就够了 (4)

综上所述,当我们修改配置后,使用 webhook ,或者手动触发的方式 POST 请求一个 client 端的 actuator/bus-refresh 接口,就可以更新给所有端了。

结合 Eureka 使用 Spring Cloud Config

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

好的,接下来就来集成 Spring Cloud Config 到 Eureka 上。

在 github 仓库中增加配置文件

Spring Cloud Config 实现配置中心,看这一篇就够了

启动 Eureka Server

首先启动一个 Eureka Server,之前的文章有讲过 Eureka ,可以回过头去看看。Spring Cloud Eureka 实现服务注册发现,为了清楚,这里还是把配置列出来

1、pom 中引入相关包

<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>

2、设置配置文件内容

bootstrap.yml

spring: application: name: kite-eureka-center security: user: name: test # 用户名 password: 123456 # 密码 cloud: inetutils: ## 网卡设置 ignoredInterfaces: ## 忽略的网卡 - docker0 - veth.* - VM.* preferredNetworks: ## 优先的网段 - 192.168

application.yml

server: port: 3000 eureka: instance: hostname: eureka-center appname: 注册中心 client: registerWithEureka: false # 单点的时候设置为 false 禁止注册自身 fetchRegistry: false serviceUrl: defaultZone: :123456@localhost:3000/eureka server: enableSelfPreservation: false evictionIntervalTimerInMs: 4000

3、Application 启动类

@EnableEurekaServer @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }

4、启动服务,在浏览器访问 3000 端口,并输出用户名 test,密码 123456 即可进入 Eureka UI

配置 Spring Cloud Config 服务端

服务端和前面的相比也就是多了注册到 Eureka 的配置,其他地方都是一样的。

1、在 pom 中引入相关的包

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- spring cloud config 服务端包 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <!-- eureka client 端包 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>

2、配置文件做配置

application.yml

server: port: 3012 eureka: client: serviceUrl: register-with-eureka: true fetch-registry: true defaultZone: :123456@localhost:3000/eureka/ instance: preferIpAddress: true spring: application: name: config-eureka-server cloud: config: server: git: uri: https://github.com/huzhicheng/config-only-a-demo username: github 用户名 password: github 密码 default-label: master search-paths: config

相比于不加 Eureka 的版本,这里仅仅是增加了 Eureka 的配置,将配置中心注册到 Eureka ,作为服务提供者对外提供服务。

3、启动类,在 @EnableConfigServer 的基础上增加了 @EnableEurekaClient,另外也可以用 @EnableDiscoveryClient 代替 @EnableEurekaClient

@SpringBootApplication @EnableConfigServer @EnableEurekaClient public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }

4、启动服务,之后访问 Eureka ,可以看到服务已注册成功

Spring Cloud Config 实现配置中心,看这一篇就够了

配置 Spring Cloud Config 客户端

客户端的配置相对来说变动大一点,加入了 Eureka 之后,就不用再直接和配置中心服务端打交道了,要通过 Eureka 来访问。另外,还是要注意客户端的 application 名称要和 github 中配置文件的名称一致。

1、pom 中引入相关的包

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>

2、配置文件

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

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