SpringCloudConfig使用总结【分布式配置】
2017-12-11 19:24
711 查看
一:开发前准备:
1、搭建ZK
启动命令:zkServer.sh start
2、搭建Kafka或rabbitmq
kafka启动命令:bin/kafka-server-start.sh config/server.properties &
3、搭建git,这里直接用了github
https://github.com/DearGongQi/testspringcloud
二:Service端:
1、pom文件里加入:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Edgware.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-monitor</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>
</dependencies>
2、创建application.properties
#git地址可以换成svn
spring.cloud.config.server.git.uri=https://github.com/DearGongQi/testspringcloud.git
#在配置的文件名字下查找
spring.cloud.config.server.git.searchPaths=wmbusapi
#kafka地址,可以好用rabbitmq代替
spring.cloud.stream.kafka.binder.brokers=192.168.54.152:9092
#kafka需要的zk地址
spring.cloud.stream.kafka.binder.zk-nodes=192.168.54.152:2181
3、ConfigServerApplication.java
添加EnableConfigServer 表示这是一个springcloudconfigserver
三:Client端
1、在pom文件中加入:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Edgware.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<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-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
2、ConfigClientApplication
3、创建bootstrap.properties
#远程配置中心地址
spring.cloud.config.uri=http://127.0.0.1:8080
#配置中心中对应的application
spring.cloud.config.name=EtradeConfig
#当前环境,可通过启动脚本设置参数来控制
spring.cloud.config.profile=dev
spring.cloud.stream.kafka.binder.brokers=192.168.54.152:9092
spring.cloud.stream.kafka.binder.zk-nodes=192.168.54.152:2181
server.port=8888
#不校验验证,不然401
management.security.enabled=false
四:启动
分别启动对应的main方法即可
五:说明
1、客户端启动后通过浏览器可以访问,看到返回的地址是配置文件里的。
2、可以通过post请求:(通过postman发起)
http://localhost:8888/env 参数:cache.couchbase.servers:192.168.1.1可以修改对客户端节点的参数配置
3、修改参数后不会立即生效,可以通过pos请求:http://localhost:8888/refresh ,来刷新对应客户端的配置。再访问客户端,配置文件就动态修改了。
注意:这里是访问客户端来刷配置,如果需要对所有节点生效可以访问配置中心服务端:http://localhost:8080/bus/env 来修改所有节点配置、用http://localhost:8080/bus/refresh 来更新所有节点
1、搭建ZK
启动命令:zkServer.sh start
2、搭建Kafka或rabbitmq
kafka启动命令:bin/kafka-server-start.sh config/server.properties &
3、搭建git,这里直接用了github
https://github.com/DearGongQi/testspringcloud
二:Service端:
1、pom文件里加入:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Edgware.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-monitor</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>
</dependencies>
2、创建application.properties
#git地址可以换成svn
spring.cloud.config.server.git.uri=https://github.com/DearGongQi/testspringcloud.git
#在配置的文件名字下查找
spring.cloud.config.server.git.searchPaths=wmbusapi
#kafka地址,可以好用rabbitmq代替
spring.cloud.stream.kafka.binder.brokers=192.168.54.152:9092
#kafka需要的zk地址
spring.cloud.stream.kafka.binder.zk-nodes=192.168.54.152:2181
3、ConfigServerApplication.java
添加EnableConfigServer 表示这是一个springcloudconfigserver
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.config.server.EnableConfigServer; /** * Created by IntelliJ IDEA. * User: GongQi * Date: 2017/12/11 */ @SpringBootApplication @EnableConfigServer public class ConfigServerApplication { public static void main(String[] args) { SpringApplication.run(ConfigServerApplication.class, args); } }
三:Client端
1、在pom文件中加入:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Edgware.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<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-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
2、ConfigClientApplication
import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * Created by IntelliJ IDEA. * User: GongQi * Date: 2017/12/11 */ @SpringBootApplication @RestController @RefreshScope public class ConfigClientApplication { @Value("${cache.couchbase.servers}") private String name; @RequestMapping("/") public String home() { System.out.println(name); return name; } public static void main(String[] args) { SpringApplication.run(ConfigClientApplication.class, args); } public String getName() { return name; } public void setName(String name) { this.name = name; } }
3、创建bootstrap.properties
#远程配置中心地址
spring.cloud.config.uri=http://127.0.0.1:8080
#配置中心中对应的application
spring.cloud.config.name=EtradeConfig
#当前环境,可通过启动脚本设置参数来控制
spring.cloud.config.profile=dev
spring.cloud.stream.kafka.binder.brokers=192.168.54.152:9092
spring.cloud.stream.kafka.binder.zk-nodes=192.168.54.152:2181
server.port=8888
#不校验验证,不然401
management.security.enabled=false
四:启动
分别启动对应的main方法即可
五:说明
1、客户端启动后通过浏览器可以访问,看到返回的地址是配置文件里的。
2、可以通过post请求:(通过postman发起)
http://localhost:8888/env 参数:cache.couchbase.servers:192.168.1.1可以修改对客户端节点的参数配置
3、修改参数后不会立即生效,可以通过pos请求:http://localhost:8888/refresh ,来刷新对应客户端的配置。再访问客户端,配置文件就动态修改了。
注意:这里是访问客户端来刷配置,如果需要对所有节点生效可以访问配置中心服务端:http://localhost:8080/bus/env 来修改所有节点配置、用http://localhost:8080/bus/refresh 来更新所有节点
相关文章推荐
- Spring Cloud(十)高可用的分布式配置中心 Spring Cloud Config 中使用 Refresh
- Spring Cloud Config 分布式配置中心使用教程
- 非spring boot (即spring) 使用/集成 Spring cloud Config 分布式配置中心
- Spring Cloud(十)高可用的分布式配置中心 Spring Cloud Config 中使用 Refresh
- J360-cloud SpringCloud系列一:分布式配置服务器ConfigServer
- 史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)
- spring cloud config server使用svn来作为外部配置中心
- 史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)
- 史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)
- 史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)
- spring cloud config整合gitlab搭建分布式的配置中心
- 史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)
- 史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)
- 史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)
- SpringCloud: 分布式配置中心(Spring Cloud Config)
- SpringCloud Config-----1、搭建分布式配置中心
- 史上最简单的SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)
- 史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)
- 史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)
- 史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)