小鸭子的学习笔记duck

Duck Blog

唐如飞

( ^∀^)/欢迎\( ^∀^)

79 文章数
14 评论数

Config配置中心&&Bus

tangrufei
2022-08-29 / 0 评论 / 413 阅读 / 0 点赞

Config配置中心&&Bus

1、概念

  • 配置中心管理着整个系统所有yml配置文件

    2.优缺点

  • 优点

    • 可以将所有配置文件上云,修改一处,处处应用,应用不需要修改内容重新打包了
  • 缺点

    • 云上配置文件修改之后,应用需要手动重启,才能读取到最新的配置

3、ConfigServer:配置中心服务端

  • 1、新建服务,导入相关依赖

  • 2、启动类添加注解:@EnableConfigServer

  • 3、yml配置文件(配置Git的仓库地址,账号、密码等信息)

4、ConfigClient:配置中心客户端

  • 1、在已有微服务中添加依赖

  • 2、配置Bootstrap.yml文件

    • 需要配置:配置中心的地址、需要到git上拉取哪个文件的名称、环境、分支
  • 3、删除application.yml

    • 删除的内容都上传到git上即可

5、测试

  • 删除了本地application.yml文件之后,再启动,如果端口是8080,说明有问题,否则就是成功了

bus

  • 消息总线

  • 实现配置的自动刷新

  • 流程原理

    • 1.利用码云的钩子,配置一个内网穿透地址,仓库的代码发生改变向这个地址发送一次post请求

    • 2.url配置为配置中心的服务端地址,监听到消息后,会让消息总线通知所有微服务

    • 3.微服务收到消息总线的通知后重新拉取最新的配置文件

    • 4,特别注意:需要加上 @RefreshScope 动态刷新 作用域`

  • 实操步骤

    • 1.将消息中心服务集成消息总线

      • 导入依赖

        • org.springframework.cloud spring-cloud-starter-bus-amqp org.springframework.cloud spring-cloud-config-monitor org.springframework.boot spring-boot-starter-actuator
          • 修改yml配置文件

            • eureka:

    client:
    serviceUrl:
    defaultZone: http://admin:123456@peer1:1010/eureka/,http://admin:123456@peer2:1011/eureka/,http://admin:123456@peer3:1012/eureka/ #注册中心地址
    instance:
    prefer-ip-address: true #使用ip地址注册
    instance-id: config-server:1070 #指定服务的id
    server:
    port: 1070
    spring:
    rabbitmq: #集成RabbitMQ如果配置是默认,可以省略
    host: localhost #mq连接地址
    port: 5672 #mq端口
    username: guest
    password: guest
    application:
    name: config-server
    cloud:
    config:
    server:
    git:
    #配置远程仓库地址,去仓库中复制
    uri: https://gitee.com/little_wolf/springcloud-config-1010.git
    username: 18086295423 #仓库是私有的需要账号
    password: itsource123456
    #actuator配置
    management:
    endpoint:
    health:
    show-details: always #打印日志
    endpoints:
    web:
    exposure:
    include: "" #向外暴露的接口,这里则表示所有的actuator接口都可以被访问
    enabled-by-default: true #开启actuator监控

    • 2.其他微服务集成消息总线

      • 导入依赖

    org.springframework.cloud
    spring-cloud-starter-bus-amqp

org.springframework.boot spring-boot-starter-actuator
	- 修改yml配置文件

		- eureka:

client:
serviceUrl:
defaultZone: http://admin:123456@peer1:1010/eureka/,http://admin:123456@peer2:1011/eureka/,http://admin:123456@peer3:1012/eureka/ #注册中心地址
spring:
cloud:
config:
discovery:
enabled: true
service-id: config-server #服务发现的方式执行配置中心
name: application-zuul
profile: dev #环境 组成完整的文件名:application-dept-dev.yml
label: master
bus: #这行代码很重要,根据官方定义的标准来的 ,就是为了产生一个bus.id = zuul-server:dev:3434345435
id: ${spring.application.name}:${spring.cloud.config.profile}:${random.value}
rabbitmq: #集成RabbitMQ如果配置是默认,可以省略
host: localhost #mq连接地址
port: 5672 #mq端口
username: guest
password: guest
#...省略...

- 3.测试

	- 云端修改yml的地址
	- 不重启项目再次请求getvalue
	- 查看结果发现已经动态刷新*
文章不错,扫码支持一下吧~
上一篇 下一篇
评论
来首音乐
光阴似箭
今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月