SpringCloud分布式微服务云架构 第七篇: 高可用的分布式配置中心(Spring Cloud Config)(Finchley版本)

一、准备工作
本文还是基于上一篇文章来实现。按照官方文档,我们只需要在配置文件中配置
spring-cloud-starter-bus-amqp
;了解springcloud架构可以加求求:三五三六二四七二五九,这就是说我们需要装rabbitMq,点击rabbitmq下载。至于怎么使用
rabbitmq,搜索引擎下。

入口类:

2019121813052071_副本.png (上传于2019-12-24
18:03:37)
澳门新葡亰 1

<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>

<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>

<groupId>org.springframework.cloud</groupId>

@Value(“${foo}”)
String foo;

SpringApplication.run(EurekaServerApplication.class, args);
}
}

依次启动eureka-server、confg-cserver,启动两个config-client,端口为:8881、8882。

<groupId>org.springframework.boot</groupId>

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

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>

重新读取配置文件:

<groupId>org.springframework.cloud</groupId>

在配置文件application.properties中加上RabbitMq的配置,包括RabbitMq的地址、端口,用户名、密码。并需要加上spring.cloud.bus的三个配置,具体如下:

<artifactId>spring-cloud-config-server</artifactId>
</dependency>

<dependency>

@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {

<dependency>

上一篇文章讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,都从配置中心读取文件,这时可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可用,架构图如下:澳门新葡亰 2

<groupId>org.springframework.boot</groupId>

</dependencies>
<build>
<plugins>
<plugin>

这时我们再访问 或者
浏览器显示:

eureka.client.serviceUrl.defaultZone=
spring.cloud.config.discovery.enabled=true
spring.cloud.config.discovery.serviceId=config-server
server.port=8881

<groupId>org.springframework.cloud</groupId>

<artifactId>config-server</artifactId>

@RequestMapping(value = “/hi”)
public String hi(){
return foo;
}
}

<groupId>com.forezp</groupId>

访问 或者 浏览器显示:

二、改造config-server
在其pom.xml文件加上EurekaClient的起步依赖spring-cloud-starter-netflix-eureka-client,代码如下:

ConfigClientApplication启动类代码如下:

public static void
main(String[] args) {

foo version 3

<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>

<groupId>org.springframework.boot</groupId>

一、准备工作
继续使用上一篇文章的工程,了解springcloud架构可以加求求:三五三六二四七二五九创建一个eureka-server工程,用作服务注册中心。

<artifactId>spring-cloud-starter-config</artifactId>
</dependency>

</dependencies>

spring.cloud.bus.enabled=true
spring.cloud.bus.trace.enabled=true
management.endpoints.web.exposure.include=bus-refresh

最后需要在程序的启动类Application加上@EnableEureka的注解。

另外,/actuator/bus-refresh接口可以指定服务,即使用”destination”参数,比如
“/actuator/bus-refresh?destination=customers:**”
即刷新服务名为customers的所有服务。

<name>config-server</name>
<description>Demo project
for Spring Boot</description>

<dependencies>
<dependency>

<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>

这时我们去代码仓库将foo的值改为“foo version
4”,即改变配置文件foo的值。如果是传统的做法,需要重启服务,才能达到配置文件的更新。此时,我们只需要发送post请求:
澳门新葡亰 3

eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone:

public static void
main(String[] args) {

<artifactId>sc-f-chapter7</artifactId>

澳门新葡亰 4

配置文件bootstrap.properties,注意是bootstrap。加上服务注册地址为

<groupId>org.springframework.cloud</groupId>

澳门新葡亰,<groupId>org.springframework.boot</groupId>

 二、改造config-client
在pom文件加上起步依赖spring-cloud-starter-bus-amqp,完整的配置文件如下:

spring.cloud.config.server.git.uri=
spring.cloud.config.server.git.searchPaths=respo
spring.cloud.config.label=master
spring.cloud.config.server.git.username= your username
spring.cloud.config.server.git.password= your password
eureka.client.serviceUrl.defaultZone=

/**
*

*/

<groupId>org.springframework.cloud</groupId>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-config-server</artifactId>
</dependency>

网站地图xml地图