springcloud config配置中心及消息总线bus
一、springcloud config 原理及使用场景
一种远程配置的实现方式,通过配置远程的配置服务器(git/svn)进行配置管理,客户端通过https协议主动拉去配置信息,完成配置获取。优点在于获取配置不用重启服务器,搭配springcloud bus 消息总线,对所有服务配置更新。
二、用的较多的开源配置中心
比如携程的 Apollo、蚂蚁金服的 disconf 等,对比 Spring Cloud Config,这些配置中心功能更加强大。
三、远程配置中心服务器
git、svn或本地文件存储
四、springcloud config 配置中心组成
远程配置服务器(git/svn)、配置中心服务server、配置中心客户端client
五、git配置中心文件配置
选择码云gitee或github,这里选取gitee,这里需要注意的是配置文件的命名方式,客户端服务名称-开发环境-properties/yml,如testClientService-dev-properties
六、配置中心服务server 代码实现
作用:1、拉去git服务器配置副本,保证是最新的配置
2、配合Eureka 实现服务发现,配合cloud bus 实现配置推送更新
pom依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>2.1.2.RELEASE</version>
</dependency>
application.properties 配置
server.port=10015 spring.cloud.config.server.git.uri = https://gitee.com/hdf123/springcloud_config2.git spring.cloud.config.server.git.search-paths = / spring.cloud.config.server.git.username = spring.cloud.config.server.git.password =
启动类注解
@SpringBootApplication @EnableDiscoveryClient @EnableConfigServer @EnableEurekaClient @RefreshScope public class ServerConfigApp { public static void main( String[] args ) { SpringApplication.run(ServerConfigApp.class,args); } }
七、配置中心服务client 端实现
pom依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--引入springcloud上下文依赖,使bootstrap配置文件生效-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>2.1.2.RELEASE</version>
</dependency>
bootstrap.properties 配置
spring.application.name=springcloud-config-client server.port=10016 #eureka配置 eureka.client.serviceUrl.defaultZone=http://localhost:10000/eureka/ #开启配置服务发现 spring.cloud.config.discovery.enabled=true #配置服务实例名称 spring.cloud.config.discovery.service-id=springcloud-config-server # 指明配置服务中心的网址 spring.cloud.config.uri=http://localhost:10015 #配置文件所在分支 spring.cloud.config.label=master #配置所使用文件类别 dev-开发,test测试,pro生产 spring.cloud.config.profile=master #spring.cloud.config.fail-fast:true ##自动刷新配置 默认 health,info management.endpoints.web.exposure.include="*" ##是否需要权限拉去,默认是true,如果不false就不允许你去拉取配置中心Server更新的内容 management.security.enabled=false
启动类注解配置
@EnableEurekaClient @SpringBootApplication @EnableDiscoveryClient @RefreshScope public class ConfigClientApp { public static void main( String[] args ) { SpringApplication.run(ConfigClientApp.class,args); } }
八、集成spring bus 做消息广播
服务端pom依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
服务端application.properties 配置
#rabbitmq配置 spring.cloud.rabbitmq.host=217.0.0.1 spring.cloud.rabbitmq.port= 5672 spring.cloud.rabbitmq.username=guset spring.cloud.rabbitmq.password=guest #监控点开启 management.endpoints.web.exposure.include= "*" management.security.enabled=false
服务端启动类注解
@RefreshScope
客户端端pom依赖
<!--增加对消息总线的支持-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
客户端 bootstrap.properties 配置
## 开启消息跟踪 spring.cloud.bus.trace.enabled=true spring.rabbitmq.host=127.0.0.1 spring.rabbitmq.port=5672 spring.rabbitmq.username=guest spring.rabbitmq.password=guest
客户端启动类注解
@EnableDiscoveryClient
@RefreshScope
安装rabbitmq
1、安装rabbitmq的依赖工具erlong,并配置环境变量
2、安装rabbitmq,以及安装rabbitmq 插件
至于此,我们的配置中心就搭建完成啦。!!!!!!!!!!!!
更多学习内容推荐:https://www.cnblogs.com/fengzheng/p/11242128.html

浙公网安备 33010602011771号