目录

Nacos的使用笔记 | 微服务Spring-Cloud-AliBaba


Nacos的使用笔记

什么是 Nacos

Nacos 是一个 Alibaba 开源的、易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

使用 Spring Cloud Alibaba Nacos Discovery,可基于 Spring Cloud 的编程模型快速接入 Nacos 服务注册功能。

Docker 部署Nacos

  • env属性

    • MODE:standalone单机模式
    • MYSQL_DATABASE_NUM:1
    • MYSQL_SERVICE_HOST:你的mysql url
    • MYSQL_SERVICE_PORT:mysql的端口
    • MYSQL_SERVICE_DB_NAME:mysql持久化建立的数据库名
    • MYSQL_SERVICE_USER:mysql用户名
    • MYSQL_SERVICE_PASSWORD:mysql密码
    • NACOS_AUTH_ENABLE:是否开启鉴权
    • NACOS_AUTH_TOKEN:
  • ⚠️注意:使用nacos2.0以上的版本要暴露8848和9848,9849三个端口。

    2.x版本后增加了grpc 通信并且增加nacos的集群端口上下偏移1000

    1
    
    docker run --name nacos-server -e MODE=standalone -e MYSQL_DATABASE_NUM=1 -e MYSQL_SERVICE_HOST=localhost -e MYSQL_SERVICE_PORT=3306 -e MYSQL_SERVICE_DB_NAME=nacos_config -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=123456 -p 8848:8848 -p 9848:9848 -p 9849:9849 nacos/nacos-server
    

Spring Cloud Alibaba 引入 Nacos Discovery

  1. 要引入nacos前要先引入 spring-cloud-alibaba-dependencies

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.9.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
  2. 引入Nacos Discovery进行服务注册/发现

    1
    2
    3
    4
    
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    
  3. 引入Nacos配置管理

    1
    2
    3
    4
    
    <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            </dependency>
    
  4. 引入负载均衡loadbalancer

    1
    2
    3
    4
    
    <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-loadbalancer</artifactId>
            </dependency>
    
  5. 在bootstrap.yaml中配置

    nacos默认运行在8848端口

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    
    spring:
      application:
        name: cloud-gateway #你的服务名
      cloud:
        nacos:
          discovery:
            server-addr: localhost:8848 #nacos的地址
          config:
            server-addr: localhost:8848 #作为配置管理的nacos地址
            file-extension: yaml		#配置拓展名
            refresh-enabled: true		#是否动态刷新
    

    ⚠️如果出现配置文件读取错误,要引入 spring-cloud-starter-bootstrap

    1
    2
    3
    4
    
    <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-bootstrap</artifactId>
            </dependency>