案例
使用Zookeeper作为配置中心,实现配置的修改和自动下发,基于Spriing Cloud我们可以轻松的实现。
添加依赖
pom.xml的关键信息如下
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-config</artifactId>
</dependency>
启动配置
bootstrap.properties文件
server.port=8082
spring.application.name=waiter-service
spring.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=config
spring.cloud.zookeeper.config.default-context=application
spring.cloud.zookeeper.config.profile-separator=‘,‘
Zookeeper数据准备
1、创建根路径/config
2、创建服务名路径waiter-service
3、配置一个配置项order.discount = 30
准备Spring配置类
@ConfigurationProperties("order")
@RefreshScope
@Data
@Component
public class OrderProperties {
private Integer discount = 100;
private String waiterPrefix = "test-";
}
控制器,访问配置
@RestController
@RequestMapping("/coffee")
@Slf4j
public class CoffeeController {
@Autowired
private OrderProperties orderProperties;
@PostMapping(path = "/getDiscount")
@ResponseStatus(HttpStatus.CREATED)
public String getDiscount() {
return String.valueOf(orderProperties.getDiscount());
}
访问结果
更改配置
更新配置数据
结果自动下发
程序Console日志
原文地址:https://blog.51cto.com/janephp/2449289
时间: 2024-10-17 21:31:49