spring cloud 实践干货 - 配置中心

一.直接通过idea的向导创建一个项目,选择的项如下


项目创建后pom.xml的dependency如下:

<dependencies>

		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-config-server</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-bus-amqp</artifactId>
		</dependency>
	</dependencies>


二。创建3个配置文件

application.yml     #制定环境变量

application-dev.yml  #开发环境的配置

application-pro.yml  #线上环境的配置

application-dev.yml的配置信息:

spring:
  application:
      name: config-server
  cloud:
    config:
      server:
        git:
          uri: https://code.aliyun.com/hyb-sys/cloud-config.git
          searchPaths: elastic-api,routing-zuul
          username: *****
          password: ******
  rabbitmq:
    host: ******
    port: 5672
    username: *****
    password: ******
    virtual-host: /cloud_bus
management:
  security:
    enabled: false
server:
  port: 8999

eureka:
  instance:
    prefer-ip-address: true
    instance-id: ${spring.cloud.client.ipAddress}:${server.port}
    lease-renewal-interval-in-seconds: 5      # 心跳时间,即服务续约间隔时间(缺省为30s)
    lease-expiration-duration-in-seconds: 10  # 发呆时间,即服务续约到期时间(缺省为90s。
  client:
    serviceUrl:
      defaultZone: http://dev:dev123@127.0.0.1:8800/eureka/


注意 :searchPaths指的是git仓库下需要加载的配置文件的文件夹,可以是多个。但是这些文件夹名不是项目名。具体的项目对应的配置文件,是放在这个写文件夹下面的yml文件,配置文件的明白严格按照 {spring.application.name}-{env}.yml 这样的格式,如:

application.yml可以制定加载的配置文件,如下:

spring:
  profiles:
    active: dev

三。客户端的配置

1.在客户端资源文件夹创建 bootstrap.properties,删除其他配置文件,这个文件会优先其他yml文件加载,如果如下:

spring.cloud.config.name=queue-product
spring.cloud.config.label=master
spring.cloud.config.profile=pro
# 开启Config服务发现支持
spring.cloud.config.discovery.enabled=true  
# 此处需要设置成Config Server在Eureka上注册的服务名
spring.cloud.config.discovery.service-id=config-server
eureka.client.service-url.defaultZone=http://dev:dev123@127.0.0.1:8800/eureka/

注意:service-id 是 前面两步中创建的配置服务器项目的 spring.application.name 。

2.将配置文件按照命名规范保存在git中。内容如下:

server:
  port: 8085

spring:
  rabbitmq:
    host: *********
    port: 5672
    username: ****
    password: *****
    virtual-host: /hyb_test

eureka:
  instance:
    lease-renewal-interval-in-seconds: 15      # 心跳时间,即服务续约间隔时间(缺省为30s)
    lease-expiration-duration-in-seconds: 30  # 发呆时间,即服务续约到期时间(缺省为90s。
  client:
    serviceUrl:
      defaultZone: http://weizhigang:laowei123@10.27.242.136:5500/eureka/


注意:最好不要在配置文件里面再配置config-server相关的配置,这样可能导致服务器启动不了或报错,这里我就被折腾了不少时间。

四。刷新服务器

通过post请求访问配置文件的服务器,更新其他服务器的配置文件,如下

curl -X POST http://localhost:5999/bus/refresh?destination=elastic-api:5001
curl -X POST http://localhost:5999/bus/refresh?destination=routing-zuul:5100

也可以刷新所有微服务的配置文件,如下

curl -X POST http://localhost:5999/bus/refresh

架构图如下,图片转自网络:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值