7、服务配置中心

Config

img

建立Config配置中心

远程配置中心

1、创建一个仓库

image-20210819144722395

2、clone远程仓库

image-20210819144818986

3、针对不同的微服务,创建不同的目录

image-20210819145329985

4、将微服务的配置文件,放入到对应的目录中

命名格式为:服务ID-dev/pro/test.yml

image-20210819145630377

5、上传配置文件到git

本地配置中心

配置中心也是一个微服务、所以需要重新写一个模块

1、引入依赖

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

2、编写启动类,添加注解,激活配置中心

@EnableConfigServer
@SpringBootApplication
public class ConfigApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigApplication.class,args);
    }
}

3、编写配置中心微服务配置文件

server:
  port: 11000
spring:
  application:
    name: star-config
  cloud:
    config:
      server:
        git:
          #git地址
          uri: https://gitee.com/yh-gh/star-config.git
          #登录GIT用户名,如果访问的git开源,不需要账户、密码
          username:
          #登录GIT密码
          password:
          #启动配置中心时,要求强制获取配置信息
          force-pull: true
          #搜索配置文件的路由,{application}为占位符,搜索全部路径	
          search-paths: '{application}'

4、启动配置中心微服务,访问配置文件

image-20210819151048414

其余微服务集成配置中心,例如商品微服务

1、引入配置中心客户端依赖

<!-- 引入配置服务客户端的依赖启动器 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-client</artifactId>
</dependency>

2、创建bootstrap.yml配置文件,删除之前的配置文件

spring:
  cloud:
    config:
      #从git上的master分支获取内容
      label: master
      #开发环境(dev/test/pro)
      profile: dev
      #配置中心的uri
      uri: http://localhost:11000
  application:
    #微服务的名称
    name: star-product

3、启动微服务

image-20210819153149963

说明读取配置文件成功

建立Nacos注册、配置中心

1、下载、解压、启动nacos服务器,并配置为注册中心

2、访问nacos配置中心界面

image-20210820100632859

3、点击右边加号,添加配置

image-20210820100855272

添加微服务的配置文件,例如clazz-system.yml

image-20210820110803010

4、微服务中,添加配置中心依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

4、微服务中,删除之前的application.yml文件,创建bootstrap.yml文件,并编辑

spring:
  application:
    # 配置应用的名称,用于获取配置
    name: clazz-system
  cloud:
    nacos:
      discovery:
        server-addr: http://localhost:8848
      config:
        # 配置nacos配置中心服务的地址
        server-addr: http://localhost:8848
        # 配置分组
        group: clazz-system
        # 配置文件后缀,用于拼接配置配置文件名称
        file-extension: yml
        # 配置自动刷新
        refresh: true
        # 配置文件的前缀
        prefix: clazz-system

5、启动微服务,读取配置文件

image-20210820111147945

控制台出现配置信息,证明读取配置文件成功

Nacos动态刷新配置

1、在控制层添加注解

@RestController
@RequestMapping("/student")
@RefreshScope
public class StudentController {}

2、在配置中心修改配置文件并发布

image-20210820112435272

3、观察控制台,发现配置文件已经实时刷新

image-20210820112520606