- 创建一个名为nacos的数据库
- 运行 nacos-mysql.sql文件建表
nacos-mysql.sql
/** Copyright 1999-2018 Alibaba Group Holding Ltd.** Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance with the License.* You may obtain a copy of the License at** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*/********************************************* 数据库全名 = nacos_config *//* 表名称 = config_info */***************************************CREATE TABLE `config_info` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', `data_id` varchar(255) NOT NULL COMMENT 'data_id', `group_id` varchar(255) DEFAULT NULL, `content` longtext NOT NULL COMMENT 'content', `md5` varchar(32) DEFAULT NULL COMMENT 'md5', `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创造时间, `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 修改时间, `src_user` text COMMENT 'source user', `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip', `app_name` varchar(128) DEFAULT NULL, `tenant_id` varchar(128) DEFAULT '' COMMENT ‘租户字段’, `c_desc` varchar(256) DEFAULT NULL, `c_use` varchar(64) DEFAULT NULL, `effect` varchar(64) DEFAULT NULL, `type` varchar(64) DEFAULT NULL, `c_schema` text, PRIMARY KEY (`id`), UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info';***************************** 数据库全名 = nacos_config *//* 表名称 = config_info_aggr */***************************************CREATE TABLE `config_info_aggr` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', `data_id` varchar(255) NOT NULL COMMENT 'data_id', `group_id` varchar(255) NOT NULL COMMENT 'group_id', `datum_id` varchar(255) NOT NULL COMMENT 'datum_id', `content` longtext NOT NULL COMMENT '内容', `gmt_modified` datetime NOT NULL COMMENT 修改时间, `app_name` varchar(128) DEFAULT NULL, `tenant_id` varchar(128) DEFAULT '' COMMENT ‘租户字段’, PRIMARY KEY (`id`), UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=“增加租户字段”;***************************** 数据库全名 = nacos_config *//* 表名称 = config_info_beta */***************************************CREATE TABLE `config_info_beta` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', `data_id` varchar(255) NOT NULL COMMENT 'data_id', `group_id` varchar(128) NOT NULL COMMENT 'group_id', `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name', `content` longtext NOT NULL COMMENT 'content', `beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps', `md5` varchar(32) DEFAULT NULL COMMENT 'md5', `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创造时间, `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 修改时间, `src_user` text COMMENT 'source user', `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip', `tenant_id` varchar(128) DEFAULT '' COMMENT ‘租户字段’, PRIMARY KEY (`id`), UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta';***************************** 数据库全名 = nacos_config *//* 表名称 = config_info_tag */***************************************CREATE TABLE `config_info_tag` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', `data_id` varchar(255) NOT NULL COMMENT 'data_id', `group_id` varchar(128) NOT NULL COMMENT 'group_id', `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id', `tag_id` varchar(128) NOT NULL COMMENT 'tag_id', `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name', `content` longtext NOT NULL COMMENT 'content', `md5` varchar(32) DEFAULT NULL COMMENT 'md5', `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创造时间, `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 修改时间, `src_user` text COMMENT 'source user', `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip', PRIMARY KEY (`id`), UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag';***************************** 数据库全名 = nacos_config *//* 表名称 = config_tags_relation */***************************************CREATE TABLE `config_tags_relation` ( `id` bigint(20) NOT NULL COMMENT 'id', `tag_name` varchar(128) NOT NULL COMMENT 'tag_name', `tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type', `data_id` varchar(255) NOT NULL COMMENT 'data_id', `group_id` varchar(128) NOT NULL COMMENT 'group_id', `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id', `nid` bigint(20) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`nid`), UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`), KEY `idx_tenant_id` (`tenant_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation';***************************** 数据库全名 = nacos_config *//* 表名称 = group_capacity */***************************************CREATE TABLE `group_capacity` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 主键ID, `group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群, `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 配额,0表示使用默认值, `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT "使用量", `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 单个配置大小上限,单位为字节,0表示使用默认值, `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 最大的聚合子配置,0表示使用默认值, `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 单个聚合数据的子配置大小上限,单位为字节,0表示默认值, `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 历史数量的最大变化, `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创造时间, `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 修改时间, PRIMARY KEY (`id`), UNIQUE KEY `uk_group_id` (`group_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=各Group容量信息表;***************************** 数据库全名 = nacos_config *//* 表名称 = his_config_info */***************************************CREATE TABLE `his_config_info` ( `id` bigint(64) unsigned NOT NULL, `nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `data_id` varchar(255) NOT NULL, `group_id` varchar(128) NOT NULL, `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name', `content` longtext NOT NULL, `md5` varchar(32) DEFAULT NULL, `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `src_user` text, `src_ip` varchar(50) DEFAULT NULL, `op_type` char(10) DEFAULT NULL, `tenant_id` varchar(128) DEFAULT '' COMMENT ‘租户字段’, PRIMARY KEY (`nid`), KEY `idx_gmt_create` (`gmt_create`), KEY `idx_gmt_modified` (`gmt_modified`), KEY `idx_did` (`data_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=“多租户改造”;***************************** 数据库全名 = nacos_config *//* 表名称 = tenant_capacity */***************************************CREATE TABLE `tenant_capacity` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 主键ID, `tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID', `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 配额,0表示使用默认值, `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT "使用量", `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 单个配置大小上限,单位为字节,0表示使用默认值, `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 最大数量的聚合子配置, `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 单个聚合数据的子配置大小上限,单位为字节,0表示默认值, `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 历史数量的最大变化, `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创造时间, `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 修改时间, PRIMARY KEY (`id`), UNIQUE KEY `uk_tenant_id` (`tenant_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=“租户容量信息表”;CREATE TABLE `tenant_info` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', `kp` varchar(128) NOT NULL COMMENT 'kp', `tenant_id` varchar(128) default '' COMMENT 'tenant_id', `tenant_name` varchar(128) default '' COMMENT 'tenant_name', `tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc', `create_source` varchar(32) DEFAULT NULL COMMENT 'create_source', `gmt_create` bigint(20) NOT NULL COMMENT 创造时间, `gmt_modified` bigint(20) NOT NULL COMMENT 修改时间, PRIMARY KEY (`id`), UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`), KEY `idx_tenant_id` (`tenant_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info';CREATE TABLE `users` ( `username` varchar(50) NOT NULL PRIMARY KEY, `password` varchar(500) NOT NULL, `enabled` boolean NOT NULL);CREATE TABLE `roles` ( `username` varchar(50) NOT NULL, `role` varchar(50) NOT NULL, UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE);CREATE TABLE `permissions` ( `role` varchar(50) NOT NULL, `resource` varchar(255) NOT NULL, `action` varchar(8) NOT NULL, UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE);INSERT INTO users (username, password, enabled) VALUES ('nacos', $2a$10$EuWPZHz32dJN7jexm34moeyirDFAZm2kuwj7VEOJhzkdrxfu', TRUE);INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');
2. 安装社区Nacos2.1.在0的官方版本中,兼容性已经默认关闭 1.X 服务端升级,只要不手动打开,2.x的Nacos不可能出现服务降级的问题,我们将逐步将所有共同集群升级到2.1.0版本。docker pull nacos/nacos-server:v2.0.4docker pull nacos/nacos-server:v2.1.0
#新logs目录mkdiririr -p /mydata/nacos/logs/ mkdir -p /mydata/nacos/conf/
vim /mydata/nacos/conf/application.properties
当配置MySQL容器时,需要在docker中填写IP地址
# springserver.contextPath=/nacosserver.servlet.contextPath=/nacosserver.port=848spring.datasource.platform=mysqldb.num=1db.url.0=jdbc:mysql://120.48.74.101:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTCdb.user=rootdb.password=wuatang123# nacos.cmdb.dumpTaskInterval=3600# nacos.cmdb.eventTaskInterval=10# nacos.cmdb.labelTaskInterval=300# nacos.cmdb.loadDataAtStart=false# metrics for prometheus#management.endpoints.web.exposure.include=*# metrics for elastic searchmanagement.metrics.export.elastic.enabled=false#management.metrics.export.elastic.host=http://localhost:9200# metrics for influxmanagement.metrics.export.influx.enabled=false#management.metrics.export.influx.db=springboot#management.metrics.export.influx.uri=http://localhost:8086#management.metrics.export.influx.auto-create-db=true#management.metrics.export.influx.consistency=one#management.metrics.export.influx.compressed=trueserver.tomcat.accesslog.enabled=trueserver.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i# default current work dirserver.tomcat.basedir=## spring security config### turn off security#spring.security.enabled=false#management.security=false#security.basic.enabled=false#nacos.security.ignore.urls=/**nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health/**,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**,/v1/console/server/**# nacos.naming.distro.taskDispatchPeriod=200# nacos.naming.distro.batchSyncKeyCount=1000# nacos.naming.distro.syncRetryDelay=5000# nacos.naming.data.warmup=true# nacos.naming.expireInstance=truenacos.istio.mcp.server.enabled=false
3. 运行容器docker network create --subnet=120.48.74.101/16 nacos
当配置MySQL容器时,需要在docker中填写IP地址
docker run \--name nacos -d \-p 8848:8848 \-p 9848:9848 \-p 9849:9849 \--privileged=true \--restart=always \-e JVM_XMS=256m \-e JVM_XMX=256m \-e MODE=standalone \-e PREFER_HOST_MODE=hostname \-v /mydata/nacos/logs:/home/nacos/logs \-v /mydata/nacos/conf/application.properties:/home/nacos/conf/application.properties \nacos/nacos-server:v2.0.4//不修改配置文件可直接指定数据库:当配置MySQL容器时,docker中的IP地址需要填写-e SPRING_DATASOURCE_PLATFORM=mysql \-e MYSQL_SERVICE_HOST=172.17.0.3 \-e MYSQL_SERVICE_PORT=3306 \-e MYSQL_SERVICE_DB_NAME=nacos \-e MYSQL_SERVICE_USER=root \-e MYSQL_SERVICE_PASSWORD=wuatang123 \-e MYSQL_DATABASE_NUM=1 \
Nacos从 1.4.0 从版本开始,除了主端口 8848 此外,还需要额外的外部暴露 7848 该端口是raft集群协议的通信端口,用于集群节点选举、检测等。
docker run -d \--name nacos01 \-p 7848:7848 \-p 8848:8848 \-p 9848:9848 \-p 9849:9849 \--privileged=true \--restart=always \-e MODE=cluster \-e PREFER_HOST_MODE=ip \-e NACOS_SERVERS="120.48.74.102:8848 39.106.45.30:8848 39.105.52.64:8848" \-e JVM_XMS=256m \-e JVM_XMX=512m \-e JVM_XMN=256m \-v /mydata/nacos/logs:/home/nacos/logs \-v /mydata/nacos/conf/application.properties:/home/nacos/conf/application.properties \nacos/nacos-server:v2.如果不修改配置文件,可以直接指定数据库-e SPRING_DATASOURCE_PLATFORM=mysql \-e MYSQL_SERVICE_HOST=172.17.0.3 \-e MYSQL_SERVICE_PORT=3306 \-e MYSQL_SERVICE_DB_NAME=nacos \-e MYSQL_SERVICE_USER=root \-e MYSQL_SERVICE_PASSWORD=wuatang123 \-e MYSQL_DATABASE_NUM=1 \
4. 参数说明:属性名称
描述
选项
MODE
系统启动模式: 集群/单机
cluster/standalone 默认 cluster
NACOS_SERVERS
集群地址
p1:port1空格ip2:port2 空格ip3:port3
PREFER_HOST_MODE
支持IP还是域名模型
hostname/ip 默认IP
NACOS_SERVER_PORT
Nacos 运行端口
默认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
数据库连接参数
默认:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false
MYSQL_DATABASE_NUM
数据库个数
默认:1
JVM_XMS
-Xms
默认 :1g
JVM_XMX
-Xmx
默认 :1g
JVM_XMN
-Xmn
512m
JVM_MS
- XX:MetaspaceSize
默认 :128m
JVM_MMS
-XX:MaxMetaspaceSize
默认 :320m
NACOS_DEBUG
是否打开远程DEBUGG
y/n 默认 :n
TOMCAT_ACCESSLOG_ENABLED
server.tomcat.accesslog.enabled
默认 :false
NACOS_AUTH_SYSTEM_TYPE
目前只支持nacos类型选择权限系统类型
默认 :nacos
NACOS_AUTH_ENABLE
是否打开权限系统
默认 :false
NACOS_AUTH_TOKEN_EXPIRE_SECONDS
token 失效时间
默认 :18000
NACOS_AUTH_TOKEN
token
默认 :Secretkey01234567890123456789012345678901234567890123467890124679
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_AUTH_CACHE_ENABLE
nacos.core.auth.caching.enabled
default : false
NACOS_AUTH_USER_AGENT_AUTH_WHITE_ENABLE
nacos.core.auth.enable.userAgentAuthWhite
default : false
NACOS_AUTH_IDENTITY_KEY
nacos.core.auth.server.identity.key
default : serverIdentity
NACOS_AUTH_IDENTITY_VALUE
nacos.core.auth.server.identity.value
default : security
NACOS_SECURITY_IGNORE_URLS
nacos.security.ignore.urls
default : /,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**