当前位置: 首页 > article >正文

SpringCloud Config配置中心 SpringCloud Bus消息总线

一、SpringCloud Config  使用git储存配置信息

        1)什么是

        SpringCloud Config项目实现的目标是将配置文件从本地项目中抽出来放到git仓库中,项目启动时自动从git仓库中取配置文件。

        但是本地项目不直接和git仓库通信,而是通过配置服务器中转。


         2)怎么实现

〇、打开Eureka服务器

        使用Eureka完成服务发现,所有其他服务器都视为Eureka客户端。

①、配置git

        在gitee网址中新建本地仓库cloud.config、 新建本地yml文件application-diy.yml


②、config-server

        1)依赖坐标:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.12.RELEASE</version>
    </parent>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR12</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
        2)配置中心服务器的配置文件
server:
  port: 8888

# 增加分布式配置中心服务端配置。连接什么GIT仓库
spring:
  application:
    name: config-server
  cloud: # spring cloud常用配置前置
    config: # 分布式配置中心配置前置
      server: # 服务端配置
        git: # git文件仓库配置
          uri: https://gitee.com/ben10rk/cloud.config.git # git仓库具体地址
          #username: wollo_test # 私有仓库必须配置用户名和密码。
          #password: 123456789 # 公开仓库可以省略用户名和密码配置。
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
        3)启动类添加  启动服务注解


③、config-client

        1)依赖坐标

                将配置中心服务器的启动器依赖改为客户端依赖

        2)配置文件

                需要使用bootstrap.yml命名配置文件,该文件加载在application文件前,可以看作是实际配置文件的模板父文件。

                

 # 新配置文件 bootstrap.yml | properties。是spring cloud config技术支持的新配置文件。
 # 配置文件由config分布式配置中心客户端读取,并请求分布式配置中心服务端,查询获取配置文件之后,Spring Boot根据配置文件,初始化环境
eureka:
 client:
   service-url:
     defaultZone: http://localhost:8761/eureka/
spring:
  application:
    name: config-client
  cloud:
    config: # spring cloud config 客户端配置
      discovery:
        enabled: true
        service-id: config-server
      uri: http://config-server/ # 分布式配置中心服务端地址。 默认http://localhost:8888
      name: application # 要读取的配置文件名,默认是spring.application.name的配置值,如果没有配置,默认application
      profile: diy # 要读取的配置文件环境是什么,默认default
      label: master # 要读取的配置文件所在分支名称。默认null。从主干分支获取文件。

 

3)实现效果

        和正常在客户端项目中直接编写配置文件效果一样。但是该方式足够灵活,可以实现动态加载。

        在客户端编写控制器:

        



二、SpringCloud Bus  服务器集群配置消息总线

        SpringCloud Bus 是在 SpringCloud config的基础上,实现动态加载集群的配置文件,这个过程首先是热部署,其次是集群,再然后是消息队列。

        1)依赖坐标

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
        </dependency>
         <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
         </dependency>

         2)配置文件

                连接rabbitmq;

                开放actuator所有功能;

                编写两个启动类模拟集群。

eureka:
 client:
   service-url:
     defaultZone: http://localhost:8761/eureka/
spring:
  application:
    name: config-client
  cloud:
    config: # spring cloud config 客户端配置
      discovery:
        enabled: true
        service-id: config-server
      uri: http://config-server/ # 分布式配置中心服务端地址。 默认http://localhost:8888
      name: application # 要读取的配置文件名,默认是spring.application.name的配置值,如果没有配置,默认application
      profile: diy # 要读取的配置文件环境是什么,默认default
      label: master # 要读取的配置文件所在分支名称。默认null。从主干分支获取文件。
  rabbitmq:
    host: 192.168.222.128 # RabbitMQ服务器的IP。默认localhost
    port: 5672 # RabbitMQ服务器的端口。
    username: wollo # RabbitMQ的访问用户名。默认guest。
    password: wollo # RabbitMQ的访问密码。默认guest
    virtual-host: / # 连接RabbitMQ中的哪一个虚拟主机。默认 /

management:
  endpoints:
    web:
      exposure:
        include: "*"
server:
  port: 8080

        3)开启作用域范围

                添加注解 @RefreshScope

       4)测试

             1、   一开始访问两个端口8080 , 8081:

            2、     修改git仓库配置文件:

            3、    热刷新其中一个客户端,这里刷新8080端口。

           4、     效果是两个端口都刷新了:

 


http://www.kler.cn/a/331221.html

相关文章:

  • 单机游戏《野狗子》游戏运行时提示dbghelp.dll缺失是什么原因?dbghelp.dll缺失要怎么解决?
  • 基于Springboot的在线问卷调查系统【附源码】
  • go语言并发文件备份,自动比对自动重命名(逐行注释)
  • “檢測到不安全的代理”怎麼修復?
  • C/C++基础知识复习(43)
  • Docker 技术系列之安装多版本Mysql5.6和Mysql5.7
  • SQL基础教程
  • linux系统解压zip文件名乱码
  • vue3项目执行pnpm update后还原package.json文件后运行报错
  • 7.使用 VSCode 过程中的英语积累 - Terminal 菜单(每一次重点积累 5 个单词)
  • docker快速安装ELK
  • IDEA在git提交时添加忽略文件
  • 【动态规划-分组背包】【hard】力扣2218. 从栈中取出 K 个硬币的最大面值和
  • C++ 类和对象的初步介绍
  • 网页前端开发之Javascript入门篇(3/9):条件控制
  • Vue.js 组件开发知识详解
  • 国外电商系统开发-运维系统开发
  • python如何查询函数
  • pod管理及优化
  • 解决 MySQL 服务无法启动:failed to restart mysql.service: unit not found
  • 2024-09-04 深入JavaScript高级语法十五——浏览器原理-V8引擎-js执行原理
  • Springboot项目jar包中resource目录下静态资源excel、pdf等二进制文件损坏
  • 跨平台音乐播放器Feishin
  • 位运算(6)_只出现一次的数字 II
  • Build a Large Language Model (From Scratch)学习汇总
  • uni-app运行到 Android 真机和Android studio模拟器