Clay

用进废退 | 工字不出头

  • 主页
  • 归档
  • 随笔
  • 搜索
所有文章

Clay

用进废退 | 工字不出头

  • 主页
  • 归档
  • 随笔

Docker安装Nacos单机和集群

发表于:2020-03-12
字数统计:4.6k
阅读量统计:
  • 前言
    • 1.0、软件环境
    • 1.1、快速启动
    • 1.2、Clone Nacos 项目
    • 1.3、Clone Nacos Docker 项目
  • Nacos 单机模式启动
    • 2.0、Nacos 监控关闭
    • 2.1、Nacos + Derby
    • 2.2、Nacos + MySQL 5.7
    • 2.3、Nacos + MySQL 8
    • 2.4、Nacos 单机模式测试
      • 2.4.1、调用 OPEN API
      • 2.4.2、访问 Nacos 的控制台
  • Nacos 集群模式启动
    • 3.0、Nacos + MySQL 5.7
    • 3.1、Nacos 集群模式测试
      • 3.1.1、调用 OPEN API
      • 3.1.2、访问 Nacos 的控制台
  • Prometheus 与 Grafana 监控
    • 4.0、创建并启动容器
    • 4.1、调用 OPEN API
    • 4.2、访问 Prometheus 的控制台
    • 4.3、访问 Grafana 的控制台
  • Docker 部署问题汇总
    • 5.0、MySQL 启动失败
    • 5.1、Nacos 启动失败
      • 5.1.1、原因分析
      • 5.1.2、初始化 MySQL 数据库
  • Docker 属性配置列表
  • 参考资料

前言

本文主要介绍如何使用 Docker 安装并管理 Nacos 的镜像和容器,涉及到 Nacos 单机版与集群版的安装,并连接上 MySQL 数据库,同时还会介绍 Prometheus 与 Grafana 监控系统的使用。

1.0、软件环境

  • CentOS 7.9
  • Docker 20.10.1
  • Docker-Compose 1.24.0-rc1
  • Nacos 1.4.0(截止目前最新的版本)

1.1、快速启动

单机模式快速启动 Nacos,使用嵌入式数据库

1
# docker run --name nacos-standalone-embedded -e MODE=standalone -p 8848:8848 -d nacos/nacos-server:latest

单机模式快速启动 Nacos,使用 MySQL 数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# docker run -d \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=ip \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=nacos \
-e MYSQL_SERVICE_PASSWORD=nacos \
-e MYSQL_SERVICE_DB_NAME=nacos_devtest \
-p 8848:8848 \
--restart=always \
--name nacos-standalone-mysql \
nacos/nacos-server:latest

## 特别注意:
## 1) MySQL 数据库必须是已经初始化过的,即已经创建好 Nacos 运行所需的数据库表
## 2) MySQL 的 IP 必须是在 Nacos 容器内部可以直接访问到的 IP,一般情况下不能直接使用 `127.0.0.1`
## 3) 若 MySQL 不是运行在 Docker 容器内,而是直接安装在外网或者宿主机内,可以指定 `--net=host` 参数让 Nacos 容器共享宿主机的网络

1.2、Clone Nacos 项目

1
2
3
4
5
6
7
8
9
10
11
# 拉取Nacos项目的源码
$ git clone https://github.com/alibaba/nacos

# 后面会使用 nacos-mysql.sql 来初始化MySQL数据库
$ tree nacos/distribution/conf
├── application.properties
├── application.properties.example
├── cluster.conf.example
├── nacos-mysql.sql
├── nacos-logback.xml
└── schema.sql

1.3、Clone Nacos Docker 项目

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 拉取Nacos Docker项目的源码
$ git clone https://github.com/nacos-group/nacos-docker.git

# 进入项目目录
$ cd nacos-docker

# 目录结构
$ tree
├── build
│   ├── bin
│   │   └── docker-startup.sh
│   ├── conf
│   │   └── application.properties
│   ├── Dockerfile
│   └── init.d
│   └── custom.properties
├── changlog
├── env
│   ├── mysql.env
│   ├── nacos-embedded.env
│   ├── nacos-hostname.env
│   ├── nacos-ip.env
│   └── nacos-standlone-mysql.env
├── example
│   ├── cluster-embedded.yaml
│   ├── cluster-hostname.yaml
│   ├── cluster-ip.yaml
│   ├── init.d
│   │   └── custom.properties
│   ├── prometheus
│   │   ├── prometheus-cluster.yaml
│   │   └── prometheus-standalone.yaml
│   ├── standalone-derby.yaml
│   ├── standalone-mysql-5.7.yaml
│   └── standalone-mysql-8.yaml
├── README.md
└── README_ZH.md

目录结构说明:

  • example:Docker-Compose 编排示例
  • example/init.d:启动 Nacos 容器时的自定义配置(应用级别),例如 Metrics 监控相关的内容
  • build:用于构建 Nacos 镜像的源码,包括配置文件、Shell 脚本与 Dockerfile
  • env:Docker-Compose 的环境变量文件,例如定义 MySQL 数据库的用户名、密码和端口号、Nacos 集群各节点的 IP

Nacos 单机模式启动

2.0、Nacos 监控关闭

在 Nacos 官方的 Docker 项目里,Nacos 单机版(Derby、MySQL 5.7)默认集成了 Prometheus 与 Grafana 监控。即在 example/standalone-xxx.yaml 配置文件里,除了已经配置了 Nacos 的镜像,还配置了 Prometheus、Grafana 作为监控系统。如果不需要监控 Nacos,可以删除对应的配置内容,具体操作如下:

  • 1)配置 Nacos 不暴露 Metrics 数据
1
2
3
# 编辑Properties配置文件
$ vim example/init.d/custom.properties
management.endpoints.web.exposure.include=* #注释掉这行内容,注释后访问"http://{ip}:8848/nacos/actuator/prometheus" 不会再看到Metrics数据
  • 2)删除 Prometheus、Grafana 的 Docker-Compose 配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 编辑YAML配置文件,删除以下内容
$ vim example standalone-derby.yaml

prometheus:
container_name: prometheus
image: prom/prometheus:latest
volumes:
- ./prometheus/prometheus-standalone.yaml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
depends_on:
- nacos
restart: on-failure
grafana:
container_name: grafana
image: grafana/grafana:latest
ports:
- 3000:3000
restart: on-failure

2.1、Nacos + Derby

单机模式启动 Nacos 容器,默认使用的是嵌入式数据库 Derby

1
2
3
4
5
# 创建并前台启动容器
# docker-compose -f example/standalone-derby.yaml up

# 或者创建并后台启动容器
# docker-compose -f example/standalone-derby.yaml up -d

Docker-Compose 常用的容器管理命令,后面创建的所有容器都可以这样管理,不再累述。

1
2
3
4
5
6
7
8
9
10
11
# 查看容器的运行状态
# docker-compose -f example/standalone-derby.yaml ps

# 启动容器
# docker-compose -f example/standalone-derby.yaml start

# 停止容器
# docker-compose -f example/standalone-derby.yaml stop

# 停止并删除容器,包括网络、数据卷(特别注意,此操作会删除所有容器的数据,且不可恢复)
# docker-compose -f example/standalone-derby.yaml down

2.2、Nacos + MySQL 5.7

单机模式启动 Nacos 容器,数据库使用的是 MySQL 5.7,这里需要手动执行 MySQL 数据库初始化操作,否则 Nacos 启动时会抛出 No DataSource set 异常,导致无法连接上 MySQL 数据库

1
2
3
4
5
# 创建并前台启动容器
# docker-compose -f example/standalone-mysql-5.7.yaml up

# 或者创建并后台启动容器
# docker-compose -f example/standalone-mysql-5.7.yaml up -d

2.3、Nacos + MySQL 8

单机模式启动 Nacos 容器,数据库使用的是 MySQL 8,这里需要手动执行 MySQL 数据库初始化操作,否则 Nacos 启动时会抛出 No DataSource set 异常,导致无法连接上 MySQL 数据库

1
2
3
4
5
# 创建并前台启动容器
# docker-compose -f example/standalone-mysql-8.yaml up

# 或者创建并后台启动容器
# docker-compose -f example/standalone-mysql-8.yaml up -d

2.4、Nacos 单机模式测试

2.4.1、调用 OPEN API
1
2
3
4
5
6
7
8
9
10
11
# 发布配置
$ curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=helloWorld"

# 获取配置
$ curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"

# 服务注册
$ curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'

# 服务发现
$ curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'
2.4.2、访问 Nacos 的控制台

浏览器访问 http://127.0.0.1:8848/nacos,打开 Nacos 的控制台

Nacos 集群模式启动

Nacos 的集群模式需要依赖 MySQL 数据库(集中式存储),因此在集群模式下不能再使用 Nacos 自带的嵌入式数据库 Derby。在 Nacos 官方的 Docker 项目中,以集群模式启动 Nacos,默认使用的是单个 MySQL 数据库。值得一提的是,从 Nacos 1.1.4 镜像开始,后续所有镜像都已经移除了主从镜像相关属性的配置。由于在 Nacos 的生产环境中,MySQL 至少需要主备模式,或者采用高可用数据库;因此如果需要配置 MySQL 主从库,需要自行实现(如搭建 DB-Proxy)。

3.0、Nacos + MySQL 5.7

基于 HostName,集群模式启动 Nacos 容器,数据库使用的是 MySQL 5.7(单机),这里需要手动执行 MySQL 数据库初始化操作,否则 Nacos 启动时会抛出 No DataSource set 异常,导致无法连接上 MySQL 数据库

1
2
3
4
5
# 创建并前台启动容器
# docker-compose -f example/cluster-hostname.yaml up

# 或者创建并后台启动容器
# docker-compose -f example/cluster-hostname.yaml up -d

基于 IP,集群模式启动 Nacos 容器,数据库使用的是 MySQL 5.7(单机),这里需要手动执行 MySQL 数据库初始化操作,否则 Nacos 启动时会抛出 No DataSource set 异常,导致无法连接上 MySQL 数据库

1
2
3
4
5
# 创建并前台启动容器
# docker-compose -f example/cluster-ip.yaml up

# 或者创建并后台启动容器
# docker-compose -f example/cluster-ip.yaml up -d

查看 Nacos 的日志文件,若日志信息如下显示,则说明 Nacos 是以集群模式启动的

1
2
3
4
5
6
7
8
# tail -n 20 example/cluster-logs/nacos1/nacos.log
# tail -n 20 example/cluster-logs/nacos2/nacos.log
# tail -n 20 example/cluster-logs/nacos3/nacos.log

2020-03-12 21:20:17,866 INFO Nacos started successfully in cluster mode. use external storage
2020-03-12 21:20:18,117 INFO Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-03-12 21:20:18,117 INFO Initializing Servlet 'dispatcherServlet'
2020-03-12 21:20:18,141 INFO Completed initialization in 23 ms

3.1、Nacos 集群模式测试

3.1.1、调用 OPEN API
1
2
3
4
5
6
7
8
9
10
11
# 发布配置
$ curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=helloWorld"

# 获取配置
$ curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"

# 服务注册
$ curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'

# 服务发现
$ curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'
3.1.2、访问 Nacos 的控制台

浏览器访问 http://127.0.0.1:8848/nacos,打开 Nacos 的控制台;若 Nacos 集群启动成功,可以看到多个 Nacos 节点,Docker 的映射端口分别是 8848、8849、8850

Prometheus 与 Grafana 监控

在 Nacos 官方的 Docker 项目里,Nacos 单机版(Derby、MySQL 5.7)默认集成了 Prometheus 与 Grafana 监控,一般情况下开箱即用。

4.0、创建并启动容器

1
2
# 创建并后台启动容器
# docker-compose -f example/standalone-mysql-5.7.yaml up -d

4.1、调用 OPEN API

为了让 Prometheus 与 Grafana 的监控面板有数据可显示,调用 OPEN API 插入模拟数据

1
2
3
4
5
# 发布配置
$ curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=helloWorld"

# 服务注册
$ curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'

4.2、访问 Prometheus 的控制台

  • 1)浏览器访问 http://127.0.0.1:9090/graph,打开 Prometheus 的控制台,查看 Prometheus 采集到的 Nacos Metrics 数据
  • 2)在搜索栏搜索 nacos_monitor,若可以搜索到 Nacos 的数据,则说明 Prometheus 采集数据成功
  • 3)若 Prometheus 采集不到数据,浏览器访问 http://{ip}:8848/nacos/actuator/prometheus,看能不能获取到 Nacos 的 Metrics 数据

4.3、访问 Grafana 的控制台

  • 1)下载 Nacos 的 Grafana 监控模版文件
1
2
3
4
5
6
7
8
9
10
11
# 拉取Nacos Template项目的源码
$ git clone https://github.com/nacos-group/nacos-template

# 后面要用到 nacos-grafana.json 监控模版文件
# tree -N
├── nacos-grafana.json
├── nacos-sync-grafana
├── README.md
├── 方案评审内容模板.md
├── 模板-Nacos(微软黑体).ppt
└── 模板-Nacos(微软黑体)新版本.key
  • 2)浏览器访问 http://127.0.0.1:3000,默认登录的用户名和密码为 admin/admin,首次登录会提示重新设置新密码

  • 3)创建 Prometheus 数据源

特别注意:Grafana 创建 Prometheus 新数据源时,数据源名称(区分英文大小写)必须是 prometheus,数据源地址必须是 http://prometheus:9090,否则会获取不到监控数据或者提示 Gateway 相关的错误信息

  • 4)导入 Nacos 的 Grafana 监控模版文件 nacos-grafana.json

  • 5)Nacos Grafana 展示的核心监控项

Docker 部署问题汇总

5.0、MySQL 启动失败

发现 MySQL 容器启动失败

1
2
3
4
5
6
7
# 查看容器的运行状态
$ docker-compose -f example/standalone-mysql-5.7.yaml ps

grafana /run.sh Up 0.0.0.0:3000->3000/tcp
mysql docker-entrypoint.sh mysqld Exit 1
nacos-standalone-mysql bin/docker-startup.sh Up 0.0.0.0:8848->8848/tcp, 0.0.0.0:9555->9555/tcp
prometheus /bin/prometheus --config.f ... Up 0.0.0.0:9090->9090/tcp

查看 MySQL 的日志信息,发现可能是 MySQL 首次启动时生成相关证书(登录)失败导致

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 查看容器的运行状态
$ docker-compose -f example/standalone-mysql-5.7.yaml logs mysql

mysql | Database initialized
mysql | Initializing certificates
mysql | Generating a RSA private key
mysql | ..+++++
mysql | ..................................+++++
mysql | unable to write 'random state'
mysql | writing new private key to 'ca-key.pem'
mysql | -----
mysql | Generating a RSA private key
mysql | .......................+++++
mysql | ......+++++
mysql | unable to write 'random state'
mysql | writing new private key to 'server-key.pem'
mysql | -----
mysql | Generating a RSA private key
mysql | ..............................................................+++++
mysql | ...............+++++
mysql | unable to write 'random state'
mysql | writing new private key to 'client-key.pem'
mysql | -----
mysql | mysql_ssl_rsa_setup: Can't change permissions of the file 'ca-key.pem' (Errcode: 1 - Operation not permitted)
mysql | 2020-03-12 22:13:39 [ERROR] Error setting file permissions forca-key.pem and ca.pem
mysql | mysql_ssl_rsa_setup: Can't change permissions of the file 'server-key.pem' (Errcode: 1 - Operation not permitted)
mysql | 2020-03-12 22:13:39 [ERROR] Error setting file permissions forserver-key.pem and server-cert.pem
mysql | mysql_ssl_rsa_setup: Can't change permissions of the file 'client-key.pem' (Errcode: 1 - Operation not permitted)
mysql | 2020-03-12 22:13:39 [ERROR] Error setting file permissions forclient-key.pem and client-cert.pem

关闭所有容器,然后再重启所有容器,至此 MySQL 容器可以正常启动

1
2
3
4
5
6
7
8
9
10
11
12
13
# 关闭所有容器
# docker-compose -f example/standalone-mysql-5.7.yaml stop

# 启动所有容器
# docker-compose -f example/standalone-mysql-5.7.yaml start

# 查看容器的运行状态
$ docker-compose -f example/standalone-mysql-5.7.yaml ps

grafana /run.sh Up 0.0.0.0:3000->3000/tcp
mysql docker-entrypoint.sh mysqld Up 0.0.0.0:3309->3306/tcp, 33060/tcp
nacos-standalone-mysql bin/docker-startup.sh Up 0.0.0.0:8848->8848/tcp, 0.0.0.0:9555->9555/tcp
prometheus /bin/prometheus --config.f ... Up 0.0.0.0:9090->9090/tcp

5.1、Nacos 启动失败

5.1.1、原因分析

容器虽然都启动成功了,但浏览器无法访问 http://127.0.0.1:8848/nacos,查看 Nacos 的日志文件,发现有 No DataSource set 相关的异常信息,也就是 Nacos Server 无法正常连接到 MySQL 数据库

1
2
3
4
5
6
7
8
9
10
11
# 查看Nacos的日志文件
$ tail -n 20 example/standalone-logs/nacos.log

Caused by: java.lang.IllegalStateException: No DataSource set
at org.springframework.util.Assert.state(Assert.java:73)
at org.springframework.jdbc.support.JdbcAccessor.obtainDataSource(JdbcAccessor.java:77)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:371)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:452)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:462)
at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:473)
at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:480)

经过排查,发现可能是以下几方面原因造成:

  • 1)开启系统防火墙导致
  • 2)在 MySQL 的配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf 里,开启了 bind 127.0.0.1 配置项,导致外部无法连接
  • 3)在 MySQL 数据库里不存在 nacos 用户,这是因为在 env 目录下的 Docker-Compose 环境配置文件中,指定了 Nacos 默认连接 MySQL 时使用的用户名和密码为 nacos/nacos
  • 4)在 MySQL 数据库里不存在 nacos_devtest 数据库,这是因为在 env 目录下的 Docker-Compose 环境配置文件中,指定了 Nacos 默认连接的 MySQL 数据库为 nacos_devtest

分析结果:各种假设经过逐一验证后,最终发现导致 Nacos 无法连接 MySQL 数据库的原因,是因为在 MySQL 数据库中,不存在 nacos 用户,同时也不存在 nacos_devtest 数据库,即 MySQL 数据库里没有被初始化过

5.1.2、初始化 MySQL 数据库

温馨提示:以下数据库初始化操作适用于 MySQL 5.7、MySQL 8,同时适用于 Nacos 单机模式和集群模式。若使用了不同的 YAML 配置文件来管理 Nacos 的镜像和容器,此时只需要将下列命令中的 example/xxx.yaml 替换为自己所使用的 YAML 配置文件的路径即可。


拷贝数据库初始化脚本 nacos-mysql.sql 到 MySQL 容器的根目录下,并在 MySQL 容器内通过命令行登录进 MySQL 数据库

1
2
3
4
5
6
7
8
9
10
11
# 启动所有容器
# docker-compose -f example/standalone-mysql-5.7.yaml start

# 拷贝数据库初始化脚本到MySQL容器的根目录下
# docker cp nacos/distribution/conf/nacos-mysql.sql mysql:/

# 连接MySQL容器
# docker exec -it mysql /bin/bash

# 在MySQL容器内,通过命令行登录进MySQL数据库;在终端输入"mysql"后,直接按下回车键即可,不需要指定数据库的用户名和密码,默认是以root用户登录
# mysql

在 MySQL 的容器内登录进 MySQL 数据库后,执行数据库初始化操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# 创建用户
mysql> CREATE USER 'nacos'@'%' IDENTIFIED BY 'nacos';

# 创建数据库
mysql> create database nacos_devtest default character set utf8;

# 用户授权访问
# GRANT ALL ON nacos_devtest.* TO 'nacos'@'%';

# 刷新权限
# flush privileges;

# 切换数据库
mysql> use nacos_devtest;

# 执行数据库初始化脚本
mysql> source /nacos-mysql.sql;

# 查看数据库表
mysql> show tables;
+------------------------+
| Tables_in_nacos_devtest |
+------------------------+
| config_info |
| config_info_aggr |
| config_info_beta |
| config_info_tag |
| config_tags_relation |
| group_capacity |
| his_config_info |
| permissions |
| roles |
| tenant_capacity |
| tenant_info |
| users |
+------------------------+
12 rows in set (0.00 sec)

# 退出登录MySQL
mysql> exit

# 断开MySQL容器的连接
# exit

# 重启所有容器
# docker-compose -f example/standalone-mysql-5.7.yaml restart

容器重启后,若在 Nacos 的日志文件里观察到以下内容,则说明 Nacos 可以正常启动

1
2
3
4
5
6
7
8
9
10
11
12
13
# tail -n 20 example/standalone-logs/nacos.log

2020-03-12 23:01:50,062 INFO Initializing ExecutorService 'taskScheduler'
2020-03-12 23:01:50,092 INFO Exposing 16 endpoint(s) beneath base path '/actuator'
2020-03-12 23:01:50,240 INFO Tomcat started on port(s): 8848 (http) with context path '/nacos'
2020-03-12 23:01:50,245 INFO Started Nacos in 12.964 seconds (JVM running for 13.92)
2020-03-12 23:01:50,246 INFO Nacos Log files: /home/nacos/logs
2020-03-12 23:01:50,247 INFO Nacos Log files: /home/nacos/conf
2020-03-12 23:01:50,247 INFO Nacos Log files: /home/nacos/data
2020-03-12 23:01:50,248 INFO Nacos started successfully in stand alone mode. use external storage
2020-03-12 23:01:55,147 INFO Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-03-12 23:01:55,147 INFO Initializing Servlet 'dispatcherServlet'
2020-03-12 23:01:55,169 INFO Completed initialization in 22 ms

Docker 属性配置列表

属性名称描述选项
MODE系统启动方式: 集群/单机cluster/standalone默认 cluster
NACOS_SERVERS集群地址p1:port1空格ip2:port2 空格ip3:port3
PREFER_HOST_MODE支持IP还是域名模式hostname/ip 默认 ip
NACOS_SERVER_PORTNacos 运行端口默认 8848
NACOS_SERVER_IP多网卡模式下可以指定IP
SPRING_DATASOURCE_PLATFORM单机模式下支持MYSQL数据库mysql / 空 默认:空
MYSQL_SERVICE_HOST数据库连接地址
MYSQL_SERVICE_PORT数据库端口默认 : 3306
MYSQL_SERVICE_DB_NAME数据库库名
MYSQL_SERVICE_USER数据库用户名
MYSQL_SERVICE_PASSWORD数据库用户密码
MYSQL_SERVICE_DB_PARAM数据库连接参数default : characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
MYSQL_DATABASE_NUMIt indicates the number of database默认 :1
JVM_XMS-Xms默认 :2g
JVM_XMX-Xmx默认 :2g
JVM_XMN-Xmn默认 :1g
JVM_MS-XX:MetaspaceSize默认 :128m
JVM_MMS-XX:MaxMetaspaceSize默认 :320m
NACOS_DEBUG是否开启远程DEBUGy/n 默认 :n
TOMCAT_ACCESSLOG_ENABLEDserver.tomcat.accesslog.enabled默认 :false
NACOS_AUTH_SYSTEM_TYPE权限系统类型选择,目前只支持nacos类型默认 :nacos
NACOS_AUTH_ENABLE是否开启权限系统默认 :false
NACOS_AUTH_TOKEN_EXPIRE_SECONDStoken 失效时间默认 :18000
NACOS_AUTH_TOKENtoken默认 :SecretKey012345678901234567890123456789012345678901234567890123456789
NACOS_AUTH_CACHE_ENABLE权限缓存开关 ,开启后权限缓存的更新默认有15秒的延迟默认 : false
MEMBER_LIST通过环境变量的方式设置集群地址例子:192.168.16.101:8847?raft_port=8807,192.168.16.101?raft_port=8808,192.168.16.101:8849?raft_port=8809
EMBEDDED_STORAGE是否开启集群嵌入式存储模式embedded 默认 : none

参考资料

  • Nacos 监控指南
  • Nacos Docker 项目
  • Nacos Docker 移除主从镜像配置
  • Nacos Docker 快速开始(属性配置的内容已过时)
本文作者: Clay
发布时间: 2020-03-12 20:05:42
最后更新: 2020-11-22 21:43:32
本文链接: https://www.techgrow.cn/posts/961beae9.html
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
赏

谢谢你的支持

支付宝
微信
  • Docker

扫一扫,分享到微信

微信分享二维码
中国象棋之二开源AI引擎介绍
中国象棋之一Linux下的象棋软件GMChess
© 2021 Clay
本站总访问量  人次
载入天数...载入时分秒...
粤ICP备19024664号
  • 所有文章

显示标签:

  • AI
  • C/C++
  • CI/CD
  • CentOS
  • Centos
  • Docker
  • HarmonyOS
  • Java
  • Linux
  • Manjaro
  • Python
  • Web服务器
  • 企业面试
  • 分布式
  • 前端
  • 区块链
  • 开发工具
  • 开源
  • 微服务
  • 数据库
  • 架构
  • 树莓派
  • 爬虫
  • 版本控制
  • 知识图谱
  • 算法与数据结构
  • 缓存
  • 网络攻防
  • 随笔

    [^_^] 出错啦!请重新刷新页面!