<返回更多

SpringCloud Zookeeper配置中心详解

2021-04-06  今日头条  FastCoder
加入收藏

环境:Spring Boot 2.3.9 + Spring Cloud Hoxton.SR8


服务发现注册请参考《SpringCloud Zookeeper服务发现及负载均衡 》

zookeeper安装配置请参考《Kafka(zookeeper)环境配置超级详细 》

zkui安装配置

zkui是一个web界面的管理工具,虽然难看不好用,但总比敲命令舒服些。

SpringCloud Zookeeper配置中心详解

下载地址

mvn clean install

config.cfg

修改该文件的zkServer节点

SpringCloud Zookeeper配置中心详解

 

将构建后的target目录下的两个jar包复制到Docker目录下,config.cfg也拷贝到docker目录下:

SpringCloud Zookeeper配置中心详解

 

修改Dockerfile文件如下内容(我按照官方文档行不通)

FROM JAVA:8
MAINTAINER ym
ADD zkui-*.jar  zkui.jar
ADD config.cfg  config.cfg
ENTRYPOINT ["java","-jar","zkudocker run -d --restart=always --name zkui  -p 9090:9090  zkui:2.0 i.jar"]
EXPOSE 9090
docker build -t zkui:2.0 .
docker run -d --restart=always --name zkui  -p 9090:9090  zkui:2.0 

启动完后 访问

用户名/密码 admin/manager

SpringCloud Zookeeper配置中心详解

 

到此zkui的工具就按照完成了,接下来写一个配置信息导入到zkui中,内容如下

SpringCloud Zookeeper配置中心详解

 

/config : 是配置的根目录

App-config : 是应用的名称spring.application.name,

dev : spring.profiles.active 对应的配置

应用配置

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-zookeeper-config</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
  <groupId>MySQL</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <scope>runtime</scope>
</dependency>	
spring:
  cloud:
    zookeeper:
      enabled: true
      connectString: 118.24.111.33:2181,118.24.111.33:2182,118.24.111.33:2183
      connectionTimeout: 3000
---
spring:
  application:
    name: app-config
---
spring:
  profiles:
    active:
    - dev
---
spring:
  cloud:
    zookeeper:
      config:
        enabled: true
        root: /config
        defaultContext: ${spring.application.name}
        watcher:
          enabled: true

关于bootstrap.yml配置文件请参考《SpringBoot配置文件你了解多少? 》

spring:
  datasource:
    driverClassName: ${driverClassName}
    url: ${jdbcUrl}
    username: ${username}
    password: ${password}
    type: com.zaxxer.hikari.HikariDataSource
    hikari:
      minimumIdle: 10
      maximumPoolSize: 200
      autoCommit: true
      idleTimeout: 30000
      poolName: MasterDatabookHikariCP
      maxLifetime: 1800000
      connectionTimeout: 30000
      connectionTestQuery: SELECT 1

这里的${xxx} 就是通过bootstrap.yml中配置的配置中心获取的。

SpringCloud Zookeeper配置中心详解

 

正常启动,说明配置成功了。接下来通过一个接口获取配置信息,查看是否能实时更新

@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {
	@Value("${username}")
	private String username ;
	@GetMapping("/get")
	public Object info() {
	    return username ;
	}
}

注意:这里不要在类上添加@RefreshScope注解

SpringCloud Zookeeper配置中心详解

 

通过zkui修改配置

SpringCloud Zookeeper配置中心详解

 

刷新页面

SpringCloud Zookeeper配置中心详解

 

完毕!!!

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>