Centos 7 安装Java运行环境

  • 防火墙命令
  • 网卡配置
  • 一 安装 JDK 环境
  • 二 更新 yum 仓库
  • 三 Docker 安装
  • 1.卸载旧版docker
  • 2.安装Docker
  • 四 安装mysql数据库
  • 本地安装
  • 1. 更新 yum
  • 2.添加 MySQL 的 yum 仓库源
  • 3 选择指定的 mysql 版本
  • 3.1 查看所有的 mysql 版本
  • 3.2 启用指定版本的 mysql
  • 4 安装 mysql
  • 5 MySQL 初始化设置
  • 6 设置 MySQL开机启动
  • 7 设置远程连接
  • 容器化部署
  • 五 安装配置中心 Apollo
  • 1 部署数据库环境
  • apolloconfigdb.sql
  • apolloportaldb.sql
  • 2 部署服务环境
  • Apollo-configService 配置服务部署
  • Apollo-adminservice 配置服务部署
  • Apollo-portal 配置服务部署
  • 六 ElasticSearch 环境部署
  • 七 Logstash 环境部署
  • 八 RockMQ 环境部署
  • 九 YApi 环境部署
  • MongoDB 环境安装
  • YApi 环境安装
  • 十 Redis的安装


防火墙命令

# 关闭防火墙
systemctl stop firewalld.service 

# 查看防火墙的状态
systemctl status firewalld.service 

#执行开机禁用防火墙自启命令(永久关闭防火墙)
systemctl disable firewalld.service

firewall-cmd --zone=public --add-port=9876/tcp --permanent
firewall-cmd --zone=public --add-port=10911/tcp --permanent
#说明:
#–zone #作用域
#–add-port=80/tcp #添加端口,格式为:端口/通讯协议
#–permanent 永久生效,没有此参数重启后失效

#重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --reload                        
#centos7查看防火墙开放的端口信息
firewall-cmd --list-ports

网卡配置

查看网络配置命令:

ifconfig(有些centos7版本无此命令)
或
ip add

配置网络环境:

#网卡配置的路径:/etc/sysconfig/network-scripts/ 

修改配置文件
vi ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.94.129
NETMASK=255.255.255.0
GATEWAY=192.168.94.2
DNS1=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=7fd08cd5-1757-45c6-ab84-3df72dd378d8
DEVICE=ens33
ONBOOT=true
ZONE=public

修改后需要重新启动网卡:

systemctl restart network

一 安装 JDK 环境

因为 操作系统默认已经安装了 opendjdk,
# 查看
rpm -qa | grep java
# 删除(把上一个命令看到的所有的jdk文件 用 如下命令删除)
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.232.b09-0.el7_7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.241-2.6.20.0.el7_7.x86_64
rmp -e --nodeps java-1.7.0-openjdk-1.7.0.241-2.6.20.0.el7_7.x86_64
1)解压 jdk
tar -zxvf jdk-8u171-linux-x64.tar.gz
2)配置环境变量
>vim /etc/profile
export JAVA_HOME=/opt/jdk1.8.0_171
export PATH=$PATH:${JAVA_HOME}/bin
3)重新加载配置
>source /etc/profile
>java -version

二 更新 yum 仓库

#列出你所有的yum repo
yum repolist

安装阿里yum源

因为默认的yum源服务器在国外,我们在安装软件的时候会受到速度的影响,所以安装国内yum源在下载的时候速度、稳定性会比国外的好很多。

1) 安装wget

yum install -y wget

2) 备份/etc/yum.repos.d/CentOS-Base.repo文件

cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.back

3) 下载阿里云的Centos-7.repo文件

wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

注意

上面的url中要卸载Centos-7.repo;而不是Centos-6.repo

cat CentOS-Base.repo

4) 重新加载yum

yum clean all

清理之前(CentOS)的缓存

执行效果如下

yum makecache

就是把服务器的包信息下载到本地电脑缓存起来,makecache建立一个缓存,以后用install时就在缓存中搜索,提高了速度。

5、验证yum源使用

yum search tomcat

Loading mirror speeds from cached hostfile(从缓存的主机文件加载镜像速度)

  • base: mirrors.aliyun.com
  • extras: mirrors.aliyun.com
  • updates: mirrors.aliyun.com

6.修改容器中的时区

docker exec -it container /bin/bash // 进入交互模式,container为容器ID或名称,下同
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
docker restart container // 重启容器
docker exec container date -R // 查看时区

三 Docker 安装

1.卸载旧版docker

yum remove docker \
   docker-client \
   docker-client-latest \
   docker-common \
   docker-latest \
   docker-latest-logrotate \
   docker-logrotate \
   docker-selinux \
   docker-engine-selinux \
   docker-engine \
   docker-ce

2.安装Docker

安装Docker
# 1、yum 包更新到最新 
yum update
# 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4、 安装docker,出现输入的界面都按 y 
yum install -y docker-ce
# 5、 查看docker版本,验证是否验证成功
docker -v

Docker命令
启动Docker
systemctl start docker
设置开机自启动
systemctl enable docker
查看状态
systemctl status docker
重启Docker
systemctl restart docker
停止Docker
systemctl stop docker

四 安装mysql数据库

本地安装

1. 更新 yum

在使用yum安装 MySQL 前,先更新 yum

yum update -y

2.添加 MySQL 的 yum 仓库源

Mysql 仓库源地址: https://dev.mysql.com/downloads/repo/yum/

选择 CentOS 7 版本的 mysql 源

安装 wget 工具:

sudo yum install -y wget

使用 wget 下载 mysql yum 源:

wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

添加 mysql yum 源(在 wget 的下载目录,紧接着上一命令,则无需调整):

sudo yum localinstall mysql80-community-release-el7-3.noarch.rpm

安装 yum 工具 yum-utils :

sudo yum install -y yum-utils

查看可用的 mysql :

yum repolist enabled | grep "mysql.-community."

此时会看到当前可用的 MySQL 版本为 mysql80, 这是因为最新 mysql 最新版为 8.0 版本

3 选择指定的 mysql 版本

3.1 查看所有的 mysql 版本
yum repolist all | grep mysql
3.2 启用指定版本的 mysql

禁用 mysql8.0:

sudo yum-config-manager --disable mysql80-community

启用 mysql 5.7

sudo yum-config-manager --enable mysql57-community

校验当前启用(enable)的 mysql 版本是否为 5.7:

yum repolist enabled | grep mysql

查询结果:

从结果中可以看出,当前启用的 mysql 版本为 5.7,没有问题

4 安装 mysql

在步骤 3 中已经设置启用的mysql版本为 5.7,接下来则直接进行安装

安装 mysql

sudo yum install -y mysql-community-server

待命令执行结束,安装即完成
启动 mysql 服务:

sudo service mysqld start

查看 mysql 服务状态:

sudo service mysqld status

5 MySQL 初始化设置

从 MySQL 5.7 开始,mysql 安装之后,会默认随机生成一个临时密码,因此登录之后需要修改密码

查看生成的初始密码:

sudo grep 'temporary password' /var/log/mysqld.log

[Note] A temporary password is generated for root@localhost: MGJ4=4jraaxw

使用初始密码进行登录:

mysql -u root -p

由于新版mysql 5.7 设置密码必须包含大写字母、小写字母、数字、标点符号,且密码长度至少为 8。所以我们需要修改系统参数来降级。这样我们就可以设置简单的密码了

设置参数如下:

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.05 sec)
 
mysql> 
mysql> 
mysql> set global validate_password_mixed_case_count=0;
Query OK, 0 rows affected (0.00 sec)
 
mysql> set global validate_password_number_count=3;
Query OK, 0 rows affected (0.00 sec)
 
mysql> set global validate_password_special_char_count=0;
Query OK, 0 rows affected (0.00 sec)
 
mysql> set global validate_password_length=3;
Query OK, 0 rows affected (0.00 sec)

然后设置新密码为 root:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

密码设置之后安装即完成

6 设置 MySQL开机启动

开机启动命令:

systemctl enable mysqld

查看看机启动项:

systemctl list-unit-files | grep enable

7 设置远程连接

登录成功之后执行以下命令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourNewPassword' WITH GRANT OPTION;

刷新权限

FLUSH PRIVILEGES;

容器化部署

#拉取镜像并创建启动容器
docker pull mysql:5.7

# 简单的方式
docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7 

#详细方式
docker run --name mysql3306 --restart=always -p 3306:3306 --privileged=true -ti -e MYSQL_ROOT_PASSWORD=root -e MYSQL_USER=user -e MYSQL_PASSWORD=pass  -e TZ=Asia/Shanghai -v /home/mysql/docker-data/3306/conf:/etc/mysql/conf.d -v /home/mysql/docker-data/3306/data/:/var/lib/mysql -v /home/mysql/docker-data/3306/logs/:/var/log/mysql -d mysql:5.7 

#-e 代表添加环境变量 MYSQL_ROOT_PASSWORD 是root用户的远程登陆密码(如果是在容器中使用root登录的话,那么其密码为空)

#进入容器
docker exec -it mysql3306 /bin/bash

#登录容器内mysql
mysql -uroot -p

#退出容器
exit

如果容器创建完容器,但mysql的时区不对,需要通过下面的配置来修改时区:

#进入容器
docker exec -it mysql3306 bash

#查看当前时区
date -R

#修改时区 方式一:
cp /usr/share/zoneinfo/PRC /etc/localtime

# 或者  方式二:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

五 安装配置中心 Apollo

使用 Docker 进行容器化部署。

部署环境需要做一下事项:

1.部署 Apollo 数据库环境

2.部署 Apollo 服务环境

1 部署数据库环境

首先从官网下载 sql 脚本文件 网址为:github地址

1.apolloconfigdb.sql

2.apolloportaldb.sql

如果github网址下载慢或者是访问不了,可以使用下面的脚本内容。

apolloconfigdb.sql

/*
SQLyog Ultimate v12.08 (64 bit)
MySQL - 5.7.33 : Database - ApolloConfigDB
*********************************************************************
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!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 /*!32312 IF NOT EXISTS*/`ApolloConfigDB` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;

USE `ApolloConfigDB`;

/*Table structure for table `AccessKey` */

DROP TABLE IF EXISTS `AccessKey`;

CREATE TABLE `AccessKey` (
  `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `AppId` varchar(500) 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',
  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) NOT NULL DEFAULT '' COMMENT '最后修改人邮箱前缀',
  `DataChange_LastTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  PRIMARY KEY (`Id`),
  KEY `AppId` (`AppId`(191)),
  KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='访问密钥';

/*Data for the table `AccessKey` */

/*Table structure for table `App` */

DROP TABLE IF EXISTS `App`;

CREATE TABLE `App` (
  `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `AppId` varchar(500) 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',
  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  PRIMARY KEY (`Id`),
  KEY `AppId` (`AppId`(191)),
  KEY `DataChange_LastTime` (`DataChange_LastTime`),
  KEY `IX_Name` (`Name`(191))
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='应用表';

/*Data for the table `App` */

insert  into `App`(`Id`,`AppId`,`Name`,`OrgId`,`OrgName`,`OwnerName`,`OwnerEmail`,`IsDeleted`,`DataChange_CreatedBy`,`DataChange_CreatedTime`,`DataChange_LastModifiedBy`,`DataChange_LastTime`) values (1,'SampleApp','Sample App','TEST1','样例部门1','apollo','apollo@acme.com','','default','2021-03-22 11:10:56','apollo','2021-03-22 12:11:10');

/*Table structure for 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',
  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT '' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  PRIMARY KEY (`Id`),
  KEY `IX_AppId` (`AppId`),
  KEY `Name_AppId` (`Name`,`AppId`),
  KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='应用namespace定义';

/*Data for the table `AppNamespace` */

insert  into `AppNamespace`(`Id`,`Name`,`AppId`,`Format`,`IsPublic`,`Comment`,`IsDeleted`,`DataChange_CreatedBy`,`DataChange_CreatedTime`,`DataChange_LastModifiedBy`,`DataChange_LastTime`) values (1,'application','SampleApp','properties','\0','default app namespace','','','2021-03-22 11:10:56','apollo','2021-03-22 12:11:10');

/*Table structure for 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',
  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  PRIMARY KEY (`Id`),
  KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COMMENT='日志审计表';

/*Data for the table `Audit` */

insert  into `Audit`(`Id`,`EntityName`,`EntityId`,`OpName`,`Comment`,`IsDeleted`,`DataChange_CreatedBy`,`DataChange_CreatedTime`,`DataChange_LastModifiedBy`,`DataChange_LastTime`) values (1,'Namespace',1,'DELETE',NULL,'\0','apollo','2021-03-22 12:11:10',NULL,'2021-03-22 12:11:10'),(2,'Cluster',1,'DELETE',NULL,'\0','apollo','2021-03-22 12:11:10',NULL,'2021-03-22 12:11:10'),(3,'App',1,'DELETE',NULL,'\0','apollo','2021-03-22 12:11:10',NULL,'2021-03-22 12:11:10');

/*Table structure for 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',
  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT '' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  PRIMARY KEY (`Id`),
  KEY `IX_AppId_Name` (`AppId`,`Name`),
  KEY `IX_ParentClusterId` (`ParentClusterId`),
  KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='集群';

/*Data for the table `Cluster` */

insert  into `Cluster`(`Id`,`Name`,`AppId`,`ParentClusterId`,`IsDeleted`,`DataChange_CreatedBy`,`DataChange_CreatedTime`,`DataChange_LastModifiedBy`,`DataChange_LastTime`) values (1,'default','SampleApp',0,'','','2021-03-22 11:10:56','apollo','2021-03-22 12:11:10');

/*Table structure for 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(500) 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',
  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) 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`(191)),
  KEY `ClusterName` (`ClusterName`(191)),
  KEY `NamespaceName` (`NamespaceName`(191))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='commit 历史表';

/*Data for the table `Commit` */

/*Table structure for 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',
  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) 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='灰度规则表';

/*Data for the table `GrayReleaseRule` */

/*Table structure for 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='使用配置的应用实例';

/*Data for the table `Instance` */

/*Table structure for 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='应用实例的配置信息';

/*Data for the table `InstanceConfig` */

/*Table structure for 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',
  `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',
  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) 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 AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='配置项目';

/*Data for the table `Item` */

insert  into `Item`(`Id`,`NamespaceId`,`Key`,`Value`,`Comment`,`LineNum`,`IsDeleted`,`DataChange_CreatedBy`,`DataChange_CreatedTime`,`DataChange_LastModifiedBy`,`DataChange_LastTime`) values (1,1,'timeout','100','sample timeout配置',1,'','default','2021-03-22 11:10:56','apollo','2021-03-22 12:11:09');

/*Table structure for table `Namespace` */

DROP TABLE IF EXISTS `Namespace`;

CREATE TABLE `Namespace` (
  `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `AppId` varchar(500) 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',
  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  PRIMARY KEY (`Id`),
  KEY `AppId_ClusterName_NamespaceName` (`AppId`(191),`ClusterName`(191),`NamespaceName`(191)),
  KEY `DataChange_LastTime` (`DataChange_LastTime`),
  KEY `IX_NamespaceName` (`NamespaceName`(191))
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='命名空间';

/*Data for the table `Namespace` */

insert  into `Namespace`(`Id`,`AppId`,`ClusterName`,`NamespaceName`,`IsDeleted`,`DataChange_CreatedBy`,`DataChange_CreatedTime`,`DataChange_LastModifiedBy`,`DataChange_LastTime`) values (1,'SampleApp','default','application','','default','2021-03-22 11:10:56','apollo','2021-03-22 12:11:10');

/*Table structure for 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(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) DEFAULT 'default' COMMENT '最后修改人邮箱前缀',
  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  `IsDeleted` bit(1) DEFAULT b'0' COMMENT '软删除',
  PRIMARY KEY (`Id`),
  UNIQUE KEY `IX_NamespaceId` (`NamespaceId`),
  KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='namespace的编辑锁';

/*Data for the table `NamespaceLock` */

/*Table structure for 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(500) 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',
  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  PRIMARY KEY (`Id`),
  KEY `AppId_ClusterName_GroupName` (`AppId`(191),`ClusterName`(191),`NamespaceName`(191)),
  KEY `DataChange_LastTime` (`DataChange_LastTime`),
  KEY `IX_ReleaseKey` (`ReleaseKey`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='发布';

/*Data for the table `Release` */

insert  into `Release`(`Id`,`ReleaseKey`,`Name`,`Comment`,`AppId`,`ClusterName`,`NamespaceName`,`Configurations`,`IsAbandoned`,`IsDeleted`,`DataChange_CreatedBy`,`DataChange_CreatedTime`,`DataChange_LastModifiedBy`,`DataChange_LastTime`) values (1,'20161009155425-d3a0749c6e20bc15','20161009155424-release','Sample发布','SampleApp','default','application','{\"timeout\":\"100\"}','\0','','default','2021-03-22 11:10:56','apollo','2021-03-22 12:11:09');

/*Table structure for 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',
  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) 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`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='发布历史';

/*Data for the table `ReleaseHistory` */

insert  into `ReleaseHistory`(`Id`,`AppId`,`ClusterName`,`NamespaceName`,`BranchName`,`ReleaseId`,`PreviousReleaseId`,`Operation`,`OperationContext`,`IsDeleted`,`DataChange_CreatedBy`,`DataChange_CreatedTime`,`DataChange_LastModifiedBy`,`DataChange_LastTime`) values (1,'SampleApp','default','application','default',1,0,0,'{}','','apollo','2021-03-22 11:10:56','apollo','2021-03-22 12:11:09');

/*Table structure for 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 AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COMMENT='发布消息';

/*Data for the table `ReleaseMessage` */

insert  into `ReleaseMessage`(`Id`,`Message`,`DataChange_LastTime`) values (2,'SampleApp+default+application','2021-03-22 12:11:10');

/*Table structure for 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',
  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  PRIMARY KEY (`Id`),
  KEY `IX_Key` (`Key`),
  KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COMMENT='配置服务自身配置';

/*Data for the table `ServerConfig` */

insert  into `ServerConfig`(`Id`,`Key`,`Cluster`,`Value`,`Comment`,`IsDeleted`,`DataChange_CreatedBy`,`DataChange_CreatedTime`,`DataChange_LastModifiedBy`,`DataChange_LastTime`) values (1,'eureka.service.url','default','http://192.168.94.129:8080/eureka/','Eureka服务Url,多个service以英文逗号分隔','\0','default','2021-03-22 11:10:56','','2021-03-22 11:49:06'),(2,'namespace.lock.switch','default','false','一次发布只能有一个人修改开关','\0','default','2021-03-22 11:10:56','','2021-03-22 11:10:56'),(3,'item.value.length.limit','default','20000','item value最大长度限制','\0','default','2021-03-22 11:10:56','','2021-03-22 11:10:56'),(4,'config-service.cache.enabled','default','false','ConfigService是否开启缓存,开启后能提高性能,但是会增大内存消耗!','\0','default','2021-03-22 11:10:56','','2021-03-22 11:10:56'),(5,'item.key.length.limit','default','128','item key 最大长度限制','\0','default','2021-03-22 11:10:56','','2021-03-22 11:10:56');

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

apolloportaldb.sql

/*
SQLyog Ultimate v12.08 (64 bit)
MySQL - 5.7.33 : Database - ApolloPortalDB
*********************************************************************
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!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 /*!32312 IF NOT EXISTS*/`ApolloPortalDB` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;

USE `ApolloPortalDB`;

/*Table structure for table `App` */

DROP TABLE IF EXISTS `App`;

CREATE TABLE `App` (
  `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `AppId` varchar(500) 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',
  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  PRIMARY KEY (`Id`),
  KEY `AppId` (`AppId`(191)),
  KEY `DataChange_LastTime` (`DataChange_LastTime`),
  KEY `IX_Name` (`Name`(191))
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='应用表';

/*Data for the table `App` */

insert  into `App`(`Id`,`AppId`,`Name`,`OrgId`,`OrgName`,`OwnerName`,`OwnerEmail`,`IsDeleted`,`DataChange_CreatedBy`,`DataChange_CreatedTime`,`DataChange_LastModifiedBy`,`DataChange_LastTime`) values (1,'SampleApp','Sample App','TEST1','样例部门1','apollo','apollo@acme.com','','default','2021-03-22 11:11:27','apollo','2021-03-22 12:11:09');

/*Table structure for 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',
  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT '' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  PRIMARY KEY (`Id`),
  KEY `IX_AppId` (`AppId`),
  KEY `Name_AppId` (`Name`,`AppId`),
  KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='应用namespace定义';

/*Data for the table `AppNamespace` */

insert  into `AppNamespace`(`Id`,`Name`,`AppId`,`Format`,`IsPublic`,`Comment`,`IsDeleted`,`DataChange_CreatedBy`,`DataChange_CreatedTime`,`DataChange_LastModifiedBy`,`DataChange_LastTime`) values (1,'application','SampleApp','properties','\0','default app namespace','','','2021-03-22 11:11:27','apollo','2021-03-22 12:11:09');

/*Table structure for 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 AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4;

/*Data for the table `Authorities` */

insert  into `Authorities`(`Id`,`Username`,`Authority`) values (1,'apollo','ROLE_user');

/*Table structure for table `Consumer` */

DROP TABLE IF EXISTS `Consumer`;

CREATE TABLE `Consumer` (
  `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
  `AppId` varchar(500) 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',
  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  PRIMARY KEY (`Id`),
  KEY `AppId` (`AppId`(191)),
  KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='开放API消费者';

/*Data for the table `Consumer` */

/*Table structure for 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审计表';

/*Data for the table `ConsumerAudit` */

/*Table structure for 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',
  `DataChange_CreatedBy` varchar(32) DEFAULT '' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  PRIMARY KEY (`Id`),
  KEY `IX_DataChange_LastTime` (`DataChange_LastTime`),
  KEY `IX_RoleId` (`RoleId`),
  KEY `IX_ConsumerId_RoleId` (`ConsumerId`,`RoleId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='consumer和role的绑定表';

/*Data for the table `ConsumerRole` */

/*Table structure for 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',
  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  PRIMARY KEY (`Id`),
  UNIQUE KEY `IX_Token` (`Token`),
  KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='consumer token表';

/*Data for the table `ConsumerToken` */

/*Table structure for 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(500) 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',
  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  PRIMARY KEY (`Id`),
  KEY `AppId` (`AppId`(191)),
  KEY `IX_UserId` (`UserId`),
  KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8mb4 COMMENT='应用收藏表';

/*Data for the table `Favorite` */

/*Table structure for 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',
  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT '' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  PRIMARY KEY (`Id`),
  KEY `IX_TargetId_PermissionType` (`TargetId`(191),`PermissionType`),
  KEY `IX_DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COMMENT='permission表';

/*Data for the table `Permission` */

insert  into `Permission`(`Id`,`PermissionType`,`TargetId`,`IsDeleted`,`DataChange_CreatedBy`,`DataChange_CreatedTime`,`DataChange_LastModifiedBy`,`DataChange_LastTime`) values (1,'CreateCluster','SampleApp','','','2021-03-22 11:11:27','apollo','2021-03-22 12:11:09'),(2,'CreateNamespace','SampleApp','','','2021-03-22 11:11:27','apollo','2021-03-22 12:11:09'),(3,'AssignRole','SampleApp','','','2021-03-22 11:11:27','apollo','2021-03-22 12:11:09'),(4,'ModifyNamespace','SampleApp+application','','','2021-03-22 11:11:27','apollo','2021-03-22 12:11:09'),(5,'ReleaseNamespace','SampleApp+application','','','2021-03-22 11:11:27','apollo','2021-03-22 12:11:09'),(6,'CreateApplication','SystemRole','\0','apollo','2021-03-22 11:57:51','apollo','2021-03-22 11:57:51');

/*Table structure for 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',
  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  PRIMARY KEY (`Id`),
  KEY `IX_RoleName` (`RoleName`(191)),
  KEY `IX_DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COMMENT='角色表';

/*Data for the table `Role` */

insert  into `Role`(`Id`,`RoleName`,`IsDeleted`,`DataChange_CreatedBy`,`DataChange_CreatedTime`,`DataChange_LastModifiedBy`,`DataChange_LastTime`) values (1,'Master+SampleApp','','default','2021-03-22 11:11:27','apollo','2021-03-22 12:11:09'),(2,'ModifyNamespace+SampleApp+application','','default','2021-03-22 11:11:27','apollo','2021-03-22 12:11:09'),(3,'ReleaseNamespace+SampleApp+application','','default','2021-03-22 11:11:27','apollo','2021-03-22 12:11:09'),(4,'CreateApplication+SystemRole','\0','apollo','2021-03-22 11:57:51','apollo','2021-03-22 11:57:51');

/*Table structure for 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',
  `DataChange_CreatedBy` varchar(32) DEFAULT '' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  PRIMARY KEY (`Id`),
  KEY `IX_DataChange_LastTime` (`DataChange_LastTime`),
  KEY `IX_RoleId` (`RoleId`),
  KEY `IX_PermissionId` (`PermissionId`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COMMENT='角色和权限的绑定表';

/*Data for the table `RolePermission` */

insert  into `RolePermission`(`Id`,`RoleId`,`PermissionId`,`IsDeleted`,`DataChange_CreatedBy`,`DataChange_CreatedTime`,`DataChange_LastModifiedBy`,`DataChange_LastTime`) values (1,1,1,'','','2021-03-22 11:11:27','apollo','2021-03-22 12:11:09'),(2,1,2,'','','2021-03-22 11:11:27','apollo','2021-03-22 12:11:09'),(3,1,3,'','','2021-03-22 11:11:27','apollo','2021-03-22 12:11:09'),(4,2,4,'','','2021-03-22 11:11:27','apollo','2021-03-22 12:11:09'),(5,3,5,'','','2021-03-22 11:11:27','apollo','2021-03-22 12:11:09'),(6,4,6,'\0','apollo','2021-03-22 11:57:51','apollo','2021-03-22 11:57:51');

/*Table structure for 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',
  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  PRIMARY KEY (`Id`),
  KEY `IX_Key` (`Key`),
  KEY `DataChange_LastTime` (`DataChange_LastTime`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COMMENT='配置服务自身配置';

/*Data for the table `ServerConfig` */

insert  into `ServerConfig`(`Id`,`Key`,`Value`,`Comment`,`IsDeleted`,`DataChange_CreatedBy`,`DataChange_CreatedTime`,`DataChange_LastModifiedBy`,`DataChange_LastTime`) values (1,'apollo.portal.envs','dev','可支持的环境列表','\0','default','2021-03-22 11:11:27','','2021-03-22 11:11:27'),(2,'organizations','[{\"orgId\":\"TEST1\",\"orgName\":\"样例部门1\"},{\"orgId\":\"TEST2\",\"orgName\":\"样例部门2\"}]','部门列表','\0','default','2021-03-22 11:11:27','','2021-03-22 11:11:27'),(3,'superAdmin','apollo','Portal超级管理员','\0','default','2021-03-22 11:11:27','','2021-03-22 11:11:27'),(4,'api.readTimeout','10000','http接口read timeout','\0','default','2021-03-22 11:11:27','','2021-03-22 11:11:27'),(5,'consumer.token.salt','someSalt','consumer token salt','\0','default','2021-03-22 11:11:27','','2021-03-22 11:11:27'),(6,'admin.createPrivateNamespace.switch','true','是否允许项目管理员创建私有namespace','\0','default','2021-03-22 11:11:27','','2021-03-22 11:11:27'),(7,'configView.memberOnly.envs','dev','只对项目成员显示配置信息的环境列表,多个env以英文逗号分隔','\0','default','2021-03-22 11:11:27','','2021-03-22 11:11:27');

/*Table structure for 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',
  `DataChange_CreatedBy` varchar(32) DEFAULT '' COMMENT '创建人邮箱前缀',
  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  PRIMARY KEY (`Id`),
  KEY `IX_DataChange_LastTime` (`DataChange_LastTime`),
  KEY `IX_RoleId` (`RoleId`),
  KEY `IX_UserId_RoleId` (`UserId`,`RoleId`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COMMENT='用户和role的绑定表';

/*Data for the table `UserRole` */

insert  into `UserRole`(`Id`,`UserId`,`RoleId`,`IsDeleted`,`DataChange_CreatedBy`,`DataChange_CreatedTime`,`DataChange_LastModifiedBy`,`DataChange_LastTime`) values (1,'apollo',1,'','','2021-03-22 11:11:27','apollo','2021-03-22 12:11:09'),(2,'apollo',2,'','','2021-03-22 11:11:27','apollo','2021-03-22 12:11:09'),(3,'apollo',3,'','','2021-03-22 11:11:27','apollo','2021-03-22 12:11:09');

/*Table structure for 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(64) NOT NULL DEFAULT 'default' COMMENT '密码',
  `Email` varchar(64) NOT NULL DEFAULT 'default' COMMENT '邮箱地址',
  `Enabled` tinyint(4) DEFAULT NULL COMMENT '是否有效',
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='用户表';

/*Data for the table `Users` */

insert  into `Users`(`Id`,`Username`,`Password`,`Email`,`Enabled`) values (1,'apollo','$2a$10$7r20uS.BQ9uBpf3Baj3uQOZvMVvB1RN3PYoKE94gtz2.WAOuiiwXS','apollo@acme.com',1);

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

2 部署服务环境

Apollo的服务部署需要三个:

1.Apollo-configService 配置服务

2.Apollo-adminService 管理服务

3.Apollo-portalService 门户服务

服务的部署参照官方文档:官方文档Docker部署

Apollo-configService 配置服务部署

获得镜像

docker pull apolloconfig/apollo-configservice:1.7.1

创建容器和运行容器

docker run -p 8080:8080 \
    -e SPRING_DATASOURCE_URL="jdbc:mysql://106.15.106.247:3306/ApolloConfigDB?characterEncoding=utf8" \
    -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=root \
    -d -v /tmp/logs:/opt/logs --name apollo-configservice apolloconfig/apollo-configservice:1.7.1

参数说明:

  • SPRING_DATASOURCE_URL: 对应环境ApolloConfigDB的地址
  • SPRING_DATASOURCE_USERNAME: 对应环境ApolloConfigDB的用户名
  • SPRING_DATASOURCE_PASSWORD: 对应环境ApolloConfigDB的密码

进入到 configservice 容器中,在 apollo-configservice/script/startup.sh 文件中添加下面的配置:

export JAVA_OPTS="$JAVA_OPTS -Deureka.instance.ip-address=自己虚拟机的id地址 -Deureka.instance.prefer-ip-address=true"

Apollo-adminservice 配置服务部署

获得镜像

docker pull apolloconfig/apollo-adminservice:1.7.1

创建容器和运行容器

docker run -p 8090:8090 \
    -e SPRING_DATASOURCE_URL="jdbc:mysql://106.15.106.247:3306/ApolloConfigDB?characterEncoding=utf8" \
    -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=root \
    -d -v /tmp/logs:/opt/logs --name apollo-adminservice apolloconfig/apollo-adminservice:1.7.1

参数说明:

  • SPRING_DATASOURCE_URL: 对应环境ApolloConfigDB的地址
  • SPRING_DATASOURCE_USERNAME: 对应环境ApolloConfigDB的用户名
  • SPRING_DATASOURCE_PASSWORD: 对应环境ApolloConfigDB的密码

进入到 adminservice 容器中,在 apollo-adminservice/script/startup.sh 文件中添加下面的配置:

export JAVA_OPTS="$JAVA_OPTS -Deureka.instance.ip-address=自己虚拟机的id地址 -Deureka.instance.prefer-ip-address=true"

Apollo-portal 配置服务部署

获得镜像

docker pull apolloconfig/apollo-portal:1.7.1

创建容器和运行容器

docker run -p 8070:8070 \
    -e SPRING_DATASOURCE_URL="jdbc:mysql://106.15.106.247:3306/ApolloPortalDB?characterEncoding=utf8" \
    -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=root \
    -e APOLLO_PORTAL_ENVS=dev \
    -e DEV_META=http://106.15.106.247:8080 \
    -d -v /tmp/logs:/opt/logs --name apollo-portal apolloconfig/apollo-portal:1.7.1

参数说明:

  • SPRING_DATASOURCE_URL: 对应环境ApolloPortalDB的地址
  • SPRING_DATASOURCE_USERNAME: 对应环境ApolloPortalDB的用户名
  • SPRING_DATASOURCE_PASSWORD: 对应环境ApolloPortalDB的密码
  • APOLLO_PORTAL_ENVS(可选): 对应ApolloPortalDB中的apollo.portal.envs配置项,如果没有在数据库中配置的话,可以通过此环境参数配置
  • DEV_META/PRO_META(可选): 配置对应环境的Meta Service地址,以${ENV}_META命名,需要注意的是如果配置了ApolloPortalDB中的[apollo.portal.meta.servers]配置,则以apollo.portal.meta.servers中的配置为准

进入到 potalservice 容器中,在 apollo-potalservice/script/startup.sh 文件中添加下面的配置:

export JAVA_OPTS="$JAVA_OPTS -Deureka.instance.ip-address=自己虚拟机的id地址 -Deureka.instance.prefer-ip-address=true"

六 ElasticSearch 环境部署

1)下载ElasticSearch7.10.1镜像

docker pull elasticsearch:7.10.1

2)创建ElasticSearch配置文件夹

mkdir -p /etc/elasticsearch/config
mkdir -p /etc/elasticsearch/data
mkdir -p /etc/elasticsearch/plugins

3)配置中配置ip信息

echo "http.host: 0.0.0.0" > /etc/elasticsearch/config/elasticsearch.yml

4)配置文件夹权限

chmod -R 775 /etc/elasticsearch/

5)启动容器并配置端口映射与目录映射

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /etc/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /etc/elasticsearch/data:/usr/share/elasticsearch/data \
-v /etc/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.10.1

1)下载Kibana7.10.1镜像

docker pull kibana:7.10.1

2)创建配置文件夹

mkdir -p  /etc/kibana/config

3)创建并修改配置文件 kibana.yml

#
# ** THIS IS AN AUTO-GENERATED FILE **
#

# Default Kibana configuration for docker target
# 根据自己实际IP修改elasticsearch地址
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://192.168.94.129:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true

4)启动容器

docker run -d \
  --name=kibana \
  -p 5601:5601 \
  -v /etc/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml \
  kibana:7.10.1

七 Logstash 环境部署

1)下载logstash镜像

#注意要与ES版本一致
docker pull logstash:7.10.1

2)创建logstash容器

#创建logstash本地挂载目录
mkdir -p /etc/logstash

#docker 创建容器
docker run -d --name logstash --privileged=true -v /etc/logstash/:/etc/logstash/pipeline/  logstash:7.10.1

3)设置文件写入权限

chown 1000:1000 /etc/logstash/

4)上传mysql连接包到/etc/logstash/

5)在/etc/logstash/下创建文件logstash.conf,内容如下

input {
  jdbc {
  #设置mysql连接包,地址是容器内的地址
  jdbc_driver_library => "/etc/logstash/pipeline/mysql-connector-java-8.0.11.jar"
  #设置mysql驱动
  jdbc_driver_class => "com.mysql.jdbc.Driver"
  #设置mysql连接地址,注意必须是ip,不能是localhost
  jdbc_connection_string => "jdbc:mysql://192.168.94.129:3306/xc_content"
  #数据库帐号
  jdbc_user => "root"
  #数据库密码
  jdbc_password => "root"
  #是否分页查询
  jdbc_paging_enabled => "true"
  #分页大小
  jdbc_page_size => "50000"
  #是否记录最后值
  record_last_run => true
  #是否使用列值
  use_column_value => "true"
  #追踪的列名
  tracking_column => "id"
  #追踪列的数据类型
  tracking_column_type => "numeric"
  #最后值记录在哪里
  last_run_metadata_path => "/etc/logstash/pipeline/logstash_metadata"
  #执行查询的sql语句
  statement => "select * from course_base where id > :sql_last_value"
  #定时配置
  schedule => "*/5 * * * * *"
  }
}

output {
  elasticsearch {
  #ES的ip地址和端口
  hosts => "192.168.94.129:9200"
  #ES的索引名称
  index => "xc_course"
  #文档id
  document_id => "%{id}"
  }
  stdout {
   #日志输出
   codec => json_lines
  }
}

6)进入容器

docker exec -it logstash /bin/bash

7)修改容器内配置文件

#进入config文件
cd config

#更改logstash.yml文件
vi logstash.yml

logstash.yml 内容修改为下面的内容

http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://192.168.94.129:9200" ]

8)修改容器内配置文件

#进入config文件夹
cd config

#更改pipelines.yml文件
vi pipelines.yml
path.config: "/etc/logstash/pipeline/mysql-es-xc.conf"

9)退出并重启容器

#退出容器
exit

#重启容器
docker restart logstash

PS: Logstash 时区不匹配的设置

# 查看当前时间的时区
# 容器外查询
docker exec logstash date

# 容器内查询(以root权限进入容器中)
doker exec -it -u root logstash /bin/bash 

date -R

#修改时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

#退出容器,并重启
exit
docker restart logstash

八 RockMQ 环境部署

1)下载黑马程序员的RocketMQ镜像

docker pull registry.cn-hangzhou.aliyuncs.com/itheima_wzh/heimarocketmq:1.0

2)宿主机下创建目录

mkdir -p /usr/soft/rocketmq/namesrv/logs

mkdir -p /usr/soft/rocketmq/namesrv/store

mkdir -p /usr/soft/rocketmq/brokersrv/logs

mkdir -p /usr/soft/rocketmq/brokersrv/store

mkdir -p /usr/soft/rocketmq/brokersrv/conf

3)创建并编辑broker配置文件

cd /usr/soft/rocketmq/brokersrv/conf

vi broker.conf

#配置文件内容
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = 192.168.94.129

4)启动nameserver

docker run -d -p 9876:9876 -v /usr/soft/rocketmq/namesrv/logs:/root/logs -v /usr/soft/rocketmq/namesrv/store:/root/store --name rmqnamesrv -e "MAX_POSSIBLE_HEAP=100000000" registry.cn-hangzhou.aliyuncs.com/itheima_wzh/heimarocketmq:1.0 sh mqnamesrv

5)启动broker

docker run -d -p 10911:10911 -p 10909:10909 -v  /usr/soft/rocketmq/brokersrv/logs:/root/logs -v  /usr/soft/rocketmq/brokersrv/store:/root/store -v  /usr/soft/rocketmq/brokersrv/conf/broker.conf:/opt/rocketmq-4.8.0/conf/broker.conf --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" registry.cn-hangzhou.aliyuncs.com/itheima_wzh/heimarocketmq:1.0 sh mqbroker -c /opt/rocketmq-4.8.0/conf/broker.conf

RocketMQ 可视化控制台Docker 部署

1)下载Rocketmq-console镜像

docker pull apacherocketmq/rocketmq-console:2.0.0

2)宿主机下创建目录

mkdir -p /usr/soft/rocketmq/rocketmq-console/logs

3)启动Rockermq-console

docker run -d  --name rocketmq-console -v /usr/soft/rocketmq/rocketmq-console/logs:/root/logs -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.94.129:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8181:8080 -t apacherocketmq/rocketmq-console:2.0.0

九 YApi 环境部署

YApi 的安装需要安装两个环境:

1.MongoDB(YApi使用的数据库)

2.YApi 服务

Yapi 官方github地址:https://github.com/YMFE/yapi

MongoDB 环境安装

拉取镜像

docker pull mongo:4.4

安装容器

docker run -d \
  --name mongo-yapi \
  -v mongo-data:/usr/soft/mongo/data \
  -p 27017:27017 \
  -e MONGO_INITDB_ROOT_USERNAME=admin \
  -e MONGO_INITDB_ROOT_PASSWORD=anoyi \
  mongo:4.4

YApi 环境安装

拉取镜像

docker pull registry.cn-hangzhou.aliyuncs.com/anoyi/yapi

创建 YApi 的工作目录

#创建目录
mkdir -p /usr/soft/yapi/config
#进入到目录中
cd /usr/soft/yapi/config

在此目录中创建 yapi的配置文件 config.json ,内容如下:

{
  "port": "3000",
  "adminAccount": "admin@anoyi.com",
  "timeout":120000,
  "db": {
    "servername": "mongo",
    "DATABASE": "yapi",
    "port": 27017,
    "user": "admin",
    "pass": "anoyi",
    "authSource": "admin"
  }
}

在 /usr/soft/yapi/config 中执行下面命令来初始化 yapi 的数据库索引及管理员账号

docker run -it --rm \
  --link mongo-yapi:mongo \
  --entrypoint npm \
  --workdir /yapi/vendors \
  -v $PWD/config.json:/yapi/config.json \
  registry.cn-hangzhou.aliyuncs.com/anoyi/yapi \
  run install-server

初始化后便可以得到 yapi 的默认账号:账号名:“admin@anoyi.com”,密码:“ymfe.org”

在 /usr/soft/yapi/config 中执行下面命令来创建容器

docker run -d \
  --name yapi \
  --link mongo-yapi:mongo \
  --workdir /yapi/vendors \
  -p 3000:3000 \
  -v $PWD/config.json:/yapi/config.json \
  registry.cn-hangzhou.aliyuncs.com/anoyi/yapi \
  server/app.js

创建好后,便可以通过浏览器地址进行访问:http://ip地址:3000

十 Redis的安装

拉取镜像:

docker pull redis:6.0

创建redis的目录

mkdir -p /usr/soft/redis/config

mkdir -p /usr/soft/redis/data

创建容器:

docker run \
-p 6379:6379 \
-v /usr/soft/redis/data:/data \
-v /usr/soft/redis/config/redis.conf:/etc/redis/redis.conf \
--privileged=true \
--name redis6379 \
-d redis:6.0 redis-server /etc/redis/redis.conf

命令解释:

-p 6379:6379 \ # 端口映射 宿主机:容器
-v $PWD/data:/data: \ # 映射数据目录 rw 为读写
-v $PWD/conf/redis.conf:/etc/redis/redis.conf \ # 挂载配置文件 ro 为readonly
–privileged=true \ # 给与一些权限
–name redis:6379 \ # 给容器起个名字
-d redis redis-server /etc/redis/redis.conf # deamon 运行容器 并使用配置文件启动容器内的 redis-server