Nacos 从 MySQL 中读取配置文件的实现流程

流程图

flowchart TD
    A(开始)
    B(创建数据库表)
    C(配置 Nacos)
    D(编写代码)
    E(测试)
    F(结束)
    A --> B
    B --> C
    C --> D
    D --> E
    E --> F

甘特图

gantt
    dateFormat YYYY-MM-DD
    section 创建数据库表
    创建数据库表     : 2022-01-01, 2d
    section 配置 Nacos
    配置 Nacos         : 2022-01-03, 1d
    section 编写代码
    编写代码           : 2022-01-04, 3d
    section 测试
    测试               : 2022-01-07, 2d

步骤详解

  1. 创建数据库表

    • 打开 MySQL 数据库客户端,连接到数据库服务器。
    • 创建一个新的数据库,命名为nacos_config
    • nacos_config数据库中创建一张新表,命名为config
    • config表中创建以下字段:
      • id:主键,自增长。
      • data_id:配置文件的唯一标识符。
      • group:配置文件所属分组。
      • content:配置文件内容。
      • create_time:配置文件创建时间。
  2. 配置 Nacos

    • 下载 Nacos 并解压缩。
    • 修改conf/application.properties文件,配置数据库连接信息:
      spring.datasource.platform=mysql
      db.num=1
      db.url.0=jdbc:mysql://localhost:3306/nacos_config?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false
      db.user=root
      db.password=root
      
    • 启动 Nacos 服务。
  3. 编写代码

    • 在项目中引入 Nacos 相关依赖:
      <dependency>
          <groupId>com.alibaba.nacos</groupId>
          <artifactId>nacos-client</artifactId>
          <version>2.0.3</version>
      </dependency>
      
    • 创建一个 Java 类,命名为NacosConfigReader
    • NacosConfigReader类中编写以下代码:
      import com.alibaba.nacos.api.NacosFactory;
      import com.alibaba.nacos.api.config.ConfigService;
      import com.alibaba.nacos.api.config.listener.Listener;
      import com.alibaba.nacos.api.exception.NacosException;
      
      import java.util.Properties;
      
      public class NacosConfigReader {
      
          public static void main(String[] args) throws NacosException {
              Properties properties = new Properties();
              properties.put("serverAddr", "localhost:8848");
      
              ConfigService configService = NacosFactory.createConfigService(properties);
      
              String dataId = "example";
              String group = "DEFAULT_GROUP";
              String content = configService.getConfig(dataId, group, 5000);
      
              System.out.println(content);
          }
      }
      
      • serverAddr:Nacos 服务器的地址。
      • dataId:配置文件的唯一标识符。
      • group:配置文件所属分组。
      • configService.getConfig(dataId, group, 5000):从 Nacos 中获取配置文件内容。
  4. 测试

    • 运行NacosConfigReader类的main方法。
    • 查看控制台输出的配置文件内容。

代码注释

import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.config.listener.Listener;
import com.alibaba.nacos.api.exception.NacosException;

import java.util.Properties;

public class NacosConfigReader {

    public static void main(String[] args) throws NacosException {
        // 创建一个 Properties 对象,用于设置 Nacos 相关配置
        Properties properties = new Properties();
        properties.put("serverAddr", "localhost:8848");

        // 创建 ConfigService 对象
        ConfigService configService = NacosFactory.createConfigService(properties);

        // 配置文件的唯一标识符
        String dataId = "example";

        // 配置文件所属分组
        String group = "DEFAULT_GROUP";

        // 从 Nacos 中获取配置文件内容
        String content = configService.getConfig(dataId, group, 5000);

        // 输出配置文件内容
        System.out.println(content);
    }
}
  • NacosFactory.createConfigService(properties):根据给定的 Properties 对象创建 ConfigService 对象。