案例

使用Zookeeper作为配置中心,实现配置的修改和自动下发,基于Spriing Cloud我们可以轻松的实现。

添加依赖pom.xml的关键信息如下

<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zookeeper-config</artifactId> </dependency>启动配置bootstrap.properties文件

server.port=8082spring.application.name=waiter-servicespring.cloud.zookeeper.connect-string=localhost:2181 eureka.client.service-url.defaultZone=http://****:8761/eureka/应用配置application.properties,默认配置一个配置项

#默认的配置项,订单折扣率order.discount=95启动本地单节点的Zookeeper服务地址:localhost:2181

Zookeeper数据如何存储配置项

/config/应⽤用名,profile/key=value

1、/config是根目录
2、服务名是下一级目录,这里是waiter-service
3、配置的键和值对

配置路径定制

spring.cloud.zookeeper.config.root=configspring.cloud.zookeeper.config.default-context=applicationspring.cloud.zookeeper.config.profile-separator=','Zookeeper数据准备

1、创建根路径/config
2、创建服务名路径waiter-service
3、配置一个配置项order.discount = 30

准备Spring配置类

@ConfigurationProperties("order")@RefreshScope@Data@Componentpublic class OrderProperties { private Integer discount = 100; private String waiterPrefix = "test-";}控制器,访问配置

@RestController@RequestMapping("/coffee")@Slf4jpublic class CoffeeController { @Autowired private OrderProperties orderProperties; @PostMapping(path = "/getDiscount") @ResponseStatus(HttpStatus.CREATED) public String getDiscount() { return String.valueOf(orderProperties.getDiscount()); }访问结果

更改配置更新配置数据

结果自动下发

程序Console日志