分為3大部分:
- 數據庫:mysql,redis,mongodb,elasticsearch,neo4j,minio,influxdb,canal-server
- 應用中間件:nacos,apollo,zookeeper,kafka,rocketmq,seata
- 運維中間件:skywalking,sentinel,prometheus,grafana,node-exporter,alertmanager,cadvisor
?1.數據庫
創建docker-database文件夾,在其下創建docker-compose.yml文件和sql文件夾
docker-compose.yml
version: '3.8'services:# MySQL 服務mysql:image: mysql:8.0.21container_name: mysqlrestart: alwaysvolumes:- ./mysql/data:/var/lib/mysql- ./mysql/log:/var/log/mysql- ./mysql/conf:/etc/mysql/conf.d- ./sql:/docker-entrypoint-initdb.dports:- "3306:3306"networks:my-network:aliases: # 建議添加別名- mysqldeploy:resources:limits:memory: 500mprivileged: trueenvironment:- MYSQL_ROOT_PASSWORD=jy123456- TZ=Asia/Shanghai- MYSQL_DATABASE=nacos- MYSQL_USER=nacos # 創建nacos用戶,使用root需要權限- MYSQL_PASSWORD=jy123456 # nacos用戶密碼command: --character-set-server=utf8mb4--collation-server=utf8mb4_unicode_ci--bind-address=0.0.0.0--lower_case_table_names=1--default-authentication-plugin=mysql_native_passwordhealthcheck:test: ["CMD", "mysqladmin", "ping", "-uroot", "-pjy123456"]interval: 5stimeout: 10sretries: 10canal-server:image: canal/canal-servercontainer_name: canal-serverports:- "11111:11111"environment:- canal.instance.mysql.slaveId=1234- canal.instance.filter.regex=.*\\..*- canal.instance.mysql.username=root- canal.instance.mysql.password=jy123456- canal.instance.mysql.address=mysql:3306volumes:- ./canal/conf:/home/admin/canal-server/conf- ./canal/logs:/home/admin/canal-server/logsdepends_on:- mysqlrestart: unless-stopped# Redis 服務redis:image: redis:6.0.8container_name: redisrestart: alwaysports:- "6379:6379"network_mode: "bridge"privileged: truevolumes:- ./redis/redis.conf:/etc/redis/redis.conf- ./redis/data:/datacommand: - --cluster-enabled- no- --appendonly- yes# MongoDB 服務mongodb:image: mongocontainer_name: mongodbenvironment:MONGO_INITDB_ROOT_USERNAME: rootMONGO_INITDB_ROOT_PASSWORD: jy123456volumes:- ./mongodb/data:/data/dbports:- "27017:27017"stdin_open: truetty: truerestart: unless-stopped# Elasticsearch 服務elasticsearch:image: elasticsearch:7.13.2container_name: elasticsearchenvironment:- discovery.type=single-node- ES_JAVA_OPTS=-Xms1g -Xmx1g- ELASTIC_PASSWORD=jy123456volumes:- ./elasticsearch/data:/usr/share/elasticsearch/data- ./elasticsearch/plugins:/usr/share/elasticsearch/pluginsports:- "9200:9200"- "9300:9300"networks:- my-networkulimits:memlock:soft: -1hard: -1healthcheck:test: ["CMD", "curl", "-f", "http://localhost:9200/_cluster/health"]interval: 30stimeout: 10sretries: 5# MinIO 服務minio:image: minio/miniocontainer_name: miniocommand: server /data --console-address ":9001"environment:MINIO_ROOT_USER: rootMINIO_ROOT_PASSWORD: jy123456restart: unless-stoppedvolumes:- ./minio/data:/dataports:- "9000:9000" # API端口- "9001:9001" # 控制臺端口healthcheck:test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]interval: 30stimeout: 10sretries: 3# InfluxDB 服務influxdb:image: influxdb:latestcontainer_name: influxdbenvironment:DOCKER_INFLUXDB_INIT_MODE: setupDOCKER_INFLUXDB_INIT_USERNAME: rootDOCKER_INFLUXDB_INIT_PASSWORD: jy123456DOCKER_INFLUXDB_INIT_ORG: jiangyongDOCKER_INFLUXDB_INIT_BUCKET: mybucketDOCKER_INFLUXDB_INIT_ADMIN_TOKEN: myadmintokenvolumes:- ./influxdb/data:/var/lib/influxdb2ports:- "8086:8086"restart: unless-stopped# Neo4j 服務neo4j:image: neo4j:5.13-communitycontainer_name: neo4jenvironment:NEO4J_AUTH: neo4j/jy123456 # 用戶名必須是neo4jNEO4J_apoc_export_file_enabled: trueNEO4J_apoc_import_file_enabled: trueNEO4J_apoc_import_file_use__neo4j__config: trueNEO4J_PLUGINS: '["apoc"]'volumes:- ./neo4j/data:/data- ./neo4j/logs:/logs- ./neo4j/import:/var/lib/neo4j/importports:- "7474:7474" # 瀏覽器訪問- "7687:7687" # Bolt協議healthcheck:test: ["CMD", "cypher-shell", "-u", "neo4j", "-p", "neopassword", "RETURN 1"]interval: 10stimeout: 5sretries: 5networks:my-network:external: truename: global-network
sql文件夾創建mysql初始化文件,如nacos,seata,apollo組件的初始化腳本
nacos.sql
-- 刪除舊用戶
DROP USER IF EXISTS 'nacos'@'%';
DROP USER IF EXISTS 'nacos'@'nacos.global-network';-- 創建/更新用戶權限
CREATE USER IF NOT EXISTS 'nacos'@'nacos.global-network' IDENTIFIED BY 'jy123456';
GRANT ALL PRIVILEGES ON nacos.* TO 'nacos'@'nacos.global-network';-- 或者,允許從任何主機連接(更簡單)
CREATE USER IF NOT EXISTS 'nacos'@'%' IDENTIFIED BY 'jy123456';
GRANT ALL PRIVILEGES ON nacos.* TO 'nacos'@'%';
FLUSH PRIVILEGES;-- 驗證權限
SHOW GRANTS FOR 'nacos'@'nacos.global-network';
-- 或
SHOW GRANTS FOR 'nacos'@'%';-- 創建數據庫
CREATE DATABASE IF NOT EXISTS nacos CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;-- 使用數據庫
USE nacos;/*Navicat Premium Data TransferSource Server : win_docker_mysqlSource Server Type : MySQLSource Server Version : 80021Source Host : localhost:3306Source Schema : nacosTarget Server Type : MySQLTarget Server Version : 80021File Encoding : 65001Date: 10/07/2025 08:40:15
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for config_info
-- ----------------------------
DROP TABLE IF EXISTS `config_info`;
CREATE TABLE `config_info` (`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',`data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id',`group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'group_id',`content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'content',`md5` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NULL 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 CHARACTER SET utf8 COLLATE utf8_bin NULL COMMENT 'source user',`src_ip` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'source ip',`app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'app_name',`tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT '租戶字段',`c_desc` varchar(256) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'configuration description',`c_use` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'configuration usage',`effect` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '配置生效的描述',`type` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '配置的類型',`c_schema` text CHARACTER SET utf8 COLLATE utf8_bin NULL COMMENT '配置的模式',`encrypted_data_key` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '密鑰',PRIMARY KEY (`id`) USING BTREE,UNIQUE INDEX `uk_configinfo_datagrouptenant`(`data_id` ASC, `group_id` ASC, `tenant_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'config_info' ROW_FORMAT = DYNAMIC;-- ----------------------------
-- Records of config_info
-- ------------------------------ ----------------------------
-- Table structure for config_info_aggr
-- ----------------------------
DROP TABLE IF EXISTS `config_info_aggr`;
CREATE TABLE `config_info_aggr` (`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',`data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id',`group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'group_id',`datum_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'datum_id',`content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '內容',`gmt_modified` datetime NOT NULL COMMENT '修改時間',`app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'app_name',`tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT '租戶字段',PRIMARY KEY (`id`) USING BTREE,UNIQUE INDEX `uk_configinfoaggr_datagrouptenantdatum`(`data_id` ASC, `group_id` ASC, `tenant_id` ASC, `datum_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '增加租戶字段' ROW_FORMAT = DYNAMIC;-- ----------------------------
-- Records of config_info_aggr
-- ------------------------------ ----------------------------
-- Table structure for config_info_beta
-- ----------------------------
DROP TABLE IF EXISTS `config_info_beta`;
CREATE TABLE `config_info_beta` (`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',`data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id',`group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'group_id',`app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'app_name',`content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'content',`beta_ips` varchar(1024) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'betaIps',`md5` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NULL 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 CHARACTER SET utf8 COLLATE utf8_bin NULL COMMENT 'source user',`src_ip` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'source ip',`tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT '租戶字段',`encrypted_data_key` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '密鑰',PRIMARY KEY (`id`) USING BTREE,UNIQUE INDEX `uk_configinfobeta_datagrouptenant`(`data_id` ASC, `group_id` ASC, `tenant_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'config_info_beta' ROW_FORMAT = DYNAMIC;-- ----------------------------
-- Records of config_info_beta
-- ------------------------------ ----------------------------
-- Table structure for config_info_tag
-- ----------------------------
DROP TABLE IF EXISTS `config_info_tag`;
CREATE TABLE `config_info_tag` (`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',`data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id',`group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'group_id',`tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT 'tenant_id',`tag_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'tag_id',`app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'app_name',`content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'content',`md5` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NULL 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 CHARACTER SET utf8 COLLATE utf8_bin NULL COMMENT 'source user',`src_ip` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'source ip',PRIMARY KEY (`id`) USING BTREE,UNIQUE INDEX `uk_configinfotag_datagrouptenanttag`(`data_id` ASC, `group_id` ASC, `tenant_id` ASC, `tag_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'config_info_tag' ROW_FORMAT = DYNAMIC;-- ----------------------------
-- Records of config_info_tag
-- ------------------------------ ----------------------------
-- Table structure for config_tags_relation
-- ----------------------------
DROP TABLE IF EXISTS `config_tags_relation`;
CREATE TABLE `config_tags_relation` (`id` bigint NOT NULL COMMENT 'id',`tag_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'tag_name',`tag_type` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'tag_type',`data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id',`group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'group_id',`tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT 'tenant_id',`nid` bigint NOT NULL AUTO_INCREMENT COMMENT 'nid, 自增長標識',PRIMARY KEY (`nid`) USING BTREE,UNIQUE INDEX `uk_configtagrelation_configidtag`(`id` ASC, `tag_name` ASC, `tag_type` ASC) USING BTREE,INDEX `idx_tenant_id`(`tenant_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'config_tag_relation' ROW_FORMAT = DYNAMIC;-- ----------------------------
-- Records of config_tags_relation
-- ------------------------------ ----------------------------
-- Table structure for group_capacity
-- ----------------------------
DROP TABLE IF EXISTS `group_capacity`;
CREATE TABLE `group_capacity` (`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',`group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整個集群',`quota` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '配額,0表示使用默認值',`usage` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '使用量',`max_size` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '單個配置大小上限,單位為字節,0表示使用默認值',`max_aggr_count` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '聚合子配置最大個數,,0表示使用默認值',`max_aggr_size` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '單個聚合數據的子配置大小上限,單位為字節,0表示使用默認值',`max_history_count` int 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`) USING BTREE,UNIQUE INDEX `uk_group_id`(`group_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '集群、各Group容量信息表' ROW_FORMAT = DYNAMIC;-- ----------------------------
-- Records of group_capacity
-- ------------------------------ ----------------------------
-- Table structure for his_config_info
-- ----------------------------
DROP TABLE IF EXISTS `his_config_info`;
CREATE TABLE `his_config_info` (`id` bigint UNSIGNED NOT NULL COMMENT 'id',`nid` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'nid, 自增標識',`data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id',`group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'group_id',`app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'app_name',`content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'content',`md5` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NULL 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 CHARACTER SET utf8 COLLATE utf8_bin NULL COMMENT 'source user',`src_ip` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'source ip',`op_type` char(10) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'operation type',`tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT '租戶字段',`encrypted_data_key` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '密鑰',PRIMARY KEY (`nid`) USING BTREE,INDEX `idx_gmt_create`(`gmt_create` ASC) USING BTREE,INDEX `idx_gmt_modified`(`gmt_modified` ASC) USING BTREE,INDEX `idx_did`(`data_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '多租戶改造' ROW_FORMAT = DYNAMIC;-- ----------------------------
-- Records of his_config_info
-- ------------------------------ ----------------------------
-- Table structure for permissions
-- ----------------------------
DROP TABLE IF EXISTS `permissions`;
CREATE TABLE `permissions` (`role` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'role',`resource` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'resource',`action` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'action',UNIQUE INDEX `uk_role_permission`(`role` ASC, `resource` ASC, `action` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;-- ----------------------------
-- Records of permissions
-- ------------------------------ ----------------------------
-- Table structure for roles
-- ----------------------------
DROP TABLE IF EXISTS `roles`;
CREATE TABLE `roles` (`username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'username',`role` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'role',UNIQUE INDEX `idx_user_role`(`username` ASC, `role` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;-- ----------------------------
-- Records of roles
-- ----------------------------
INSERT INTO `roles` VALUES ('nacos', 'ROLE_ADMIN');-- ----------------------------
-- Table structure for tenant_capacity
-- ----------------------------
DROP TABLE IF EXISTS `tenant_capacity`;
CREATE TABLE `tenant_capacity` (`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',`tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'Tenant ID',`quota` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '配額,0表示使用默認值',`usage` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '使用量',`max_size` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '單個配置大小上限,單位為字節,0表示使用默認值',`max_aggr_count` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '聚合子配置最大個數',`max_aggr_size` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '單個聚合數據的子配置大小上限,單位為字節,0表示使用默認值',`max_history_count` int 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`) USING BTREE,UNIQUE INDEX `uk_tenant_id`(`tenant_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '租戶容量信息表' ROW_FORMAT = DYNAMIC;-- ----------------------------
-- Records of tenant_capacity
-- ------------------------------ ----------------------------
-- Table structure for tenant_info
-- ----------------------------
DROP TABLE IF EXISTS `tenant_info`;
CREATE TABLE `tenant_info` (`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',`kp` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'kp',`tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT 'tenant_id',`tenant_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT 'tenant_name',`tenant_desc` varchar(256) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'tenant_desc',`create_source` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'create_source',`gmt_create` bigint NOT NULL COMMENT '創建時間',`gmt_modified` bigint NOT NULL COMMENT '修改時間',PRIMARY KEY (`id`) USING BTREE,UNIQUE INDEX `uk_tenant_info_kptenantid`(`kp` ASC, `tenant_id` ASC) USING BTREE,INDEX `idx_tenant_id`(`tenant_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'tenant_info' ROW_FORMAT = DYNAMIC;-- ----------------------------
-- Records of tenant_info
-- ------------------------------ ----------------------------
-- Table structure for users
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (`username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'username',`password` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'password',`enabled` tinyint(1) NOT NULL COMMENT 'enabled',PRIMARY KEY (`username`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;-- ----------------------------
-- Records of users
-- ----------------------------
INSERT INTO `users` VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', 1);SET FOREIGN_KEY_CHECKS = 1;
apolloconfigdb.sql
--
-- Copyright 2024 Apollo Authors
--
-- 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.
--
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;-- ${gists.autoGeneratedDeclaration}
-- ${gists.h2Function}
-- ${gists.setupDatabase}CREATE DATABASE IF NOT EXISTS apolloconfigdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- Dump of table app
-- ------------------------------------------------------------DROP TABLE IF EXISTS `App`;CREATE TABLE `App` (`Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵',`AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID',`Name` varchar(500) NOT NULL DEFAULT 'default' COMMENT '應用名',`OrgId` varchar(32) NOT NULL DEFAULT 'default' COMMENT '部門Id',`OrgName` varchar(64) NOT NULL DEFAULT 'default' COMMENT '部門名字',`OwnerName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerName',`OwnerEmail` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerEmail',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),UNIQUE KEY `UK_AppId_DeletedAt` (`AppId`,`DeletedAt`),KEY `DataChange_LastTime` (`DataChange_LastTime`),KEY `IX_Name` (`Name`(191))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='應用表';-- Dump of table appnamespace
-- ------------------------------------------------------------DROP TABLE IF EXISTS `AppNamespace`;CREATE TABLE `AppNamespace` (`Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主鍵',`Name` varchar(32) NOT NULL DEFAULT '' COMMENT 'namespace名字,注意,需要全局唯一',`AppId` varchar(64) NOT NULL DEFAULT '' COMMENT 'app id',`Format` varchar(32) NOT NULL DEFAULT 'properties' COMMENT 'namespace的format類型',`IsPublic` bit(1) NOT NULL DEFAULT b'0' COMMENT 'namespace是否為公共',`Comment` varchar(64) NOT NULL DEFAULT '' COMMENT '注釋',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),UNIQUE KEY `UK_AppId_Name_DeletedAt` (`AppId`,`Name`,`DeletedAt`),KEY `Name_AppId` (`Name`,`AppId`),KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='應用namespace定義';-- Dump of table audit
-- ------------------------------------------------------------DROP TABLE IF EXISTS `Audit`;CREATE TABLE `Audit` (`Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵',`EntityName` varchar(50) NOT NULL DEFAULT 'default' COMMENT '表名',`EntityId` int(10) unsigned DEFAULT NULL COMMENT '記錄ID',`OpName` varchar(50) NOT NULL DEFAULT 'default' COMMENT '操作類型',`Comment` varchar(500) DEFAULT NULL COMMENT '備注',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='日志審計表';-- Dump of table cluster
-- ------------------------------------------------------------DROP TABLE IF EXISTS `Cluster`;CREATE TABLE `Cluster` (`Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主鍵',`Name` varchar(32) NOT NULL DEFAULT '' COMMENT '集群名字',`AppId` varchar(64) NOT NULL DEFAULT '' COMMENT 'App id',`ParentClusterId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '父cluster',`Comment` varchar(64) DEFAULT NULL COMMENT '備注',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),UNIQUE KEY `UK_AppId_Name_DeletedAt` (`AppId`,`Name`,`DeletedAt`),KEY `IX_ParentClusterId` (`ParentClusterId`),KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='集群';-- Dump of table commit
-- ------------------------------------------------------------DROP TABLE IF EXISTS `Commit`;CREATE TABLE `Commit` (`Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵',`ChangeSets` longtext NOT NULL COMMENT '修改變更集',`AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID',`ClusterName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'ClusterName',`NamespaceName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'namespaceName',`Comment` varchar(500) DEFAULT NULL COMMENT '備注',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),KEY `DataChange_LastTime` (`DataChange_LastTime`),KEY `AppId` (`AppId`),KEY `ClusterName` (`ClusterName`),KEY `NamespaceName` (`NamespaceName`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='commit 歷史表';-- Dump of table grayreleaserule
-- ------------------------------------------------------------DROP TABLE IF EXISTS `GrayReleaseRule`;CREATE TABLE `GrayReleaseRule` (`Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵',`AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID',`ClusterName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'Cluster Name',`NamespaceName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'Namespace Name',`BranchName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'branch name',`Rules` varchar(16000) DEFAULT '[]' COMMENT '灰度規則',`ReleaseId` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '灰度對應的release',`BranchStatus` tinyint(2) DEFAULT '1' COMMENT '灰度分支狀態: 0:刪除分支,1:正在使用的規則 2:全量發布',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),KEY `DataChange_LastTime` (`DataChange_LastTime`),KEY `IX_Namespace` (`AppId`,`ClusterName`,`NamespaceName`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='灰度規則表';-- Dump of table instance
-- ------------------------------------------------------------DROP TABLE IF EXISTS `Instance`;CREATE TABLE `Instance` (`Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',`AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID',`ClusterName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'ClusterName',`DataCenter` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'Data Center Name',`Ip` varchar(32) NOT NULL DEFAULT '' COMMENT 'instance ip',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),UNIQUE KEY `IX_UNIQUE_KEY` (`AppId`,`ClusterName`,`Ip`,`DataCenter`),KEY `IX_IP` (`Ip`),KEY `IX_DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='使用配置的應用實例';-- Dump of table instanceconfig
-- ------------------------------------------------------------DROP TABLE IF EXISTS `InstanceConfig`;CREATE TABLE `InstanceConfig` (`Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',`InstanceId` int(11) unsigned DEFAULT NULL COMMENT 'Instance Id',`ConfigAppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'Config App Id',`ConfigClusterName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'Config Cluster Name',`ConfigNamespaceName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'Config Namespace Name',`ReleaseKey` varchar(64) NOT NULL DEFAULT '' COMMENT '發布的Key',`ReleaseDeliveryTime` timestamp NULL DEFAULT NULL COMMENT '配置獲取時間',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),UNIQUE KEY `IX_UNIQUE_KEY` (`InstanceId`,`ConfigAppId`,`ConfigNamespaceName`),KEY `IX_ReleaseKey` (`ReleaseKey`),KEY `IX_DataChange_LastTime` (`DataChange_LastTime`),KEY `IX_Valid_Namespace` (`ConfigAppId`,`ConfigClusterName`,`ConfigNamespaceName`,`DataChange_LastTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='應用實例的配置信息';-- Dump of table item
-- ------------------------------------------------------------DROP TABLE IF EXISTS `Item`;CREATE TABLE `Item` (`Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',`NamespaceId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '集群NamespaceId',`Key` varchar(128) NOT NULL DEFAULT 'default' COMMENT '配置項Key',`Type` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '配置項類型,0: String,1: Number,2: Boolean,3: JSON',`Value` longtext NOT NULL COMMENT '配置項值',`Comment` varchar(1024) DEFAULT '' COMMENT '注釋',`LineNum` int(10) unsigned DEFAULT '0' COMMENT '行號',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),KEY `IX_GroupId` (`NamespaceId`),KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='配置項目';-- Dump of table namespace
-- ------------------------------------------------------------DROP TABLE IF EXISTS `Namespace`;CREATE TABLE `Namespace` (`Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主鍵',`AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID',`ClusterName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'Cluster Name',`NamespaceName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'Namespace Name',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),UNIQUE KEY `UK_AppId_ClusterName_NamespaceName_DeletedAt` (`AppId`,`ClusterName`,`NamespaceName`,`DeletedAt`),KEY `DataChange_LastTime` (`DataChange_LastTime`),KEY `IX_NamespaceName` (`NamespaceName`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='命名空間';-- Dump of table namespacelock
-- ------------------------------------------------------------DROP TABLE IF EXISTS `NamespaceLock`;CREATE TABLE `NamespaceLock` (`Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',`NamespaceId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '集群NamespaceId',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',`IsDeleted` bit(1) DEFAULT b'0' COMMENT '軟刪除',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',PRIMARY KEY (`Id`),UNIQUE KEY `UK_NamespaceId_DeletedAt` (`NamespaceId`,`DeletedAt`),KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='namespace的編輯鎖';-- Dump of table release
-- ------------------------------------------------------------DROP TABLE IF EXISTS `Release`;CREATE TABLE `Release` (`Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主鍵',`ReleaseKey` varchar(64) NOT NULL DEFAULT '' COMMENT '發布的Key',`Name` varchar(64) NOT NULL DEFAULT 'default' COMMENT '發布名字',`Comment` varchar(256) DEFAULT NULL COMMENT '發布說明',`AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID',`ClusterName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'ClusterName',`NamespaceName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'namespaceName',`Configurations` longtext NOT NULL COMMENT '發布配置',`IsAbandoned` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否廢棄',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),UNIQUE KEY `UK_ReleaseKey_DeletedAt` (`ReleaseKey`,`DeletedAt`),KEY `AppId_ClusterName_GroupName` (`AppId`,`ClusterName`,`NamespaceName`),KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='發布';-- Dump of table releasehistory
-- ------------------------------------------------------------DROP TABLE IF EXISTS `ReleaseHistory`;CREATE TABLE `ReleaseHistory` (`Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',`AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID',`ClusterName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'ClusterName',`NamespaceName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'namespaceName',`BranchName` varchar(32) NOT NULL DEFAULT 'default' COMMENT '發布分支名',`ReleaseId` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '關聯的Release Id',`PreviousReleaseId` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '前一次發布的ReleaseId',`Operation` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '發布類型,0: 普通發布,1: 回滾,2: 灰度發布,3: 灰度規則更新,4: 灰度合并回主分支發布,5: 主分支發布灰度自動發布,6: 主分支回滾灰度自動發布,7: 放棄灰度',`OperationContext` longtext NOT NULL COMMENT '發布上下文信息',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),KEY `IX_Namespace` (`AppId`,`ClusterName`,`NamespaceName`,`BranchName`),KEY `IX_ReleaseId` (`ReleaseId`),KEY `IX_DataChange_LastTime` (`DataChange_LastTime`),KEY `IX_PreviousReleaseId` (`PreviousReleaseId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='發布歷史';-- Dump of table releasemessage
-- ------------------------------------------------------------DROP TABLE IF EXISTS `ReleaseMessage`;CREATE TABLE `ReleaseMessage` (`Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主鍵',`Message` varchar(1024) NOT NULL DEFAULT '' COMMENT '發布的消息內容',`DataChange_LastTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),KEY `DataChange_LastTime` (`DataChange_LastTime`),KEY `IX_Message` (`Message`(191))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='發布消息';-- Dump of table serverconfig
-- ------------------------------------------------------------DROP TABLE IF EXISTS `ServerConfig`;CREATE TABLE `ServerConfig` (`Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',`Key` varchar(64) NOT NULL DEFAULT 'default' COMMENT '配置項Key',`Cluster` varchar(32) NOT NULL DEFAULT 'default' COMMENT '配置對應的集群,default為不針對特定的集群',`Value` varchar(2048) NOT NULL DEFAULT 'default' COMMENT '配置項值',`Comment` varchar(1024) DEFAULT '' COMMENT '注釋',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),UNIQUE KEY `UK_Key_Cluster_DeletedAt` (`Key`,`Cluster`,`DeletedAt`),KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='配置服務自身配置';-- Dump of table accesskey
-- ------------------------------------------------------------DROP TABLE IF EXISTS `AccessKey`;CREATE TABLE `AccessKey` (`Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主鍵',`AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID',`Secret` varchar(128) NOT NULL DEFAULT '' COMMENT 'Secret',`Mode` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '密鑰模式,0: filter,1: observer',`IsEnabled` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: enabled, 0: disabled',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),UNIQUE KEY `UK_AppId_Secret_DeletedAt` (`AppId`,`Secret`,`DeletedAt`),KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='訪問密鑰';-- Dump of table serviceregistry
-- ------------------------------------------------------------DROP TABLE IF EXISTS `ServiceRegistry`;CREATE TABLE `ServiceRegistry` (`Id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增Id',`ServiceName` VARCHAR(64) NOT NULL COMMENT '服務名',`Uri` VARCHAR(64) NOT NULL COMMENT '服務地址',`Cluster` VARCHAR(64) NOT NULL COMMENT '集群,可以用來標識apollo.cluster或者網絡分區',`Metadata` VARCHAR(1024) NOT NULL DEFAULT '{}' COMMENT '元數據,key value結構的json object,為了方面后面擴展功能而不需要修改表結構',`DataChange_CreatedTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),UNIQUE INDEX `IX_UNIQUE_KEY` (`ServiceName`, `Uri`),INDEX `IX_DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='注冊中心';-- Dump of table AuditLog
-- ------------------------------------------------------------DROP TABLE IF EXISTS `AuditLog`;CREATE TABLE `AuditLog` (`Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵',`TraceId` varchar(32) NOT NULL DEFAULT '' COMMENT '鏈路全局唯一ID',`SpanId` varchar(32) NOT NULL DEFAULT '' COMMENT '跨度ID',`ParentSpanId` varchar(32) DEFAULT NULL COMMENT '父跨度ID',`FollowsFromSpanId` varchar(32) DEFAULT NULL COMMENT '上一個兄弟跨度ID',`Operator` varchar(64) NOT NULL DEFAULT 'anonymous' COMMENT '操作人',`OpType` varchar(50) NOT NULL DEFAULT 'default' COMMENT '操作類型',`OpName` varchar(150) NOT NULL DEFAULT 'default' COMMENT '操作名稱',`Description` varchar(200) DEFAULT NULL COMMENT '備注',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) DEFAULT NULL COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),KEY `IX_TraceId` (`TraceId`),KEY `IX_OpName` (`OpName`),KEY `IX_DataChange_CreatedTime` (`DataChange_CreatedTime`),KEY `IX_Operator` (`Operator`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='審計日志表';-- Dump of table AuditLogDataInfluence
-- ------------------------------------------------------------DROP TABLE IF EXISTS `AuditLogDataInfluence`;CREATE TABLE `AuditLogDataInfluence` (`Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵',`SpanId` char(32) NOT NULL DEFAULT '' COMMENT '跨度ID',`InfluenceEntityId` varchar(50) NOT NULL DEFAULT '0' COMMENT '記錄ID',`InfluenceEntityName` varchar(50) NOT NULL DEFAULT 'default' COMMENT '表名',`FieldName` varchar(50) DEFAULT NULL COMMENT '字段名稱',`FieldOldValue` varchar(500) DEFAULT NULL COMMENT '字段舊值',`FieldNewValue` varchar(500) DEFAULT NULL COMMENT '字段新值',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) DEFAULT NULL COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),KEY `IX_SpanId` (`SpanId`),KEY `IX_DataChange_CreatedTime` (`DataChange_CreatedTime`),KEY `IX_EntityId` (`InfluenceEntityId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='審計日志數據變動表';-- Config
-- ------------------------------------------------------------
INSERT INTO `ServerConfig` (`Key`, `Cluster`, `Value`, `Comment`)
VALUES('eureka.service.url', 'default', 'http://localhost:8080/eureka/', 'Eureka服務Url,多個service以英文逗號分隔'),('namespace.lock.switch', 'default', 'false', '一次發布只能有一個人修改開關'),('item.key.length.limit', 'default', '128', 'item key 最大長度限制'),('item.value.length.limit', 'default', '20000', 'item value最大長度限制'),('config-service.cache.enabled', 'default', 'false', 'ConfigService是否開啟緩存,開啟后能提高性能,但是會增大內存消耗!');-- ${gists.autoGeneratedDeclaration}/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
apolloportaldb.sql
--
-- Copyright 2024 Apollo Authors
--
-- 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.
--
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;-- ${gists.autoGeneratedDeclaration}
-- ${gists.h2Function}
-- ${gists.setupDatabase}CREATE DATABASE IF NOT EXISTS apolloportaldb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- Dump of table app
-- ------------------------------------------------------------DROP TABLE IF EXISTS `App`;CREATE TABLE `App` (`Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵',`AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID',`Name` varchar(500) NOT NULL DEFAULT 'default' COMMENT '應用名',`OrgId` varchar(32) NOT NULL DEFAULT 'default' COMMENT '部門Id',`OrgName` varchar(64) NOT NULL DEFAULT 'default' COMMENT '部門名字',`OwnerName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerName',`OwnerEmail` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerEmail',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),UNIQUE KEY `UK_AppId_DeletedAt` (`AppId`,`DeletedAt`),KEY `DataChange_LastTime` (`DataChange_LastTime`),KEY `IX_Name` (`Name`(191))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='應用表';-- Dump of table appnamespace
-- ------------------------------------------------------------DROP TABLE IF EXISTS `AppNamespace`;CREATE TABLE `AppNamespace` (`Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主鍵',`Name` varchar(32) NOT NULL DEFAULT '' COMMENT 'namespace名字,注意,需要全局唯一',`AppId` varchar(64) NOT NULL DEFAULT '' COMMENT 'app id',`Format` varchar(32) NOT NULL DEFAULT 'properties' COMMENT 'namespace的format類型',`IsPublic` bit(1) NOT NULL DEFAULT b'0' COMMENT 'namespace是否為公共',`Comment` varchar(64) NOT NULL DEFAULT '' COMMENT '注釋',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),UNIQUE KEY `UK_AppId_Name_DeletedAt` (`AppId`,`Name`,`DeletedAt`),KEY `Name_AppId` (`Name`,`AppId`),KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='應用namespace定義';-- Dump of table consumer
-- ------------------------------------------------------------DROP TABLE IF EXISTS `Consumer`;CREATE TABLE `Consumer` (`Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',`AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID',`Name` varchar(500) NOT NULL DEFAULT 'default' COMMENT '應用名',`OrgId` varchar(32) NOT NULL DEFAULT 'default' COMMENT '部門Id',`OrgName` varchar(64) NOT NULL DEFAULT 'default' COMMENT '部門名字',`OwnerName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerName',`OwnerEmail` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerEmail',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),UNIQUE KEY `UK_AppId_DeletedAt` (`AppId`,`DeletedAt`),KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='開放API消費者';-- Dump of table consumeraudit
-- ------------------------------------------------------------DROP TABLE IF EXISTS `ConsumerAudit`;CREATE TABLE `ConsumerAudit` (`Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',`ConsumerId` int(11) unsigned DEFAULT NULL COMMENT 'Consumer Id',`Uri` varchar(1024) NOT NULL DEFAULT '' COMMENT '訪問的Uri',`Method` varchar(16) NOT NULL DEFAULT '' COMMENT '訪問的Method',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),KEY `IX_DataChange_LastTime` (`DataChange_LastTime`),KEY `IX_ConsumerId` (`ConsumerId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='consumer審計表';-- Dump of table consumerrole
-- ------------------------------------------------------------DROP TABLE IF EXISTS `ConsumerRole`;CREATE TABLE `ConsumerRole` (`Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',`ConsumerId` int(11) unsigned DEFAULT NULL COMMENT 'Consumer Id',`RoleId` int(10) unsigned DEFAULT NULL COMMENT 'Role Id',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),UNIQUE KEY `UK_ConsumerId_RoleId_DeletedAt` (`ConsumerId`,`RoleId`,`DeletedAt`),KEY `IX_DataChange_LastTime` (`DataChange_LastTime`),KEY `IX_RoleId` (`RoleId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='consumer和role的綁定表';-- Dump of table consumertoken
-- ------------------------------------------------------------DROP TABLE IF EXISTS `ConsumerToken`;CREATE TABLE `ConsumerToken` (`Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',`ConsumerId` int(11) unsigned DEFAULT NULL COMMENT 'ConsumerId',`Token` varchar(128) NOT NULL DEFAULT '' COMMENT 'token',`RateLimit` int NOT NULL DEFAULT '0' COMMENT '限流值',`Expires` datetime NOT NULL DEFAULT '2099-01-01 00:00:00' COMMENT 'token失效時間',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),UNIQUE KEY `UK_Token_DeletedAt` (`Token`,`DeletedAt`),KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='consumer token表';-- Dump of table favorite
-- ------------------------------------------------------------DROP TABLE IF EXISTS `Favorite`;CREATE TABLE `Favorite` (`Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵',`UserId` varchar(32) NOT NULL DEFAULT 'default' COMMENT '收藏的用戶',`AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID',`Position` int(32) NOT NULL DEFAULT '10000' COMMENT '收藏順序',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),UNIQUE KEY `UK_UserId_AppId_DeletedAt` (`UserId`,`AppId`,`DeletedAt`),KEY `AppId` (`AppId`),KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8mb4 COMMENT='應用收藏表';-- Dump of table permission
-- ------------------------------------------------------------DROP TABLE IF EXISTS `Permission`;CREATE TABLE `Permission` (`Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',`PermissionType` varchar(32) NOT NULL DEFAULT '' COMMENT '權限類型',`TargetId` varchar(256) NOT NULL DEFAULT '' COMMENT '權限對象類型',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),UNIQUE KEY `UK_TargetId_PermissionType_DeletedAt` (`TargetId`,`PermissionType`,`DeletedAt`),KEY `IX_DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='permission表';-- Dump of table role
-- ------------------------------------------------------------DROP TABLE IF EXISTS `Role`;CREATE TABLE `Role` (`Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',`RoleName` varchar(256) NOT NULL DEFAULT '' COMMENT 'Role name',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),UNIQUE KEY `UK_RoleName_DeletedAt` (`RoleName`,`DeletedAt`),KEY `IX_DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色表';-- Dump of table rolepermission
-- ------------------------------------------------------------DROP TABLE IF EXISTS `RolePermission`;CREATE TABLE `RolePermission` (`Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',`RoleId` int(10) unsigned DEFAULT NULL COMMENT 'Role Id',`PermissionId` int(10) unsigned DEFAULT NULL COMMENT 'Permission Id',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),UNIQUE KEY `UK_RoleId_PermissionId_DeletedAt` (`RoleId`,`PermissionId`,`DeletedAt`),KEY `IX_DataChange_LastTime` (`DataChange_LastTime`),KEY `IX_PermissionId` (`PermissionId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色和權限的綁定表';-- Dump of table serverconfig
-- ------------------------------------------------------------DROP TABLE IF EXISTS `ServerConfig`;CREATE TABLE `ServerConfig` (`Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',`Key` varchar(64) NOT NULL DEFAULT 'default' COMMENT '配置項Key',`Value` varchar(2048) NOT NULL DEFAULT 'default' COMMENT '配置項值',`Comment` varchar(1024) DEFAULT '' COMMENT '注釋',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),UNIQUE KEY `UK_Key_DeletedAt` (`Key`,`DeletedAt`),KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='配置服務自身配置';-- Dump of table userrole
-- ------------------------------------------------------------DROP TABLE IF EXISTS `UserRole`;CREATE TABLE `UserRole` (`Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',`UserId` varchar(128) DEFAULT '' COMMENT '用戶身份標識',`RoleId` int(10) unsigned DEFAULT NULL COMMENT 'Role Id',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) NOT NULL DEFAULT 'default' COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),UNIQUE KEY `UK_UserId_RoleId_DeletedAt` (`UserId`,`RoleId`,`DeletedAt`),KEY `IX_DataChange_LastTime` (`DataChange_LastTime`),KEY `IX_RoleId` (`RoleId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用戶和role的綁定表';-- Dump of table Users
-- ------------------------------------------------------------DROP TABLE IF EXISTS `Users`;CREATE TABLE `Users` (`Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',`Username` varchar(64) NOT NULL DEFAULT 'default' COMMENT '用戶登錄賬戶',`Password` varchar(512) NOT NULL DEFAULT 'default' COMMENT '密碼',`UserDisplayName` varchar(512) NOT NULL DEFAULT 'default' COMMENT '用戶名稱',`Email` varchar(64) NOT NULL DEFAULT 'default' COMMENT '郵箱地址',`Enabled` tinyint(4) DEFAULT NULL COMMENT '是否有效',PRIMARY KEY (`Id`),UNIQUE KEY `UK_Username` (`Username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用戶表';-- Dump of table Authorities
-- ------------------------------------------------------------DROP TABLE IF EXISTS `Authorities`;CREATE TABLE `Authorities` (`Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',`Username` varchar(64) NOT NULL,`Authority` varchar(50) NOT NULL,PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;-- spring session (https://github.com/spring-projects/spring-session/blob/faee8f1bdb8822a5653a81eba838dddf224d92d6/spring-session-jdbc/src/main/resources/org/springframework/session/jdbc/schema-mysql.sql)
-- Dump of table SPRING_SESSION
-- ------------------------------------------------------------DROP TABLE IF EXISTS `SPRING_SESSION`;CREATE TABLE `SPRING_SESSION` (`PRIMARY_ID` char(36) NOT NULL,`SESSION_ID` char(36) NOT NULL,`CREATION_TIME` bigint NOT NULL,`LAST_ACCESS_TIME` bigint NOT NULL,`MAX_INACTIVE_INTERVAL` int NOT NULL,`EXPIRY_TIME` bigint NOT NULL,`PRINCIPAL_NAME` varchar(100) DEFAULT NULL,PRIMARY KEY (`PRIMARY_ID`),UNIQUE KEY `SPRING_SESSION_IX1` (`SESSION_ID`),KEY `SPRING_SESSION_IX2` (`EXPIRY_TIME`),KEY `SPRING_SESSION_IX3` (`PRINCIPAL_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;-- Dump of table SPRING_SESSION_ATTRIBUTES
-- ------------------------------------------------------------DROP TABLE IF EXISTS `SPRING_SESSION_ATTRIBUTES`;CREATE TABLE `SPRING_SESSION_ATTRIBUTES` (`SESSION_PRIMARY_ID` char(36) NOT NULL,`ATTRIBUTE_NAME` varchar(200) NOT NULL,`ATTRIBUTE_BYTES` blob NOT NULL,PRIMARY KEY (`SESSION_PRIMARY_ID`,`ATTRIBUTE_NAME`),CONSTRAINT `SPRING_SESSION_ATTRIBUTES_FK` FOREIGN KEY (`SESSION_PRIMARY_ID`) REFERENCES `SPRING_SESSION` (`PRIMARY_ID`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;-- Dump of table AuditLog
-- ------------------------------------------------------------DROP TABLE IF EXISTS `AuditLog`;CREATE TABLE `AuditLog` (`Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵',`TraceId` varchar(32) NOT NULL DEFAULT '' COMMENT '鏈路全局唯一ID',`SpanId` varchar(32) NOT NULL DEFAULT '' COMMENT '跨度ID',`ParentSpanId` varchar(32) DEFAULT NULL COMMENT '父跨度ID',`FollowsFromSpanId` varchar(32) DEFAULT NULL COMMENT '上一個兄弟跨度ID',`Operator` varchar(64) NOT NULL DEFAULT 'anonymous' COMMENT '操作人',`OpType` varchar(50) NOT NULL DEFAULT 'default' COMMENT '操作類型',`OpName` varchar(150) NOT NULL DEFAULT 'default' COMMENT '操作名稱',`Description` varchar(200) DEFAULT NULL COMMENT '備注',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) DEFAULT NULL COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),KEY `IX_TraceId` (`TraceId`),KEY `IX_OpName` (`OpName`),KEY `IX_DataChange_CreatedTime` (`DataChange_CreatedTime`),KEY `IX_Operator` (`Operator`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='審計日志表';-- Dump of table AuditLogDataInfluence
-- ------------------------------------------------------------DROP TABLE IF EXISTS `AuditLogDataInfluence`;CREATE TABLE `AuditLogDataInfluence` (`Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵',`SpanId` char(32) NOT NULL DEFAULT '' COMMENT '跨度ID',`InfluenceEntityId` varchar(50) NOT NULL DEFAULT '0' COMMENT '記錄ID',`InfluenceEntityName` varchar(50) NOT NULL DEFAULT 'default' COMMENT '表名',`FieldName` varchar(50) DEFAULT NULL COMMENT '字段名稱',`FieldOldValue` varchar(500) DEFAULT NULL COMMENT '字段舊值',`FieldNewValue` varchar(500) DEFAULT NULL COMMENT '字段新值',`IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',`DeletedAt` BIGINT(20) NOT NULL DEFAULT '0' COMMENT 'Delete timestamp based on milliseconds',`DataChange_CreatedBy` varchar(64) DEFAULT NULL COMMENT '創建人郵箱前綴',`DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`DataChange_LastModifiedBy` varchar(64) DEFAULT '' COMMENT '最后修改人郵箱前綴',`DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改時間',PRIMARY KEY (`Id`),KEY `IX_SpanId` (`SpanId`),KEY `IX_DataChange_CreatedTime` (`DataChange_CreatedTime`),KEY `IX_EntityId` (`InfluenceEntityId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='審計日志數據變動表';-- Config
-- ------------------------------------------------------------
INSERT INTO `ServerConfig` (`Key`, `Value`, `Comment`)
VALUES('apollo.portal.envs', 'dev', '可支持的環境列表'),('organizations', '[{"orgId":"TEST1","orgName":"樣例部門1"},{"orgId":"TEST2","orgName":"樣例部門2"}]', '部門列表'),('superAdmin', 'apollo', 'Portal超級管理員'),('api.readTimeout', '10000', 'http接口read timeout'),('consumer.token.salt', 'someSalt', 'consumer token salt'),('admin.createPrivateNamespace.switch', 'true', '是否允許項目管理員創建私有namespace'),('configView.memberOnly.envs', 'pro', '只對項目成員顯示配置信息的環境列表,多個env以英文逗號分隔'),('apollo.portal.meta.servers', '{}', '各環境Meta Service列表');INSERT INTO `Users` (`Username`, `Password`, `UserDisplayName`, `Email`, `Enabled`)
VALUES('apollo', '$2a$10$7r20uS.BQ9uBpf3Baj3uQOZvMVvB1RN3PYoKE94gtz2.WAOuiiwXS', 'apollo', 'apollo@acme.com', 1);INSERT INTO `Authorities` (`Username`, `Authority`) VALUES ('apollo', 'ROLE_user');-- ${gists.autoGeneratedDeclaration}/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
seata.sql
/*Navicat Premium Data TransferSource Server : win_docker_mysqlSource Server Type : MySQLSource Server Version : 80021Source Host : localhost:3306Source Schema : seataTarget Server Type : MySQLTarget Server Version : 80021File Encoding : 65001Date: 11/07/2025 09:41:34
*/CREATE DATABASE IF NOT EXISTS seata CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- the table to store GlobalSession data
CREATE TABLE IF NOT EXISTS `global_table`
(`xid` VARCHAR(128) NOT NULL,`transaction_id` BIGINT,`status` TINYINT NOT NULL,`application_id` VARCHAR(32),`transaction_service_group` VARCHAR(32),`transaction_name` VARCHAR(128),`timeout` INT,`begin_time` BIGINT,`application_data` VARCHAR(2000),`gmt_create` DATETIME,`gmt_modified` DATETIME,PRIMARY KEY (`xid`),KEY `idx_status_gmt_modified` (`status` , `gmt_modified`),KEY `idx_transaction_id` (`transaction_id`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4;-- the table to store BranchSession data
CREATE TABLE IF NOT EXISTS `branch_table`
(`branch_id` BIGINT NOT NULL,`xid` VARCHAR(128) NOT NULL,`transaction_id` BIGINT,`resource_group_id` VARCHAR(32),`resource_id` VARCHAR(256),`branch_type` VARCHAR(8),`status` TINYINT,`client_id` VARCHAR(64),`application_data` VARCHAR(2000),`gmt_create` DATETIME(6),`gmt_modified` DATETIME(6),PRIMARY KEY (`branch_id`),KEY `idx_xid` (`xid`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4;-- the table to store lock data
CREATE TABLE IF NOT EXISTS `lock_table`
(`row_key` VARCHAR(128) NOT NULL,`xid` VARCHAR(128),`transaction_id` BIGINT,`branch_id` BIGINT NOT NULL,`resource_id` VARCHAR(256),`table_name` VARCHAR(32),`pk` VARCHAR(36),`status` TINYINT NOT NULL DEFAULT '0' COMMENT '0:locked ,1:rollbacking',`gmt_create` DATETIME,`gmt_modified` DATETIME,PRIMARY KEY (`row_key`),KEY `idx_status` (`status`),KEY `idx_branch_id` (`branch_id`),KEY `idx_xid` (`xid`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4;CREATE TABLE IF NOT EXISTS `distributed_lock`
(`lock_key` CHAR(20) NOT NULL,`lock_value` VARCHAR(20) NOT NULL,`expire` BIGINT,primary key (`lock_key`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4;INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('AsyncCommitting', ' ', 0);
INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('RetryCommitting', ' ', 0);
INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('RetryRollbacking', ' ', 0);
INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('TxTimeoutCheck', ' ', 0);SET FOREIGN_KEY_CHECKS = 1;
2.應用中間件
創建docker-middleware文件夾
docker-compose.yml
version: '3.8'services:############################################# 配置中心 & 服務發現############################################# Nacosnacos:image: nacos/nacos-server:v2.3.0container_name: nacoshealthcheck: # 添加健康檢查test: ["CMD", "curl", "-f", "http://localhost:8848/nacos/"]interval: 5stimeout: 5sretries: 20start_period: 30senvironment:- PREFER_HOST_MODE=hostname- MODE=standalone- SPRING_DATASOURCE_PLATFORM=mysql- MYSQL_SERVICE_HOST=mysql- MYSQL_SERVICE_PORT=3306- MYSQL_SERVICE_USER=nacos- MYSQL_SERVICE_PASSWORD=jy123456 - MYSQL_SERVICE_DB_NAME=nacos- MYSQL_SERVICE_DB_PARAM=allowPublicKeyRetrieval=true&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&useSSL=falseports:- "8848:8848"- "9848:9848"- "9849:9849"networks:- my-networkrestart: unless-stoppedvolumes:- ./nacos/logs:/home/nacos/logs - ./custom.properties:/home/nacos/init.d/custom.properties # Apollo ConfigServiceapollo-configservice:image: apolloconfig/apollo-configservice:2.1.0container_name: apollo-configserviceprivileged: trueenvironment:SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/apolloconfigdb?useSSL=falseSPRING_DATASOURCE_USERNAME: rootSPRING_DATASOURCE_PASSWORD: jy123456volumes:- ./apollo/config/logs:/opt/logs ports:- "8080:8080"networks:- my-network# Apollo AdminServiceapollo-adminservice:image: apolloconfig/apollo-adminservice:2.1.0container_name: apollo-adminserviceprivileged: trueenvironment:SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/apolloconfigdb?useSSL=falseSPRING_DATASOURCE_USERNAME: rootSPRING_DATASOURCE_PASSWORD: jy123456volumes:- ./apollo/admin/logs:/opt/logs ports:- "8090:8090"networks:- my-network# Apollo Portalapollo-portal:image: apolloconfig/apollo-portal:2.1.0container_name: apollo-portalprivileged: truedepends_on:apollo-configservice:condition: service_startedapollo-adminservice:condition: service_startedenvironment:SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/apolloportaldb?useSSL=falseSPRING_DATASOURCE_USERNAME: rootSPRING_DATASOURCE_PASSWORD: jy123456volumes:- ./apollo/portal/logs:/opt/logs ports:- "8070:8070"networks:- my-network############################################# 消息隊列############################################# ZooKeeper (Kafka 依賴)zookeeper:image: zookeeper:3.8container_name: zookeeperrestart: alwaysports:- "2181:2181"networks:- my-network# Kafkakafka:image: confluentinc/cp-kafka:7.3.0container_name: kafkadepends_on:zookeeper:condition: service_startedenvironment:KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXTKAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1ports:- "9092:9092"networks:- my-network# RocketMQ NameServer服務namesrv:image: apache/rocketmq:4.9.4container_name: rmqnamesrvports:- "9876:9876"volumes:- ./rocketMQ/namesrv/logs:/home/rocketmq/logs- ./rocketMQ/namesrv/store:/home/rocketmq/storecommand: sh mqnamesrvrestart: alwaysnetworks:- my-network# RocketMQ Broker服務broker:image: apache/rocketmq:4.9.4container_name: rmqbrokerports:- "10909:10909"- "10911:10911"- "10912:10912"volumes:- ./rocketMQ/broker/logs:/home/rocketmq/logs- ./rocketMQ/broker/store:/home/rocketmq/store- ./broker.conf:/opt/rocketmq-4.9.4/conf/broker.confcommand: sh mqbroker -c /opt/rocketmq-4.9.4/conf/broker.conf -n namesrv:9876depends_on:- namesrvrestart: alwaysnetworks:- my-network############################################# 分布式事務############################################# Seata Serverseata:image: seataio/seata-server:1.8.0container_name: seata-serverdepends_on:nacos:condition: service_healthyenvironment:SEATA_IP: seata-serverSTORE_MODE: dbDB_TYPE: mysqlREGISTRY_TYPE: nacosCONFIG_TYPE: nacosNACOS_SERVER_ADDR: nacos:8848NACOS_NAMESPACE: publicNACOS_GROUP: SEATA_GROUPNACOS_USERNAME: "nacos"NACOS_PASSWORD: "nacos"DB_HOST: mysqlDB_PORT: 3306DB_USER: rootDB_PASSWORD: jy123456volumes:- ./registry.conf:/seata-server/resources/registry.conf- ./seata-server/logs:/root/logs/seataports:- "8091:8091"networks:- my-networknetworks:my-network:external: truename: global-network
broker.conf
# Broker配置
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH# 綁定Broker IP地址
brokerIP1 = broker# 存儲路徑配置
storePathRootDir = /home/rocketmq/store
storePathCommitLog = /home/rocketmq/store/commitlog
storePathConsumeQueue = /home/rocketmq/store/consumequeue
storePathIndex = /home/rocketmq/store/index
storeCheckpoint = /home/rocketmq/store/checkpoint
abortFile = /home/rocketmq/store/abort# 日志配置
traceTopicEnable = true
custom.properties
server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://mysql:3306/nacos?allowPublicKeyRetrieval=true&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000
db.user=root
db.password=jy@123456nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i
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.taskDispatchThreadCount=1
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true
nacos.naming.expireInstance=true
registry.conf
registry {type = "nacos"nacos {application = "seata-server"serverAddr = "nacos:8848"group = "SEATA_GROUP"namespace = "public"cluster = "default"username = ""password = ""}
}config {type = "nacos"nacos {serverAddr = "nacos:8848"namespace = "public"group = "SEATA_GROUP"username = ""password = ""dataId = "seataServer.properties"}
}
?seataServer.properties(配置在nacos)
group=SEATA_GROUP
namespace = public
service.vgroup_mapping.my_test_tx_group=default
service.default.grouplist=seata-server:8091
service.enableDegrade=false
service.disableGlobalTransaction=falsestore.mode=db
#-----db-----
store.db.datasource=druid
store.db.dbType=mysql
# 需要根據mysql的版本調整driverClassName
# mysql8及以上版本對應的driver:com.mysql.cj.jdbc.Driver
# mysql8以下版本的driver:com.mysql.jdbc.Driver
store.db.driverClassName=com.mysql.cj.jdbc.Driver
store.db.url=jdbc:mysql://mysql:3306/seata?useUnicode=true&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false
store.db.user= root
store.db.password=jy123456
# 數據庫初始連接數
store.db.minConn=1
# 數據庫最大連接數
store.db.maxConn=20
# 獲取連接時最大等待時間 默認5000,單位毫秒
store.db.maxWait=5000
# 全局事務表名 默認global_table
store.db.globalTable=global_table
# 分支事務表名 默認branch_table
store.db.branchTable=branch_table
# 全局鎖表名 默認lock_table
store.db.lockTable=lock_table
# 查詢全局事務一次的最大條數 默認100
store.db.queryLimit=100# undo保留天數 默認7天,log_status=1(附錄3)和未正常清理的undo
server.undo.logSaveDays=7
# undo清理線程間隔時間 默認86400000,單位毫秒
server.undo.logDeletePeriod=86400000
# 二階段提交重試超時時長 單位ms,s,m,h,d,對應毫秒,秒,分,小時,天,默認毫秒。默認值-1表示無限重試
# 公式: timeout>=now-globalTransactionBeginTime,true表示超時則不再重試
# 注: 達到超時時間后將不會做任何重試,有數據不一致風險,除非業務自行可校準數據,否者慎用
server.maxCommitRetryTimeout=-1
# 二階段回滾重試超時時長
server.maxRollbackRetryTimeout=-1
# 二階段提交未完成狀態全局事務重試提交線程間隔時間 默認1000,單位毫秒
server.recovery.committingRetryPeriod=1000
# 二階段異步提交狀態重試提交線程間隔時間 默認1000,單位毫秒
server.recovery.asynCommittingRetryPeriod=1000
# 二階段回滾狀態重試回滾線程間隔時間 默認1000,單位毫秒
server.recovery.rollbackingRetryPeriod=1000
# 超時狀態檢測重試線程間隔時間 默認1000,單位毫秒,檢測出超時將全局事務置入回滾會話管理器
server.recovery.timeoutRetryPeriod=1000
3.運維中間件
創建docker-monitor文件夾
docker-compose.yml
version: '3.3'services:prometheus:image: prom/prometheus:v2.37.6container_name: prometheusrestart: alwaysvolumes:- /etc/localtime:/etc/localtime:ro- ./prometheus/:/etc/prometheus/- ./prometheus/prometheus_data:/prometheus- ./prometheus.yml:/etc/prometheus/prometheus.ymlcommand:- '--config.file=/etc/prometheus/prometheus.yml'- '--storage.tsdb.path=/prometheus'- '--web.console.libraries=/usr/share/prometheus/console_libraries'- '--web.console.templates=/usr/share/prometheus/consoles'#熱加載配置- '--web.enable-lifecycle'#api配置#- '--web.enable-admin-api'#歷史數據最大保留時間,默認15天- '--storage.tsdb.retention.time=30d' networks:- my-networklinks:- alertmanager- cadvisor- node_exporterexpose:- '9090'ports:- 9090:9090depends_on:- cadvisoralertmanager:image: prom/alertmanager:v0.25.0container_name: alertmanagerrestart: alwaysvolumes:- /etc/localtime:/etc/localtime:ro- ./alertmanager/:/etc/alertmanager/- ./alertmanager-config.yml:/etc/alertmanager/config.ymlcommand:- '--config.file=/etc/alertmanager/config.yml'- '--storage.path=/alertmanager'networks:- my-networkexpose:- '9093'ports:- 9093:9093cadvisor:#image: google/cadvisor:latest #作者初始配置但是在dockerDesktop上用不了,可能在linux部署的docker上可以用image: lagoudocker/cadvisor:v0.37.0 container_name: cadvisorrestart: alwaysvolumes:- /etc/localtime:/etc/localtime:ro- /:/rootfs:ro- /var/run:/var/run:rw- /sys:/sys:ro- /var/lib/docker/:/var/lib/docker:ronetworks:- my-networkexpose:- '8080'node_exporter:image: prom/node-exporter:v1.5.0container_name: node-exporterrestart: alwaysvolumes:- /etc/localtime:/etc/localtime:ro- /proc:/host/proc:ro- /sys:/host/sys:ro- /:/rootfs:rocommand: - '--path.procfs=/host/proc' - '--path.sysfs=/host/sys'- '--collector.filesystem.ignored-mount-points=^/(sys|proc|dev|host|etc|rootfs/var/lib/docker)($$|/)'networks:- my-networkports:- '9100:9100'grafana:image: grafana/grafana:9.4.3container_name: grafanarestart: alwaysvolumes:- /etc/localtime:/etc/localtime:ro- ./grafana/grafana_data:/var/lib/grafana- ./grafana/provisioning/:/etc/grafana/provisioning/env_file:- ./config.monitoringnetworks:- my-networklinks:- prometheusports:- 3000:3000depends_on:- prometheus############################################# 監控 & 追蹤############################################# Sentinel Dashboardsentinel:image: bladex/sentinel-dashboard:1.8.6container_name: sentinelports:- "8858:8858"environment:SENTINEL_DASHBOARD_USERNAME: sentinelSENTINEL_DASHBOARD_PASSWORD: jy123456lnetworks:- my-network# SkyWalking OAP Serverskywalking-oap:image: apache/skywalking-oap-server:9.5.0container_name: skywalking-oapprivileged: trueenvironment:SW_STORAGE: elasticsearchSW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200SW_ES_HTTP_TIMEOUT: 30000SW_ES_HTTP_CONNECTION_REQUEST_TIMEOUT: 30000SW_STORAGE_ES_VERSION: 7JAVA_OPTS: "-Xmx2g -Xms2g"ports:- "12800:12800"- "11800:11800"networks:- my-network# SkyWalking UIskywalking-ui:image: apache/skywalking-ui:9.5.0container_name: skywalking-uiprivileged: truedepends_on:skywalking-oap:condition: service_startedenvironment:SW_OAP_ADDRESS: http://skywalking-oap:12800 #一定要加http://特別坑ports:- "18080:8080"networks:- my-networkvolumes:prometheus_data: {}grafana_data: {}networks:my-network:external: truename: global-network
prometheus.yml
# 全局配置
global:scrape_interval: 15s # 將搜刮間隔設置為每15秒一次。默認是每1分鐘一次。evaluation_interval: 15s # 每15秒評估一次規則。默認是每1分鐘一次。# Alertmanager 配置
alerting:alertmanagers:- static_configs:- targets: ['alertmanager:9093']# 報警(觸發器)配置
rule_files:- "alert.yml"# 搜刮配置
scrape_configs:- job_name: 'prometheus'# 覆蓋全局默認值,每15秒從該作業中刮取一次目標scrape_interval: 15sstatic_configs:- targets: ['localhost:9090']- job_name: 'alertmanager'scrape_interval: 15sstatic_configs:- targets: ['alertmanager:9093']- job_name: 'cadvisor'scrape_interval: 15sstatic_configs:- targets: ['cadvisor:8080']labels:instance: Prometheus服務器 - job_name: 'node-exporter'scrape_interval: 15sstatic_configs:- targets: ['node_exporter:9100']labels:instance: Prometheus服務器
alertmanager-config.yml
global:#163服務器smtp_smarthost: 'smtp.163.com:465'#發郵件的郵箱smtp_from: 'cdring@163.com'#發郵件的郵箱用戶名,也就是你的郵箱 smtp_auth_username: 'cdring@163.com'#發郵件的郵箱密碼smtp_auth_password: 'your-password'#進行tls驗證smtp_require_tls: falseroute:group_by: ['alertname']# 當收到告警的時候,等待group_wait配置的時間,看是否還有告警,如果有就一起發出去group_wait: 10s# 如果上次告警信息發送成功,此時又來了一個新的告警數據,則需要等待group_interval配置的時間才可以發送出去group_interval: 10s# 如果上次告警信息發送成功,且問題沒有解決,則等待 repeat_interval配置的時間再次發送告警數據repeat_interval: 10m# 全局報警組,這個參數是必選的receiver: emailreceivers:
- name: 'email'#收郵件的郵箱email_configs:- to: 'cdring@163.com'
inhibit_rules:- source_match:severity: 'critical'target_match:severity: 'warning'equal: ['alertname', 'dev', 'instance']
alert.yml
groups:
- name: Prometheus alertrules:# 對任何實例超過30秒無法聯系的情況發出警報- alert: 服務告警expr: up == 0for: 30slabels:severity: criticalannotations:summary: "服務異常,實例:{{ $labels.instance }}"description: "{{ $labels.job }} 服務已關閉"
config.monitoring
GF_SECURITY_ADMIN_PASSWORD=jy123456
GF_USERS_ALLOW_SIGN_UP=false