项目和文档

  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 服务
  • 服务及其元数据管理
作者:|sswhsz|,原文链接: https://segmentfault.com/a/1190000043529932

文章推荐

聊聊Mybatis的实现原理

Matplotlib.pyplot.plot 绘图

单例模式(Singleton Pattern)

Django的message组件(源码分析)

Java二维数组

iOS APP启动广告实现方式 与 APP唤端调用

谈谈selenium中的clear后输入内容异常的处理

逍遥自在学C语言 | 位运算符^的高级用法

.NET生成MongoDB中的主键ObjectId

Linux进程与线程的基本概念及区别

Spark: 单词计数(Word Count)的MapReduce实现(Java/Python)

linux系统下文件误删除该如何恢复?