zookeeper(5)配置中心

案例

使用Zookeeper做爲配置中心,實現配置的修改和自動下發,基於Spriing Cloud咱們能夠輕鬆的實現。spring

添加依賴

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(5)配置中心

Zookeeper數據如何存儲

配置項

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

一、/config是根目錄
二、服務名是下一級目錄,這裏是waiter-service
三、配置的鍵和值對bootstrap

配置路徑定製

spring.cloud.zookeeper.config.root=config
spring.cloud.zookeeper.config.default-context=application
spring.cloud.zookeeper.config.profile-separator=','

Zookeeper數據準備

一、建立根路徑/config
二、建立服務名路徑waiter-service
三、配置一個配置項order.discount = 30app

zookeeper(5)配置中心

準備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());
    }

訪問結果

zookeeper(5)配置中心

更改配置

更新配置數據

zookeeper(5)配置中心

結果自動下發

zookeeper(5)配置中心

程序Console日誌

zookeeper(5)配置中心
zookeeper(5)配置中心

相關文章
相關標籤/搜索