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

posted @ 2020-03-14 10:59  狭路相逢智者胜  阅读(54)  评论(0)    收藏  举报