安装zookeeper
下载
zookeeper下载:https://zookeeper.apache.org/releases.html
解压
windows 直接解压
linux执行
tar -zxvf zookeeper-3.4.12
修改配置文件
- windows
将解压目录下sample_zoo.cfg重命名为zoo.cfg
修改zoo.cfg中dataDir(将dataDir数据存储位置改为指定目录)
点击启动
- linux
在安装目录下的config目录中 执行
mv sample_zoo.cfg zoo.cfg
在安装目录下的bin目录中 执行启动命令
./zkServer.sh start ##启动命令
./zkServer.sh status ##查看启动状态
安装kafka
下载
http://kafka.apache.org/downloads
解压
- windows
解压下载的文件,目录结构为:
进入config目录修改server.properties文件
# 修改为指定目录
log.dirs=E:\\data\\logs\\kafka
# 指定zookeeper服务的链接 端口默认为 2181
zookeeper.connect=localhost:2181
advertised.listeners=plaintext://localhost:9092
启动kafka:
在安装目录下 打开cmd命令执行
.\bin\windows\kafka-server-start.bat .\config\server.properties
SpringCloud config结合bus(kafka)动态刷新配置
config-server
pom.xml依赖导入
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-kafka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
application.yml配置
spring:
cloud:
config:
native:
searchLocations: classpath:/configs/{profile} #指定配置文件地址
bus:
refresh:
enabled: true #开启bus刷新
kafka:
bootstrap-servers:
- localhost: 9092 #kafka服务地址
management:
endpoints:
web:
exposure:
include: "*" #开启actuator 中api(主要是refresh)
endpoint:
health:
show-details: always
在项目resources/ configs文件夹下创建dev、test、prod等不同环境的文件夹,并在相应文件夹下放置配置文件。
例如:文件目录结构
resources
dev
config1.yml
config2.yml
config-client
pom.xml依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-kafka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
bootstrap.yml配置文件
spring:
cloud:
config:
uri: http://localhost:9999 #config配置中心地址
name: config1,config2 #config配置中心resources下配置文件
profile: dev #配置文件所属环境
fail-fast: true
bus:
refresh:
enabled: true
kafka:
bootstrap-servers:
- localhost:9092
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: always
分别启动config-server -> config-client
修改config-server下配置文件
- 在不重启的情况下修改了配置文件
- 向配置中心执行刷新请求http://localhost:9999/actuator/bus-refresh
- config-server 、config-client将会重新加载配置
- 注:http://localhost:9999/actuator/bus-refresh是post请求