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

【Spring Cloud】05--Config配置中心

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

【Spring Cloud】05--Config配置中心

一,基本介绍


yml 配置文件保存到git服务器,例如 github.com 或 gitee.com
微服务启动时,从服务器获取配置文件

二,准备工作

1)在父工程springcloud1下新建文件夹 config

2)把2,3,4三个项目的配置文件,复制到config目录,并修改名称

注:一般运行配置用dev,测试用test,生产用prod,官方文档这么写的,当然,取名没有要求,这样会显得更专业些。
3)分别在三个配置文件中添加配置
默认情况下,git仓库中的命令会覆盖本地命令参数,端口这样的参数,不可以被随便修改,所以设置不覆盖。

cloud:
    config:
      override-none: true


注意是在spring下
4)创建仓库
双击 shift

可以选用父工程作为仓库

5)提交文件

没创建远程仓库的话,创建远程仓库。
push

三,搭建配置中心服务器 1.新建模块


添加eureka client,config server依赖

2.修改pom.xml


    
        springcloud1
        com.drhj
        0.0.1-SNAPSHOT
    
    4.0.0

    com.drhj
    sp09-config
    0.0.1-SNAPSHOT
    sp09-config
    Demo project for Spring Boot
    
        1.8
    
    
        
            org.springframework.cloud
            spring-cloud-config-server
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    


3.配置application.yml
spring:
  application:
    name: config-server
  cloud:
    config:
      server:
        git:
          uri: https://gitee.com/ronghuading/springcloud1
          search-paths: /config #/子目录/子目录/子目录 不用写/tree/master
server:
  port: 6001
eureka:
  client:
    service-url:
      defaultZone: http://eureka1:2001/eureka,http://eureka2:2002/eureka

如果起不来,把注解删除了
注意,这里的uri是仓库地址,search-paths是config所在仓库的子目录

4.启动类添加@EnableConfigServer
package com.drhj.sp09;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;

@EnableConfigServer
@SpringBootApplication
public class Sp09ConfigApplication {

    public static void main(String[] args) {
        SpringApplication.run(Sp09ConfigApplication.class, args);
    }

}
5.测试

1)启动eureka服务器,检查是否又config-server 的注册信息
http://eureka1:2001/

2)访问配置中心的配置文件
http://localhost:6001/item-service/dev

http://localhost:6001/user-service/dev

http://localhost:6001/order-service/dev

四,配置中心客户端 1.注销服务原有配置

将item-service,user-service,order-service的application.yml中的所有配置都注销

2.添加config依赖

在三个服务的pom.xml中添加如下


    org.springframework.cloud
    spring-cloud-starter-config

3.配置bootstrap.yml

创建bootstrap.yml文件,这里以user-service为例,因为user服务中添加用户信息的原因,所以没有获取配置信息启动不了

eureka:
  client:
    service-url:
      defaultZone: http://eureka1:2001/eureka,http://eureka2:2002/eureka
spring:
  cloud:
    config:
      discovery:
        enabled: true #从注册中心发现配置中心的地址
        service-id: config-server
      name: user-service
      profile: dev

item-serice,order-service同样的配置,改变 对应的name

4,重启服务

重启user-service,获取到仓库配置,启动成功

五,config bus + rabbitmq 消息总线配置刷新


post 请求消息总线刷新端点,服务器会向 rabbitmq 发布刷新消息,接收到消息的微服务会向配置服务器请求刷新配置信息
Bus 是spring cloud config 提供的一个辅助完成消息收发操作的组件以及配置的刷新
RabbitMQ详见:RabbitMQ基础运用

1.准备工作 在配置项目 config中添加 actuaor 依赖

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

在需要刷新配置的项目即这里的 item-service,user-service,order-service和配置项目config中添加 Bus, RabbitMQ, binder-rabbit 依赖

    org.springframework.boot
    spring-boot-starter-amqp


    org.springframework.cloud
    spring-cloud-bus


    org.springframework.cloud
    spring-cloud-stream-binder-rabbit

在配置项目config的yml文件中添加配置

1)暴露 bus-refrush: m.e.w.e.i=bus-refrush
2)rabbitmq连接

spring:
  application:
    name: config-server
  cloud:
    config:
      server:
        git:
          uri: https://gitee.com/ronghuading/springcloud1
          search-paths: /config
  rabbitmq:
    host: 192.168.64.140
    port: 5672
    username: admin
    password: admin
    virtual-host: /drhj #如果创建了虚拟空间,则添加,注意加斜杠,使用默认的无需添加
server:
  port: 6001
eureka:
  client:
    service-url:
      defaultZone: http://eureka1:2001/eureka,http://eureka2:2002/eureka
management:
  endpoints:
    web:
      exposure:
        include: bus-refresh
2.配置刷新 修改config目录的三个文件并提交

1)添加rabbitmq的连接

2)提交推送到远程仓库

启动项目测试

注意启动顺序是
eureka -> config -> item,user,order -> zuul
正常启动后,清空控制台信息
使用postman 访问 http://localhost:6001/actuator/bus-refresh 注意要把所有参数,请求头等等都清空,最好创建新的测试

查看控制台

出现如上表示刷新成功
想只刷新某一个服务,添加子路径即可,如:http://localhost:6001/actuator/bus-refresh/item-service

3.总结

所以要实现配置的更改,只需要在存放yml文件的config中对对应的yml文件进行修改,然后上传git远程仓库,通过使用rabbitmq,手动bus刷新,即可完成配置的修改。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/345270.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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