SpringCloud(十)高可用的配置中心-Spring Cloud Config+Eureka+Spring Cloud Bus

文章内索引
[显示]

配置中心高可用(Spring Cloud Config+Eureka+Spring Cloud Bus)

配置中心也可像其他springcloud中的服务一样,注册在服务中心,基于eureka可实现配置中心的高可用。

基于git的web hook与Springcloud bus可实现配置变更后推送至相应服务。

整体架构如图。

SpringCloud(十)高可用的配置中心-Spring Cloud Config+Eureka+Spring Cloud Bus|spring cloud-翰林小院 第1张

配置中心修改

 

基于配置中心进行改造,首先将Config Server引入eureka注册至服务中心。

添加eureka客户端依赖

代码添加@EnableDiscoveryClient,使其注册至服务中心。

添加eurekaserver的相关配置

eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/

启动多服务时可在vm中添加参数,配置不同端口。

–server.port=8889

SpringCloud(十)高可用的配置中心-Spring Cloud Config+Eureka+Spring Cloud Bus|spring cloud-翰林小院 第2张

此时配置中心已经注册在了服务中心

SpringCloud(十)高可用的配置中心-Spring Cloud Config+Eureka+Spring Cloud Bus|spring cloud-翰林小院 第3张

配置中心客户端修改

基于配置中心进行客户端改造,首先将Config Client引入eureka注册至服务中心。

添加eureka客户端依赖

添加eurekaserver的相关配置

访问http://localhost:8080/ ,此时已经通过配置中心返回了配置。

SpringCloud(十)高可用的配置中心-Spring Cloud Config+Eureka+Spring Cloud Bus|spring cloud-翰林小院 第4张

配置更新自动发布 (SpringCloud Bus+git webHook)

Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来。它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控。本文要讲述的是用Spring Cloud Bus实现通知微服务架构的配置文件的更改。SringCloud Bus可以依赖kafka和rabbitmq通讯,本例我们使用rabbitmq进行通讯。

在server client中添加rabbitmq的配置

#rabbitMQ配置

spring.rabbitmq.host=192.168.1.106

spring.rabbitmq.port=5672

spring.rabbitmq.username=guest

spring.rabbitmq.password=guest

 

{

“timestamp”: “2018-03-22T10:16:07.260+0000”,

“status”: 401,

“error”: “Unauthorized”,

“message”: “Full authentication is required to access this resource.”,

“path”: “/bus/refresh”

}

如果报这个错误则添加spring-boot-starter-actuator,并且配置management.security.enabled=false,忽略权限拦截。

 

此时通过post http://localhost:8080/bus/refresh 就可以将git上的变更刷新。

通过webhook动态推送刷新

其实很简单,就是在git中配置webhook,当有配置变动时,推送一个post请求至指定的url,就实现刷新了。

  1. 点击settings
  2. 点击integrations
  3. 之后点击add
  4. 可以点击test进行测试。

SpringCloud(十)高可用的配置中心-Spring Cloud Config+Eureka+Spring Cloud Bus|spring cloud-翰林小院 第5张

此时当git上的配置有修改时,通过webhook会向http://localhost:8080/bus/refresh 发送post请求,之后相应服务就会自动刷新配置。

SpringCloud(十)高可用的配置中心-Spring Cloud Config+Eureka+Spring Cloud Bus|spring cloud-翰林小院 第6张

之前的false已经刷新为true

SpringCloud(十)高可用的配置中心-Spring Cloud Config+Eureka+Spring Cloud Bus|spring cloud-翰林小院 第7张


©版权声明:本文为【翰林小院】(huhanlin.com)原创文章,转载时请注明出处!

发表评论

电子邮件地址不会被公开。