美文网首页
spring cloud bus

spring cloud bus

作者: 持而盈 | 来源:发表于2017-12-04 19:09 被阅读42次

    Bus是一个消息总线,config-server和其他服务都通过Bus监听一个消息队列(本例用Kafka), 通过它可以实现配置中心变动后,所有服务实例都及时刷新配置。

    本例是在spring cloud config的基础上来的。

    Config Server 配置

    引入maven:

            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-bus-kafka</artifactId>
            </dependency>
    

    修改bootstrap.yml

    spring:
      application:
        name: CONFIG-SERVER
    
      # 配置一个数据源
      datasource:
        url: jdbc:mysql://ubuntu:3306/spring?characterEncoding=utf-8&useSSL=true
        username: root
        password: root
    
    
      profiles:
        # 此处必须指定配置仓库的类型, 可以选git snv等, 也可以写多个. 这里用的是数据库.
        active: jdbc
      cloud:
        config:
          server:
            jdbc:
              # 重写查询Sql, 原SQL中KEY是关键字需要加反引号
              sql: 'SELECT `KEY`, VALUE from PROPERTIES where APPLICATION=? and PROFILE=? and LABEL=?'
    
        # Bus使用Stream来连接Kafka,会同时访问zookeeper和kafka。
        stream:
          kafka:
            binder:
              zkNodes:
                192.168.40.128
              brokers:
                192.168.40.128
        # Bus的相关配置。
        bus:
          trace:
            enabled: true
    
    management:
      security:
        enabled: false
    
    
    

    主类上添加 @EnableKafka

    Client配置

    客户端服务引入maven和配置文件,跟Server相同。
    唯一的区别是Client不需要加主类注解。

    配置及时刷新

    完成上面的配置之后,配置中心和下游服务就通过kafka连接了,所有的服务都会监听Kafka的一个Topic(SpringBus,名字可配置),此时修改配置数据表,然后访问任意服务的 /bus/refresh 端点即可实现所有服务刷新配置。

    image.png

    相关文章

      网友评论

          本文标题:spring cloud bus

          本文链接:https://www.haomeiwen.com/subject/cbixixtx.html