原文链接:http://www.dubby.cn/detail.html?id=9022

1.高可用

为了高可用一般最传统的做法就是:

这个就是使用一个负载均衡设备来隐藏后面的配置服务器集群,这是很容易想到的,不过Spring Cloud给我另一种实现,那就是服务化配置中心

也就是把配置中心也注册到Eureka-Server上称为一个服务,这样,就和其他普通的服务一样做到了多实例,负载均衡,当然也做到了高可用,还有其他的一些功能特性,比如,熔断降级啊,失败策略等。

那么我们来看一下如何做到服务化配置中心

启动eureka-server:

参考:从最简单的Spring Cloud应用开始

改造原有的配置服务端:

POM:

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

application.properties:

spring.application.name=config-server
server.port=7001

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

spring.cloud.config.server.git.uri=https://gitee.com/yangzheng1994/config.git
spring.cloud.config.server.git.search-paths=spring_cloud_config
spring.cloud.config.server.git.username=1778520607@qq.com
spring.cloud.config.server.git.password=yjfz12130612

Application.java:

@EnableDiscoveryClient
@EnableConfigServer
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        new SpringApplicationBuilder(Application.class).web(true).run(args);
    }

}

改造配置客户端:

pom:

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

bootstrap.properties:

spring.application.name=demo

server.port=7002

spring.cloud.config.profile=dev
spring.cloud.config.label=master
spring.cloud.config.uri=http://localhost:7001/

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

spring.cloud.config.discovery.enabled=true
spring.cloud.config.discovery.service-id=config-server

Application.java:

@EnableDiscoveryClient
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        new SpringApplicationBuilder(Application.class).web(true).run(args);
    }

}

结果:

2.刷新配置

先请求http://localhost:7002/from

在客户端添加依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

然后先更新git上的配置信息,并push上去:

使用post方法请求http://localhost:7002/refresh

再次请求http://localhost:7002/from

至此,刷新结束……

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐