spring cloud 配置中心(git + kafka)

spring cloud 配置中心(git + kafka)

配置中心(服务端)

该项目基于spring cloud Edgware.SR5 版本
application.properties

server.port=8888
spring.config.name=config-server

# git存储库位置(uri需要加上.git后缀)
spring.cloud.config.server.git.uri=https://xxxx/spring-cloud-config.git
# 如果是私有库,则需要加用户名密码验证
spring.cloud.config.server.git.username=xxx
spring.cloud.config.server.git.password=xxx
# 去掉端点安全认证
management.security.enabled=false

# 注册到eureka注册中心,以符合spring cloud服务治理的理念
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/

# 消息总线bus-kafka配置
spring.cloud.bus.refresh.enabled=true
spring.cloud.stream.kafka.binder.zk-nodes=127.0.0.1:2181
spring.cloud.stream.kafka.binder.brokers=127.0.0.1:9092

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>

    <!-- 默认使用0.11.1.1,我的kafka服务器为0.10.0.0,所以需要指定一样的版本 -->
    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka_2.11</artifactId>
        <version>0.10.0.0</version>
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka-clients</artifactId>
        <version>0.10.0.0</version>
    </dependency>

测试:
访问 http://localhost:8888/consumer-server/dev 看能否看到相应的配置信息

客户端

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>
    
    <!-- 默认使用0.11.1.1,我的kafka服务器为0.10.0.0,所以需要指定一样的版本 -->
    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka_2.11</artifactId>
        <version>0.10.0.0</version>
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka-clients</artifactId>
        <version>0.10.0.0</version>
    </dependency>

bootstrap.properties中指定配置中心

# 配置中心
spring.cloud.config.name=consumer-server
spring.cloud.config.profile=dev

# 使用配置中心服务名,而非url,以便符合服务治理理念
#spring.cloud.config.uri=http://localhost:8888
spring.cloud.config.discovery.enabled=true
spring.cloud.config.discovery.service-id=config-server
management.security.enabled=false

application.properties中指定kafka信息(或者放在配置中心)

spring.cloud.stream.kafka.binder.zk-nodes=10.19.11.18:2181
spring.cloud.stream.kafka.binder.brokers=10.19.11.18:9092

controller
使用@RefreshScope来达到刷新配置的目录

测试:
访问 http://localhost:8081/consumer/gitConfig/welcome 看是否能取到git上的配置

bus刷新配置

修改 git 上的配置,使用 post 请求config server地址 http://localhost:8888/bus/refresh ,然后重新请求客户端 http://localhost:8081/consumer/gitConfig/welcome, 发现配置已经改变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值