# Docker 部署 Apollo
# docker-compose.yml
version: '3.8' | |
services: | |
mysql: | |
image: mysql:8.0 | |
environment: | |
MYSQL_ROOT_PASSWORD: root | |
volumes: | |
- mysql:/var/lib/mysql | |
- ./mysql:/docker-entrypoint-initdb.d | |
mysql-admin: | |
image: phpmyadmin | |
ports: | |
- "23306:80" | |
environment: | |
PMA_HOST: mysql | |
PMA_USER: root | |
PMA_PASSWORD: root | |
apollo-configservice: | |
image: apolloconfig/apollo-configservice:1.9.2 | |
ports: | |
- "18080:8080" | |
environment: | |
SPRING_DATASOURCE_URL: "jdbc:mysql://mysql:3306/ApolloConfigDB?characterEncoding=utf8" | |
SPRING_DATASOURCE_USERNAME: root | |
SPRING_DATASOURCE_PASSWORD: root | |
apollo-adminservice: | |
image: apolloconfig/apollo-adminservice:1.9.2 | |
ports: | |
- "18090:8090" | |
environment: | |
SPRING_DATASOURCE_URL: "jdbc:mysql://mysql:3306/ApolloConfigDB?characterEncoding=utf8" | |
SPRING_DATASOURCE_USERNAME: root | |
SPRING_DATASOURCE_PASSWORD: root | |
apollo-portal: | |
image: apolloconfig/apollo-portal:1.9.2 | |
ports: | |
- "18070:8070" | |
environment: | |
SPRING_DATASOURCE_URL: "jdbc:mysql://mysql:3306/ApolloPortalDB?characterEncoding=utf8" | |
SPRING_DATASOURCE_USERNAME: root | |
SPRING_DATASOURCE_PASSWORD: root | |
APOLLO_PORTAL_ENVS: dev | |
DEV_META: http://apollo-configservice:8080 | |
volumes: | |
mysql: {} |
# mysql/apolloconfigdb.sql
- 注意将此处,修改成本地 ip
('eureka.service.url', 'default', 'http://192.168.0.105:18080/eureka/', 'Eureka 服务 Url,多个 service 以英文逗号分隔 '),
-- | |
-- Copyright 2023 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 */; | |
# Create Database | |
# ------------------------------------------------------------ | |
CREATE DATABASE IF NOT EXISTS ApolloConfigDB DEFAULT CHARACTER SET = utf8mb4; | |
Use ApolloConfigDB; | |
# 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', | |
`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(500) NOT NULL DEFAULT 'default' COMMENT 'ClusterName', | |
`NamespaceName` varchar(500) 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`(191)), | |
KEY `NamespaceName` (`NamespaceName`(191)) | |
) 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(500) NOT NULL DEFAULT 'default' COMMENT 'Cluster Name', | |
`NamespaceName` varchar(500) 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`(191),`NamespaceName`(191),`DeletedAt`), | |
KEY `DataChange_LastTime` (`DataChange_LastTime`), | |
KEY `IX_NamespaceName` (`NamespaceName`(191)) | |
) 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(500) NOT NULL DEFAULT 'default' COMMENT 'ClusterName', | |
`NamespaceName` varchar(500) 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`(191),`NamespaceName`(191)), | |
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', | |
`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='注册中心'; | |
# Config | |
# ------------------------------------------------------------ | |
INSERT INTO `ServerConfig` (`Key`, `Cluster`, `Value`, `Comment`) | |
VALUES | |
('eureka.service.url', 'default', 'http://192.168.0.105:18080/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是否开启缓存,开启后能提高性能,但是会增大内存消耗!'); | |
# Sample Data | |
# ------------------------------------------------------------ | |
INSERT INTO `App` (`AppId`, `Name`, `OrgId`, `OrgName`, `OwnerName`, `OwnerEmail`) | |
VALUES | |
('SampleApp', 'Sample App', 'TEST1', '样例部门1', 'apollo', 'apollo@acme.com'); | |
INSERT INTO `AppNamespace` (`Name`, `AppId`, `Format`, `IsPublic`, `Comment`) | |
VALUES | |
('application', 'SampleApp', 'properties', 0, 'default app namespace'); | |
INSERT INTO `Cluster` (`Name`, `AppId`) | |
VALUES | |
('default', 'SampleApp'); | |
INSERT INTO `Namespace` (`Id`, `AppId`, `ClusterName`, `NamespaceName`) | |
VALUES | |
(1, 'SampleApp', 'default', 'application'); | |
INSERT INTO `Item` (`NamespaceId`, `Key`, `Value`, `Comment`, `LineNum`) | |
VALUES | |
(1, 'timeout', '100', 'sample timeout配置', 1); | |
INSERT INTO `Release` (`ReleaseKey`, `Name`, `Comment`, `AppId`, `ClusterName`, `NamespaceName`, `Configurations`) | |
VALUES | |
('20161009155425-d3a0749c6e20bc15', '20161009155424-release', 'Sample发布', 'SampleApp', 'default', 'application', '{\"timeout\":\"100\"}'); | |
INSERT INTO `ReleaseHistory` (`AppId`, `ClusterName`, `NamespaceName`, `BranchName`, `ReleaseId`, `PreviousReleaseId`, `Operation`, `OperationContext`, `DataChange_CreatedBy`, `DataChange_LastModifiedBy`) | |
VALUES | |
('SampleApp', 'default', 'application', 'default', 1, 0, 0, '{}', 'apollo', 'apollo'); | |
INSERT INTO `ReleaseMessage` (`Message`) | |
VALUES | |
('SampleApp+default+application'); | |
/*!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 */; |
# mysql/apolloportaldb.sql
-- | |
-- Copyright 2023 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 */; | |
# Create Database | |
# ------------------------------------------------------------ | |
CREATE DATABASE IF NOT EXISTS ApolloPortalDB DEFAULT CHARACTER SET = utf8mb4; | |
Use ApolloPortalDB; | |
# 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', | |
`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; | |
# 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', 'dev', '只对项目成员显示配置信息的环境列表,多个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'); | |
-- spring session (https://github.com/spring-projects/spring-session/blob/faee8f1bdb8822a5653a81eba838dddf224d92d6/spring-session-jdbc/src/main/resources/org/springframework/session/jdbc/schema-mysql.sql) | |
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), | |
CONSTRAINT SPRING_SESSION_PK PRIMARY KEY (PRIMARY_ID) | |
) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; | |
CREATE UNIQUE INDEX SPRING_SESSION_IX1 ON SPRING_SESSION (SESSION_ID); | |
CREATE INDEX SPRING_SESSION_IX2 ON SPRING_SESSION (EXPIRY_TIME); | |
CREATE INDEX SPRING_SESSION_IX3 ON SPRING_SESSION (PRINCIPAL_NAME); | |
CREATE TABLE SPRING_SESSION_ATTRIBUTES ( | |
SESSION_PRIMARY_ID CHAR(36) NOT NULL, | |
ATTRIBUTE_NAME VARCHAR(200) NOT NULL, | |
ATTRIBUTE_BYTES BLOB NOT NULL, | |
CONSTRAINT SPRING_SESSION_ATTRIBUTES_PK 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 ROW_FORMAT=DYNAMIC; | |
# Sample Data | |
# ------------------------------------------------------------ | |
INSERT INTO `App` (`AppId`, `Name`, `OrgId`, `OrgName`, `OwnerName`, `OwnerEmail`) | |
VALUES | |
('SampleApp', 'Sample App', 'TEST1', '样例部门1', 'apollo', 'apollo@acme.com'); | |
INSERT INTO `AppNamespace` (`Name`, `AppId`, `Format`, `IsPublic`, `Comment`) | |
VALUES | |
('application', 'SampleApp', 'properties', 0, 'default app namespace'); | |
INSERT INTO `Permission` (`Id`, `PermissionType`, `TargetId`) | |
VALUES | |
(1, 'CreateCluster', 'SampleApp'), | |
(2, 'CreateNamespace', 'SampleApp'), | |
(3, 'AssignRole', 'SampleApp'), | |
(4, 'ModifyNamespace', 'SampleApp+application'), | |
(5, 'ReleaseNamespace', 'SampleApp+application'); | |
INSERT INTO `Role` (`Id`, `RoleName`) | |
VALUES | |
(1, 'Master+SampleApp'), | |
(2, 'ModifyNamespace+SampleApp+application'), | |
(3, 'ReleaseNamespace+SampleApp+application'); | |
INSERT INTO `RolePermission` (`RoleId`, `PermissionId`) | |
VALUES | |
(1, 1), | |
(1, 2), | |
(1, 3), | |
(2, 4), | |
(3, 5); | |
INSERT INTO `UserRole` (`UserId`, `RoleId`) | |
VALUES | |
('apollo', 1), | |
('apollo', 2), | |
('apollo', 3); | |
/*!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 */; |
部署好后如图所示
访问 http://localhost:18070
进入面板
默认用户名 apollo
密码 admin
# 面板操作
官方文档:
https://www.apolloconfig.com/#/zh/usage/apollo-user-guide
会点鼠标即可
# Go Apollo 客户端连接
go get -u github.com/apolloconfig/agollo/v4@latest |
# 客户端初始化
func main() { | |
c := &config.AppConfig{ | |
AppID: "1234567", | |
Cluster: "dev", | |
IP: "http://localhost:18080",// 如果参考以上部署方式,不用修改 | |
NamespaceName: "TEST1.abc", | |
IsBackupConfig: true, | |
Secret: "70f716e7cc5044b4894829a8db612f08", | |
} | |
client, err := agollo.StartWithConfig(func() (*config.AppConfig, error) { | |
return c, nil | |
}) | |
if err != nil { | |
log.Printf("agollo start err:%v\n", err) | |
return | |
} | |
fmt.Println("初始化Apollo配置成功") | |
} |
AppID
:配置中心中的应用程序 ID,用于标识不同的应用程序。每个应用程序都有唯一的 AppID。Cluster
:配置中心中的集群名称。应用程序可以分布在不同的集群中,根据实际情况设置相应的集群名称。IP
:配置中心的服务地址。NamespaceName
:应用程序的命名空间名称。命名空间是配置项的逻辑分组,不同的应用程序可以有不同的命名空间,用于隔离配置。IsBackupConfig
:是否备份配置。如果为 true,当连接到配置中心失败时,将使用本地缓存的配置备份数据。Secret
:配置中心的访问密钥,用于授权认证。如果启用了配置中心的授权认证,需要设置相应的密钥。
# 获取配置
# GetConfig
func GetFromStorage(client agollo.Client) { | |
key := "timeout" | |
// 获取配置 | |
storage := client.GetConfig(common.NameSpaceDemo) | |
// 获取键值 | |
strVal := storage.GetStringValue(key, "xxx") | |
fmt.Println(strVal) | |
// 获取键值 | |
strVal = storage.GetStringValueImmediately(key, "xxx") | |
fmt.Println(strVal) | |
//storage 是否初始化 | |
b := storage.GetIsInit() | |
fmt.Println(b) | |
// 获取全部内容,string 格式 | |
content := storage.GetContent() | |
fmt.Println(content) | |
/* | |
GetValue(key string) string | |
GetStringValue(key string, defaultValue string) string | |
GetStringSliceValue(key string, separator string, defaultValue []string) []string | |
GetIntSliceValue(key string, separator string, defaultValue []int) []int | |
GetSliceValue(key string, defaultValue []interface{}) []interface{} | |
GetIntValue(key string, defaultValue int) int | |
GetFloatValue(key string, defaultValue float64) float64 | |
GetBoolValue(key string, defaultValue bool) bool | |
*/ | |
/* | |
GetValueImmediately(key string) string | |
GetStringValueImmediately(key string, defaultValue string) string | |
GetStringSliceValueImmediately(key string, defaultValue []string) []string | |
GetIntSliceValueImmediately(key string, defaultValue []int) []int | |
GetSliceValueImmediately(key string, defaultValue []interface{}) []interface{} | |
GetIntValueImmediately(key string, defaultValue int) int | |
GetFloatValueImmediately(key string, defaultValue float64) float64 | |
GetBoolValueImmediately(key string, defaultValue bool) bool | |
*/ | |
} |
GetStringValue
和GetStringValueImmediately
有什么区别呢?让我们看一下源码。
// GetStringValue 获取配置值(string),获取不到则取默认值 | |
func (c *Config) GetStringValue(key string, defaultValue string) string { | |
value := c.GetValue(key) | |
if value == utils.Empty { | |
return defaultValue | |
} | |
return value | |
} |
// GetStringValueImmediately 获取配置值(string),立即返回,初始化未完成直接返回错误 | |
func (c *Config) GetStringValueImmediately(key string, defaultValue string) string { | |
value := c.GetValueImmediately(key) | |
if value == utils.Empty { | |
return defaultValue | |
} | |
return value | |
} |
这时候应该比较一下 c.GetValue
和 c.GetValueImmediately
// GetValue 获取配置值(string) | |
func (c *Config) GetValue(key string) string { | |
value := c.getConfigValue(key, true) | |
... | |
} |
func (c *Config) GetValueImmediately(key string) string { | |
value := c.getConfigValue(key, false) | |
... | |
} |
区别在这:
//getConfigValue 获取配置值 | |
func (c *Config) getConfigValue(key string, waitInit bool) interface{} { | |
b := c.GetIsInit() | |
if !b { | |
if !waitInit { | |
log.Errorf("getConfigValue fail, init not done, namespace:%s key:%s", c.namespace, key) | |
return nil | |
} | |
c.waitInit.Wait() | |
} | |
if c.cache == nil { | |
log.Errorf("get config value fail!namespace:%s is not exist!", c.namespace) | |
return nil | |
} | |
value, err := c.cache.Get(key) | |
if err != nil { | |
log.Errorf("get config value fail!key:%s,err:%s", key, err) | |
return nil | |
} | |
return value | |
} |
说明不带 immediately 的函数有阻塞,也就是说假如你的 ip 地址写错了,它就会一直等待,而不会直接给你返回错误。所以选择的标准就是是否希望立即获取并使用。
如果应用程序希望在获取配置值的同时继续执行其他操作,不阻塞当前线程,那不带 immedialy 的函数肯定更适合。
# GetConfigCache
func GetFromCache(client agollo.Client) { | |
key := "timeout" | |
cache := client.GetConfigCache(common.NameSpaceDemo) | |
value, err := cache.Get(key) | |
if err != nil { | |
fmt.Println(err) | |
return | |
} | |
fmt.Println(value) | |
} |
# 踩坑点
# 直接用 client
获取键值
func GetFromStorage(client agollo.Client) { | |
key := "timeout" | |
strVal := client.GetStringValue(key, "xxx") | |
fmt.Println(strVal) | |
} |
查看源码:
//GetStringValue 获取 string 配置值 | |
func (c *internalClient) GetStringValue(key string, defaultValue string) string { | |
return c.GetConfig(storage.GetDefaultNamespace()).GetStringValue(key, defaultValue) | |
} |
// GetDefaultNamespace 获取默认命名空间 | |
func GetDefaultNamespace() string { | |
return defaultNamespace | |
} |
const defaultNamespace string = "application" |
如果默认命名空间没有你想获取的键,就会报空指针的错误。
因为会判断出
storage
没有初始化。
以下方法皆同理:
GetValue(key string) string | |
GetStringValue(key string, defaultValue string) string | |
GetIntValue(key string, defaultValue int) int | |
GetFloatValue(key string, defaultValue float64) float64 | |
GetBoolValue(key string, defaultValue bool) bool | |
GetStringSliceValue(key string, defaultValue []string) []string | |
GetIntSliceValue(key string, defaultValue []int) []int |