栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spring cloud day(7) config+bus

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spring cloud day(7) config+bus

spring cloud day(7)config+buss
  • 一、分布式面临的配置问题
    • 1.1 Spring cloud config
    • 1.2 config服务端和客户端
    • 1.3 配置文件说明
    • 1.4 rabbitmq
  • 二、操作
    • 2.1 config Server服务端3344的配置
    • 2.2 Config中心端读取gitee上配置文件
    • 2.3 config 客户端3355配置
    • 2.4 客户端动态读取gitee中的配置
    • 2.5 每次修改gitee配置,广播通知
  • 三、Spring Cloud Bus
    • 3.1 需要改进的地方
    • 3.2 Bus
    • 3.3 RabbitMq 安装
    • 3.4 config-client-3366
    • 3.5 设计思想
    • 3.6 测试
    • 3.7 3355完整yml

一、分布式面临的配置问题 1.1 Spring cloud config

1.2 config服务端和客户端

1.3 配置文件说明
  • application.yml是用户级的资源配置项
  • bootstrap.yml是系统级,优先级更高
1.4 rabbitmq
  • 15672是ui界面端口
  • 5672是client访问接口
二、操作 2.1 config Server服务端3344的配置
  • pom
    

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

        
        
            org.springframework.cloud
            spring-cloud-config-server
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        
        
            com.atguigu.springcloud
            cloud-api-commons
            ${project.version}
        
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-actuator
        

        
        
        
        
        
        

        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

  • configBoot启动类
package com.pack.configU;

@SpringBootApplication
@EnableConfigServer
@ServletComponentScan("com.atguigu.springcloud.filter")
public class configBoot {

    public static void main(String[] args) {
        SpringApplication.run(configBoot.class, args);
        System.out.println("启动成功");

    }

}

  • yml配置文件
server:
  port: 3344

spring:
  application:
    name: cloud-config-center #注册进Eureka服务器的微服务名
  cloud:
    config:
      server:
        git:
          uri: https://gitee.com/ybx1/springccloud-config #gitee上面的git仓库名字
          search-paths: 
@SpringBootApplication
@EnableEurekaClient
public class clientBoot {
    public static void main(String[] args) {
        SpringApplication.run(clientBoot.class, args);
        System.out.println("启动成功");
    }
}
  • controller类
package com.pack.configUi.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;


@RestController
@RefreshScope
public class clientController {

    @Value("${server.port}")
    private String serverPort;

    @Value("${config.info}")
    private String configInfo;


    @GetMapping("/configInfo")
    public String getConfigInfo() {
        return "serverPort:" + serverPort + "tnn configInfo: " + configInfo;
    }
}
3.5 设计思想
  • 采用方案2,通知总控中心,再通知客户端

  • 总控3344加入pom
   
            org.springframework.cloud
            spring-cloud-starter-bus-amqp
        
  • 3344加入新的yml
#rabbitmq相关配置
spring:
  rabbitmq:
    host: localhost
    port: 15672
    username: guest
    password: guest
management:
  endpoints: #暴露bus刷新配置的端点
    web:
      exposure:
        include: 'bus-refresh'
  • 3355,3366加入pom,yml和3344一致
3.6 测试
  • 3344访问
http://localhost:3344/config-dev.yml
  • 3355访问
http://localhost:3355/configInfo
  • 3366访问
http://localhost:3366/configInfo
  • github修改配置文件
config:
       info: this is a file from gitee, version 4
  • 运维人员cmd运行总控refresh命令
 -X POST "http://localhost:3344/actuator/bus-refresh"

此处与3344yml配置对应

###rabbitmq相关配置,暴露bus刷新配置的端点 SpringCloud Bus动态刷新全局广播
management:
  endpoints: #暴露bus刷新配置的端点
    web:
      exposure:
        include: 'bus-refresh'
  • 刷新3355,3366就可以得到最新的配置文件
3.7 3355完整yml
server:
  port: 3366

spring:
  application:
    name: config-client
  cloud:
    config:
      label: master  #分支名称
      name: config  #配置文件名称
      profile: dev  #读取后缀名称   上述三个综合http://localhost:3344/master/config-dev.yml
      uri: http://localhost:3344  #配置中心的地址
  rabbitmq:
    host: localhost
    port: 15672
    username: guest
    password: guest

#服务注册到eureka地址
eureka:
  client:
    service-url:
      #设置与eureka server交互的地址查询服务和注册服务都需要依赖这个地址
      defaultZone: http://localhost:7001/eureka #单机版

## 暴露监控端点 否则 curl -X POST "http://localhost:3355/actuator/refresh" 不可使用
#management:
#  endpoints:
#    web:
#      exposure:
#        include: "*"
##SpringCloud Bus动态刷新定点通知 公式:http://localhost:配置中心的端口号/actuator/bus-refresh/{destination}
##例如 只通知3355,curl -X POST "http://localhost:3344/actuator/bus-refresh/config-client:3355"
##rabbitmq相关配置,暴露bus刷新配置的端点

  • 定点通知,只通知3355,不通知3366
curl -X POST "http://localhost:3344/actuator/bus-refresh/localhost:3355"
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/988731.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号