乐趣区

关于nacos:nacos初探

我的项目和文档

  1. github 国内镜像站
    https://kgithub.com/
  2. nacos 我的项目地址 https://kgithub.com/alibaba/nacos/releases
  3. nacos-docker 我的项目地址
    https://kgithub.com/nacos-group/nacos-docker/blob/master/READ…
  4. nacos 中文文档
    https://nacos.io/zh-cn/docs/quick-start.html

镜像和部署

  1. 最新的 docker 镜像 (nacos 服务端)
    docker pull nacos/nacos-server:v2.2.0
  2. 数据库初始化脚本下载
    https://raw.kgithub.com/alibaba/nacos/develop/distribution/co…
  3. 将数据库初始化脚本 mysql-schema.sql 搁置到 docker-compose.yml 文件的同一个目录
  4. nacos docker-compose 配置
version: "3.8"

services:
  nacos-server:
    image: nacos/nacos-server:v2.2.0
    environment:
      # 系统启动形式: 集群 / 单机,cluster/standalone 默认 cluster
      MODE: standalone
      # 数据库类型
      SPRING_DATASOURCE_PLATFORM: mysql
      # mysql 地址:能够间接援用 docker-compose 内的服务名称,也能够援用主机 ip
      MYSQL_SERVICE_HOST: nacos-mysql
      # 如果 mysql 地址用的是服务名,这里就用容器端口;如果 mysql 地址用的是主机 ip,那么就用主机映射端口
      MYSQL_SERVICE_PORT: "3306"
      MYSQL_SERVICE_DB_NAME: nacos_devtest
      MYSQL_SERVICE_USER: root
      MYSQL_SERVICE_PASSWORD: root
      MYSQL_SERVICE_DB_PARAM: "characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true"
      
      # 内存参数
      JVM_XMS: "1g"
      JVM_XMX: "1g"
      # 是否开启近程调试
      NACOS_DEBUG: "n"
      
    volumes:
      - "./logs:/home/nacos/logs"
    ports:
      # 主端口,web 端口
      - "8848:8848"
      # grpc 端口,应该等于 映射主端口 + 1000 (Nacos2.0 的 gRPC 端口均通过主端口的偏移量计算产生,因而端口转发也须要满足该偏移量)
      - "9848:9848"
      # grpc 端口,应该等于 映射主端口 + 1001
      - "9849:9849"
    depends_on:
      nacos-mysql:
        condition: service_healthy
#    restart: on-failure

  nacos-mysql:
    image: mysql:5.7
    environment:
      # root 用户明码
      MYSQL_ROOT_PASSWORD: root
      # 运行时须要创立的数据库名称
      MYSQL_DATABASE: nacos_devtest
      # 运行时须要创立的用户名
      MYSQL_USER: nacos
      # 运行时须要创立的用户,对应的明码
      MYSQL_PASSWORD: nacos
    volumes:
      - "./mysql-schema.sql:/docker-entrypoint-initdb.d/nacos-mysql.sql"
      - "nacos-mysql_data:/var/lib/mysql"
    ports:
      - "8806:3306"
    command: 
      - "--character-set-server=utf8mb4"
      - "--collation-server=utf8mb4_unicode_ci"
    healthcheck:
      test: ["CMD", "mysqladmin", "-uroot", "-proot" ,"ping", "-h", "localhost"]
      interval: 5s
      timeout: 10s
      retries: 10

volumes:
  nacos-mysql_data:
  1. 目录构造如
  2. 启动 / 进行命令
    docker-compose up &
    docker-compose stop

    nacos 客户端

    <dependency>
     <groupId>com.alibaba.nacos</groupId>
     <artifactId>nacos-client</artifactId>
     <version>2.2.1-RC</version>
    </dependency>

客户端的依赖还是十分多的,包含:

  • httpclient http 协定的客户端
  • grpc 谷歌基于 HTTP/ 2 协定的“近程过程调用库”,相似 java RMI
  • netty 非阻塞式的网络库 (TCP、UDP)
  • protobuf 对象序列化库
  • guava 谷歌常用工具库

    nacos 性能

  • 服务发现和服务衰弱监测
  • 动静配置服务
  • 动静 DNS 服务
  • 服务及其元数据管理
退出移动版