Nacos学习笔记,及demo实现

Nacos

Nacos 简介

简介

Nacos是针对微服务架构中的服务发现、配置管理、服务治理的综合性解决方案。

特性

  • 服务发现与服务健康检查
  • 动态配置管理
  • 动态DNS服务
  • 服务和元数据管理

安装

  1. 下载压缩包

    官方git-releases

  2. 解压

  3. 启动服务

    • Windows

      进入bin目录启动startup.cmd

    • Linux

      进入bin目录执行命令

      sh shtartup.sh -m standalone
      
  4. 访问 http://localhost:8848/nacos/index.html

    默认用户名:nacos,默认密码:nacos

  5. 外部mysql数据库支持

    1. 安装mysql数据库(5.6.5+)

    2. 创建数据库nacos_config,数据库初始化文件:nacos/conf/nacos-mysql.sql

    3. 修改nacos/conf/application.properties文件,增加mysql数据源配置

      spring.datasource.platform=mysql
      
      db.num=1
      db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
      db.user=root
      db.password=123456
      

Nacos 配置管理

Nacos 配置管理 - 基础应用

Nacos 配置管理模型

对于Nacos配置管理,通过Namespace、group、Data ID来定位到一个配置集。

  • 配置集 (Data ID)

    一个配置文件通常就是一个配置集

  • 配置项

    配置集中的包含的一个个配置内容就是配置项

  • 配置分组 (Group)

    不同配置分组下可以有相同的配置集

  • 命名空间 (Namespace)

    可用于进行不同环境的配置隔离。不同命名空间可以有相同的配置分组或配置集。

Nacos 配置管理 - Java实现
  1. 新建maven项目。

  2. 增加maven依赖

    <dependency>
        <groupId>com.alibaba.nacos</groupId>
        <artifactId>nacos-client</artifactId>
        <version>1.2.1</version>
    </dependency>
    
  3. 创建类,根据信息获取配置

    public static void main(String[] args) throws NacosException {
         
        //nacos url
        String serverAddr = "127.0.0.1:8848";
        //DataId
        String dataId = "db.properties";
        //group
        String group = "DEFAULT_GROUP";
        //namespace
        String namespace = "bfb75518-0f3d-47b1-b520-a27d21206013";
        //属性
        Properties properties = new Properties();
        properties.put("serverAddr", serverAddr);
        //指定命名空间,若不指定则默认public
        //properties.put("namespace", namespace);
        //获取配置
        ConfigService configService = NacosFactory.createConfigService(properties);
        String config = configService.getConfig(dataId, group, 5000);
        System.out.println(config);
    }
    
  4. 监听配置修改

        configService.addListener(dataId, group, new Listener() {
         
            public Executor getExecutor() {
         
                return null;
            }
    
            public void receiveConfigInfo(String s) {
         
                System.out.println(s);
            }
        });
    

Nacos 配置管理 - 分布式系统应用

单一配置文件实现
  1. 创建父工程

    pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.mervyn</groupId>
        <artifactId>nacos_config</artifactId>
        <version>1.0-SNAPSHOT</version>
        <packaging>pom</packaging>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>com.alibaba.cloud</groupId>
                    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                    <version>2.1.0.RELEASE</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>Greenwich.RELEASE</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-dependencies</artifactId>
                    <version>2.1.3.RELEASE</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    </project>
    
  2. 创建子工程 service1、service2

    pom.xml

    <dependencies>
        <dependency>
            <groupId>com.alibab
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值