项目和文档
- github国内镜像站
https://kgithub.com/ - nacos项目地址https://kgithub.com/alibaba/nacos/releases
- nacos-docker项目地址
https://kgithub.com/nacos-group/nacos-docker/blob/master/READ... - nacos中文文档
https://nacos.io/zh-cn/docs/quick-start.html
镜像和部署
- 最新的docker镜像(nacos服务端)
docker pull nacos/nacos-server:v2.2.0
- 数据库初始化脚本下载
https://raw.kgithub.com/alibaba/nacos/develop/distribution/co... - 将数据库初始化脚本mysql-schema.sql放置到docker-compose.yml文件的同一个目录
- 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:
- 目录结构如
启动/停止命令
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 服务
- 服务及其元数据管理
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。