diff --git a/Config/nacos-2.5.0-cluster/demo.png b/Config/nacos-2.5.0-cluster/demo.png new file mode 100644 index 0000000..0f45b87 Binary files /dev/null and b/Config/nacos-2.5.0-cluster/demo.png differ diff --git a/Config/nacos-2.5.0-cluster/docker-compose.yml b/Config/nacos-2.5.0-cluster/docker-compose.yml new file mode 100644 index 0000000..ab19475 --- /dev/null +++ b/Config/nacos-2.5.0-cluster/docker-compose.yml @@ -0,0 +1,111 @@ +version: '3.8' + +# 网桥 -> 方便相互通讯 +networks: + nacos: + ipam: + driver: default + config: + - subnet: "172.23.0.0/24" + +services: + mysql: + image: registry.cn-shanghai.aliyuncs.com/odboy/mysql:8.0 # 原镜像`mysql:8.0` + container_name: mysql8 # 容器名为'mysql8' + restart: unless-stopped + volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录 + - "./mysql/my.cnf:/etc/mysql/my.cnf" + - "./mysql/data:/var/lib/mysql" + # - "./mysql/conf.d:/etc/mysql/conf.d" + - "./mysql/mysql-files:/var/lib/mysql-files" + - "./scripts/mysql-schema.sql:/docker-entrypoint-initdb.d/mysql-schema.sql" + environment: + TZ: Asia/Shanghai + LANG: en_US.UTF-8 + MYSQL_ROOT_PASSWORD: root # 设置root用户密码 + MYSQL_DATABASE: nacos # 初始化的数据库名称 + privileged: true + user: root + ports: # 映射端口 + - "3308:3306" + networks: + nacos: + ipv4_address: 172.23.0.80 + nacos1: + image: registry.cn-shanghai.aliyuncs.com/odboy/nacos-server:2.5.0 + container_name: nacos1 + hostname: nacos1 + restart: always + ports: + - "7848:7848" + - "8848:8848" + - "9868:9848" + - "9850:9849" + environment: + - PREFER_HOST_MODE=hostname + - NACOS_SERVERS=nacos1:8848 nacos2:8848 nacos3:8848 + - MYSQL_SERVICE_HOST=mysql + - MYSQL_SERVICE_DB_NAME=nacos + - MYSQL_SERVICE_PORT=3306 + - MYSQL_SERVICE_USER=root + - MYSQL_SERVICE_PASSWORD=root + volumes: + - ./nacos1/logs:/home/nacos/logs + - ./nacos1/conf/application.properties:/home/nacos/conf/application.properties + depends_on: + - mysql + networks: + nacos: + ipv4_address: 172.23.0.81 + nacos2: + image: registry.cn-shanghai.aliyuncs.com/odboy/nacos-server:2.5.0 + container_name: nacos2 + hostname: nacos2 + restart: always + ports: + - "7849:7848" + - "8849:8848" + - "9869:9848" + - "9851:9849" + environment: + - PREFER_HOST_MODE=hostname + - NACOS_SERVERS=nacos1:8848 nacos2:8848 nacos3:8848 + - MYSQL_SERVICE_HOST=mysql + - MYSQL_SERVICE_DB_NAME=nacos + - MYSQL_SERVICE_PORT=3306 + - MYSQL_SERVICE_USER=root + - MYSQL_SERVICE_PASSWORD=root + volumes: + - ./nacos2/logs:/home/nacos/logs + - ./nacos2/conf/application.properties:/home/nacos/conf/application.properties + depends_on: + - mysql + networks: + nacos: + ipv4_address: 172.23.0.82 + nacos3: + image: registry.cn-shanghai.aliyuncs.com/odboy/nacos-server:2.5.0 + container_name: nacos3 + hostname: nacos3 + restart: always + ports: + - "7850:7848" + - "8850:8848" + - "9870:9848" + - "9852:9849" + environment: + - PREFER_HOST_MODE=hostname + - NACOS_SERVERS=nacos1:8848 nacos2:8848 nacos3:8848 + - MYSQL_SERVICE_HOST=mysql + - MYSQL_SERVICE_DB_NAME=nacos + - MYSQL_SERVICE_PORT=3306 + - MYSQL_SERVICE_USER=root + - MYSQL_SERVICE_PASSWORD=root + volumes: + - ./nacos3/logs:/home/nacos/logs + - ./nacos3/conf/application.properties:/home/nacos/conf/application.properties + depends_on: + - mysql + networks: + nacos: + ipv4_address: 172.23.0.83 diff --git a/Config/nacos-2.5.0-cluster/install.sh b/Config/nacos-2.5.0-cluster/install.sh new file mode 100644 index 0000000..81e6d1d --- /dev/null +++ b/Config/nacos-2.5.0-cluster/install.sh @@ -0,0 +1,3 @@ +#curl -O https://github.com/alibaba/nacos/blob/master/distribution/conf/mysql-schema.sql?spm=5238cd80.72a042d5.0.0.4bddcd36DjqTD6&file=mysql-schema.sql +#mv mysql-schema.sql ./scripts/ +docker-compose -f docker-compose.yml -p nacos-cluster up -d \ No newline at end of file diff --git a/Config/nacos-2.5.0-cluster/mysql/my.cnf b/Config/nacos-2.5.0-cluster/mysql/my.cnf new file mode 100644 index 0000000..1c92116 --- /dev/null +++ b/Config/nacos-2.5.0-cluster/mysql/my.cnf @@ -0,0 +1,19 @@ +# 服务端参数配置 +[mysqld] +user=mysql # MySQL启动用户 +default-storage-engine=INNODB # 创建新表时将使用的默认存储引擎 +character-set-server=utf8mb4 # 设置mysql服务端默认字符集 +collation-server=utf8mb4_general_ci # 数据库字符集对应一些排序等规则,注意要和character-set-server对应 +default-authentication-plugin=mysql_native_password + +max_connections=1000 # 允许最大连接数 +max_connect_errors=100 # 最大错误连接数 +sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION + + +[mysql] +default-character-set=utf8mb4 + + +[client] +default-character-set=utf8mb4 # 设置mysql客户端默认字符集 diff --git a/Config/nacos-2.5.0-cluster/nacos1/conf/application.properties b/Config/nacos-2.5.0-cluster/nacos1/conf/application.properties new file mode 100644 index 0000000..c3bbb92 --- /dev/null +++ b/Config/nacos-2.5.0-cluster/nacos1/conf/application.properties @@ -0,0 +1,13 @@ +spring.sql.init.platform=mysql + +db.num=1 +db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT}/${MYSQL_SERVICE_DB_NAME}?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true +db.user=${MYSQL_SERVICE_USER} +db.password=${MYSQL_SERVICE_PASSWORD} + +nacos.core.auth.enabled=true +nacos.core.auth.system.type=nacos +# encode by base64 +nacos.core.auth.plugin.nacos.token.secret.key=XllrJFJiV20qcCNDIzh2OGYkNiVxd1VWU3FjVjU2alVyNEBzN21CRyRubmQjTks3S2sySF5wUFBxJVEyI2hAa3ZINm1qRVNEejRXeW1YR0Q0 +nacos.core.auth.server.identity.key=nacosadmin +nacos.core.auth.server.identity.value=nacosadmin \ No newline at end of file diff --git a/Config/nacos-2.5.0-cluster/nacos2/conf/application.properties b/Config/nacos-2.5.0-cluster/nacos2/conf/application.properties new file mode 100644 index 0000000..c3bbb92 --- /dev/null +++ b/Config/nacos-2.5.0-cluster/nacos2/conf/application.properties @@ -0,0 +1,13 @@ +spring.sql.init.platform=mysql + +db.num=1 +db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT}/${MYSQL_SERVICE_DB_NAME}?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true +db.user=${MYSQL_SERVICE_USER} +db.password=${MYSQL_SERVICE_PASSWORD} + +nacos.core.auth.enabled=true +nacos.core.auth.system.type=nacos +# encode by base64 +nacos.core.auth.plugin.nacos.token.secret.key=XllrJFJiV20qcCNDIzh2OGYkNiVxd1VWU3FjVjU2alVyNEBzN21CRyRubmQjTks3S2sySF5wUFBxJVEyI2hAa3ZINm1qRVNEejRXeW1YR0Q0 +nacos.core.auth.server.identity.key=nacosadmin +nacos.core.auth.server.identity.value=nacosadmin \ No newline at end of file diff --git a/Config/nacos-2.5.0-cluster/nacos3/conf/application.properties b/Config/nacos-2.5.0-cluster/nacos3/conf/application.properties new file mode 100644 index 0000000..c3bbb92 --- /dev/null +++ b/Config/nacos-2.5.0-cluster/nacos3/conf/application.properties @@ -0,0 +1,13 @@ +spring.sql.init.platform=mysql + +db.num=1 +db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT}/${MYSQL_SERVICE_DB_NAME}?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true +db.user=${MYSQL_SERVICE_USER} +db.password=${MYSQL_SERVICE_PASSWORD} + +nacos.core.auth.enabled=true +nacos.core.auth.system.type=nacos +# encode by base64 +nacos.core.auth.plugin.nacos.token.secret.key=XllrJFJiV20qcCNDIzh2OGYkNiVxd1VWU3FjVjU2alVyNEBzN21CRyRubmQjTks3S2sySF5wUFBxJVEyI2hAa3ZINm1qRVNEejRXeW1YR0Q0 +nacos.core.auth.server.identity.key=nacosadmin +nacos.core.auth.server.identity.value=nacosadmin \ No newline at end of file diff --git a/Config/nacos-2.5.0-cluster/run.md b/Config/nacos-2.5.0-cluster/run.md new file mode 100644 index 0000000..2d55920 --- /dev/null +++ b/Config/nacos-2.5.0-cluster/run.md @@ -0,0 +1,18 @@ +# Nacos 注册中心 + +一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台 + +- https://nacos.io + +### 部署方式 + +```shell +sh install.sh +``` + +访问 http://192.168.235.104:8848/nacos + +### 示例 + +![demo](./demo.png) + diff --git a/Config/nacos-2.5.0-cluster/scripts/mysql-schema.sql b/Config/nacos-2.5.0-cluster/scripts/mysql-schema.sql new file mode 100644 index 0000000..1f4e154 --- /dev/null +++ b/Config/nacos-2.5.0-cluster/scripts/mysql-schema.sql @@ -0,0 +1,220 @@ +/* + * 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. + */ + +/******************************************/ +/* 表名称 = 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(128) DEFAULT NULL COMMENT 'group_id', + `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 COMMENT 'app_name', + `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', + `c_desc` varchar(256) DEFAULT NULL COMMENT 'configuration description', + `c_use` varchar(64) DEFAULT NULL COMMENT 'configuration usage', + `effect` varchar(64) DEFAULT NULL COMMENT '配置生效的描述', + `type` varchar(64) DEFAULT NULL COMMENT '配置的类型', + `c_schema` text COMMENT '配置的模式', + `encrypted_data_key` varchar(1024) NOT NULL DEFAULT '' COMMENT '密钥', + 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'; + +/******************************************/ +/* 表名称 = config_info since 2.5.0 */ +/******************************************/ +CREATE TABLE `config_info_gray` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', + `data_id` varchar(255) NOT NULL COMMENT 'data_id', + `group_id` varchar(128) NOT NULL COMMENT 'group_id', + `content` longtext NOT NULL COMMENT 'content', + `md5` varchar(32) DEFAULT NULL COMMENT 'md5', + `src_user` text COMMENT 'src_user', + `src_ip` varchar(100) DEFAULT NULL COMMENT 'src_ip', + `gmt_create` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'gmt_create', + `gmt_modified` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'gmt_modified', + `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name', + `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id', + `gray_name` varchar(128) NOT NULL COMMENT 'gray_name', + `gray_rule` text NOT NULL COMMENT 'gray_rule', + `encrypted_data_key` varchar(256) NOT NULL DEFAULT '' COMMENT 'encrypted_data_key', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_configinfogray_datagrouptenantgray` (`data_id`,`group_id`,`tenant_id`,`gray_name`), + KEY `idx_dataid_gmt_modified` (`data_id`,`gmt_modified`), + KEY `idx_gmt_modified` (`gmt_modified`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='config_info_gray'; + +/******************************************/ +/* 表名称 = 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 '租户字段', + `encrypted_data_key` varchar(1024) NOT NULL 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'; + +/******************************************/ +/* 表名称 = 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'; + +/******************************************/ +/* 表名称 = 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 COMMENT 'nid, 自增长标识', + 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'; + +/******************************************/ +/* 表名称 = 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容量信息表'; + +/******************************************/ +/* 表名称 = his_config_info */ +/******************************************/ +CREATE TABLE `his_config_info` ( + `id` bigint(20) unsigned NOT NULL COMMENT 'id', + `nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'nid, 自增标识', + `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', + `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', + `op_type` char(10) DEFAULT NULL COMMENT 'operation type', + `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', + `encrypted_data_key` varchar(1024) NOT NULL DEFAULT '' COMMENT '密钥', + `publish_type` varchar(50) DEFAULT 'formal' COMMENT 'publish type gray or formal', + `gray_name` varchar(50) DEFAULT NULL COMMENT 'gray name', + `ext_info` longtext DEFAULT NULL COMMENT 'ext info', + 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='多租户改造'; + + +/******************************************/ +/* 表名称 = 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 COMMENT 'username', + `password` varchar(500) NOT NULL COMMENT 'password', + `enabled` boolean NOT NULL COMMENT 'enabled' +); + +CREATE TABLE `roles` ( + `username` varchar(50) NOT NULL COMMENT 'username', + `role` varchar(50) NOT NULL COMMENT 'role', + UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE +); + +CREATE TABLE `permissions` ( + `role` varchar(50) NOT NULL COMMENT 'role', + `resource` varchar(128) NOT NULL COMMENT 'resource', + `action` varchar(8) NOT NULL COMMENT 'action', + UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE +); + diff --git a/Config/nacos-2.5.0-cluster/shutdown.sh b/Config/nacos-2.5.0-cluster/shutdown.sh new file mode 100644 index 0000000..79d8216 --- /dev/null +++ b/Config/nacos-2.5.0-cluster/shutdown.sh @@ -0,0 +1 @@ +docker-compose -f docker-compose.yml -p nacos-cluster down \ No newline at end of file diff --git a/Config/nacos-2.5.0-standalone/demo.png b/Config/nacos-2.5.0-standalone/demo.png new file mode 100644 index 0000000..e276d0d Binary files /dev/null and b/Config/nacos-2.5.0-standalone/demo.png differ diff --git a/Config/nacos-2.5.0-standalone/docker-compose.yml b/Config/nacos-2.5.0-standalone/docker-compose.yml new file mode 100644 index 0000000..206191c --- /dev/null +++ b/Config/nacos-2.5.0-standalone/docker-compose.yml @@ -0,0 +1,58 @@ +version: '3.8' + +# 网桥 -> 方便相互通讯 +networks: + nacos: + ipam: + driver: default + config: + - subnet: "172.24.0.0/24" + +services: + mysql: + image: registry.cn-shanghai.aliyuncs.com/odboy/mysql:8.0 # 原镜像`mysql:8.0` + container_name: mysql8 # 容器名为'mysql8' + restart: unless-stopped + volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录 + - "./mysql/my.cnf:/etc/mysql/my.cnf" + - "./mysql/data:/var/lib/mysql" + # - "./mysql/conf.d:/etc/mysql/conf.d" + - "./mysql/mysql-files:/var/lib/mysql-files" + - "./scripts/mysql-schema.sql:/docker-entrypoint-initdb.d/mysql-schema.sql" + environment: + TZ: Asia/Shanghai + LANG: en_US.UTF-8 + MYSQL_ROOT_PASSWORD: root # 设置root用户密码 + MYSQL_DATABASE: nacos # 初始化的数据库名称 + privileged: true + user: root + ports: # 映射端口 + - "3308:3306" + networks: + nacos: + ipv4_address: 172.24.0.80 + nacos: + image: registry.cn-shanghai.aliyuncs.com/odboy/nacos-server:2.5.0 + container_name: nacos + restart: always + ports: + # web 界面访问端口 + - "8848:8848" + # 程序使用 grpc 连接的端口 + - "9848:9848" + environment: + - MODE=standalone + - PREFER_HOST_MODE=hostname + - MYSQL_SERVICE_HOST=mysql + - MYSQL_SERVICE_DB_NAME=nacos + - MYSQL_SERVICE_PORT=3306 + - MYSQL_SERVICE_USER=root + - MYSQL_SERVICE_PASSWORD=root + volumes: + - ./nacos/logs:/home/nacos/logs + - ./nacos/conf/application.properties:/home/nacos/conf/application.properties + depends_on: + - mysql + networks: + nacos: + ipv4_address: 172.24.0.81 \ No newline at end of file diff --git a/Config/nacos-2.5.0-standalone/install.sh b/Config/nacos-2.5.0-standalone/install.sh new file mode 100644 index 0000000..05b1237 --- /dev/null +++ b/Config/nacos-2.5.0-standalone/install.sh @@ -0,0 +1,3 @@ +#curl -O https://github.com/alibaba/nacos/blob/master/distribution/conf/mysql-schema.sql?spm=5238cd80.72a042d5.0.0.4bddcd36DjqTD6&file=mysql-schema.sql +#mv mysql-schema.sql ./scripts/ +docker-compose -f docker-compose.yml -p nacos up -d \ No newline at end of file diff --git a/Config/nacos-2.5.0-standalone/mysql/my.cnf b/Config/nacos-2.5.0-standalone/mysql/my.cnf new file mode 100644 index 0000000..1c92116 --- /dev/null +++ b/Config/nacos-2.5.0-standalone/mysql/my.cnf @@ -0,0 +1,19 @@ +# 服务端参数配置 +[mysqld] +user=mysql # MySQL启动用户 +default-storage-engine=INNODB # 创建新表时将使用的默认存储引擎 +character-set-server=utf8mb4 # 设置mysql服务端默认字符集 +collation-server=utf8mb4_general_ci # 数据库字符集对应一些排序等规则,注意要和character-set-server对应 +default-authentication-plugin=mysql_native_password + +max_connections=1000 # 允许最大连接数 +max_connect_errors=100 # 最大错误连接数 +sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION + + +[mysql] +default-character-set=utf8mb4 + + +[client] +default-character-set=utf8mb4 # 设置mysql客户端默认字符集 diff --git a/Config/nacos-2.5.0-standalone/nacos/conf/application.properties b/Config/nacos-2.5.0-standalone/nacos/conf/application.properties new file mode 100644 index 0000000..c3bbb92 --- /dev/null +++ b/Config/nacos-2.5.0-standalone/nacos/conf/application.properties @@ -0,0 +1,13 @@ +spring.sql.init.platform=mysql + +db.num=1 +db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT}/${MYSQL_SERVICE_DB_NAME}?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true +db.user=${MYSQL_SERVICE_USER} +db.password=${MYSQL_SERVICE_PASSWORD} + +nacos.core.auth.enabled=true +nacos.core.auth.system.type=nacos +# encode by base64 +nacos.core.auth.plugin.nacos.token.secret.key=XllrJFJiV20qcCNDIzh2OGYkNiVxd1VWU3FjVjU2alVyNEBzN21CRyRubmQjTks3S2sySF5wUFBxJVEyI2hAa3ZINm1qRVNEejRXeW1YR0Q0 +nacos.core.auth.server.identity.key=nacosadmin +nacos.core.auth.server.identity.value=nacosadmin \ No newline at end of file diff --git a/Config/nacos-2.5.0-standalone/run.md b/Config/nacos-2.5.0-standalone/run.md new file mode 100644 index 0000000..2d55920 --- /dev/null +++ b/Config/nacos-2.5.0-standalone/run.md @@ -0,0 +1,18 @@ +# Nacos 注册中心 + +一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台 + +- https://nacos.io + +### 部署方式 + +```shell +sh install.sh +``` + +访问 http://192.168.235.104:8848/nacos + +### 示例 + +![demo](./demo.png) + diff --git a/Config/nacos-2.5.0-standalone/scripts/mysql-schema.sql b/Config/nacos-2.5.0-standalone/scripts/mysql-schema.sql new file mode 100644 index 0000000..1f4e154 --- /dev/null +++ b/Config/nacos-2.5.0-standalone/scripts/mysql-schema.sql @@ -0,0 +1,220 @@ +/* + * 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. + */ + +/******************************************/ +/* 表名称 = 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(128) DEFAULT NULL COMMENT 'group_id', + `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 COMMENT 'app_name', + `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', + `c_desc` varchar(256) DEFAULT NULL COMMENT 'configuration description', + `c_use` varchar(64) DEFAULT NULL COMMENT 'configuration usage', + `effect` varchar(64) DEFAULT NULL COMMENT '配置生效的描述', + `type` varchar(64) DEFAULT NULL COMMENT '配置的类型', + `c_schema` text COMMENT '配置的模式', + `encrypted_data_key` varchar(1024) NOT NULL DEFAULT '' COMMENT '密钥', + 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'; + +/******************************************/ +/* 表名称 = config_info since 2.5.0 */ +/******************************************/ +CREATE TABLE `config_info_gray` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', + `data_id` varchar(255) NOT NULL COMMENT 'data_id', + `group_id` varchar(128) NOT NULL COMMENT 'group_id', + `content` longtext NOT NULL COMMENT 'content', + `md5` varchar(32) DEFAULT NULL COMMENT 'md5', + `src_user` text COMMENT 'src_user', + `src_ip` varchar(100) DEFAULT NULL COMMENT 'src_ip', + `gmt_create` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'gmt_create', + `gmt_modified` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'gmt_modified', + `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name', + `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id', + `gray_name` varchar(128) NOT NULL COMMENT 'gray_name', + `gray_rule` text NOT NULL COMMENT 'gray_rule', + `encrypted_data_key` varchar(256) NOT NULL DEFAULT '' COMMENT 'encrypted_data_key', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_configinfogray_datagrouptenantgray` (`data_id`,`group_id`,`tenant_id`,`gray_name`), + KEY `idx_dataid_gmt_modified` (`data_id`,`gmt_modified`), + KEY `idx_gmt_modified` (`gmt_modified`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='config_info_gray'; + +/******************************************/ +/* 表名称 = 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 '租户字段', + `encrypted_data_key` varchar(1024) NOT NULL 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'; + +/******************************************/ +/* 表名称 = 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'; + +/******************************************/ +/* 表名称 = 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 COMMENT 'nid, 自增长标识', + 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'; + +/******************************************/ +/* 表名称 = 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容量信息表'; + +/******************************************/ +/* 表名称 = his_config_info */ +/******************************************/ +CREATE TABLE `his_config_info` ( + `id` bigint(20) unsigned NOT NULL COMMENT 'id', + `nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'nid, 自增标识', + `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', + `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', + `op_type` char(10) DEFAULT NULL COMMENT 'operation type', + `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', + `encrypted_data_key` varchar(1024) NOT NULL DEFAULT '' COMMENT '密钥', + `publish_type` varchar(50) DEFAULT 'formal' COMMENT 'publish type gray or formal', + `gray_name` varchar(50) DEFAULT NULL COMMENT 'gray name', + `ext_info` longtext DEFAULT NULL COMMENT 'ext info', + 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='多租户改造'; + + +/******************************************/ +/* 表名称 = 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 COMMENT 'username', + `password` varchar(500) NOT NULL COMMENT 'password', + `enabled` boolean NOT NULL COMMENT 'enabled' +); + +CREATE TABLE `roles` ( + `username` varchar(50) NOT NULL COMMENT 'username', + `role` varchar(50) NOT NULL COMMENT 'role', + UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE +); + +CREATE TABLE `permissions` ( + `role` varchar(50) NOT NULL COMMENT 'role', + `resource` varchar(128) NOT NULL COMMENT 'resource', + `action` varchar(8) NOT NULL COMMENT 'action', + UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE +); + diff --git a/Config/nacos-2.5.0-standalone/shutdown.sh b/Config/nacos-2.5.0-standalone/shutdown.sh new file mode 100644 index 0000000..7069929 --- /dev/null +++ b/Config/nacos-2.5.0-standalone/shutdown.sh @@ -0,0 +1 @@ +docker-compose -f docker-compose.yml -p nacos down \ No newline at end of file