1. 版本介绍
部署过程中如遇到问题,可先查阅
2. 版本兼容性说明
目前已经在下列环境做过兼容性测试,建议尽量在进行过兼容性测试的环境上部署TcaplusDB的Local版。
已完成兼容测试的环境 |
---|
Windows10 + WSL2(CentOS 7) |
MAC + Parallels + Debian |
CentOS 7 |
TLinux1.2/TLinux2.2 |
TcaplusDB Local版,要求是在Linux环境以Docker容器的方式运行,如果机器为Windows或者MAC,则先在这些系统上运行Linux虚拟机或者WSL(Windows),再在虚拟机中拉起Docker容器。
在未进行兼容性测试的环境部署TcaplusDB Local版,可能会出现一些未知兼容性问题。
3. 版本部署环境要求
-
部署机器的CPU应当不少于4核,内存总容量不少于8G,启动TcaplusDB Local版容器之前,内存的空闲容量不少于6G。
-
部署机器磁盘大小建议 100G,存放Docker容器的磁盘可用空间应当大于 50GB。
-
部署机器需要提前安装Docker。
-
创建Docker容器的用户必须具有通过sudo执行docker命令的权限。
-
部署机器应当关闭了SELinux。
-
如果部署机器是Windows + WSL2,则应当正确设置vsyscall,设置方法参见
-
如果部署机器是Debian(或者Debian虚拟机),则应当正确设置vsyscall,设置方法参见
4. 版本部署
4.1. 部署环境检查和准备
下载环境扫描脚本。
wget https://tcaplus-tools-1301716906.cos.ap-guangzhou.myqcloud.com/tcaplus_tools.sh
运行环境扫描脚本,扫描环境资源,并检查是否满足TcaplusDB Local版最低运行要求。
sh tcaplus_tools.sh check_environment
环境扫描结果样例:
Environment Information:
OS : Tencent tlinux release 2.2 (Final)
CPU Arch : x86_64
CPU Cores : 8
Memory Total (MB) : 15787
Memory Free (MB) : 1025
Memory Cached (MB) : 4542
Disk Free (MB) : 15787
Docker Version : Docker version 18.09.7, build 2d0083d
LDD Version : ldd (GNU libc) 2.17
GCC Version : gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4)
G++ Version : g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4)
Go Lang Version : Not found
Java Version : Not found
Python Version : Python 2.7.5
SELinux Setting : Disabled
环境扫描结果各项指标参考值:
指标 | 参考值 |
---|---|
OS | 参见 |
CPU Arch | x86_64 |
CPU Cores | >= 4 |
Memory Total(MB) | >= 8192 (8G) |
Memory Free(MB) | >= 6144 (6G) |
Disk Free(MB) | >= 51200 (50G) |
Docker Version | 建议 >= Docker 1.13.1 或者 >= Docker CE 18.09.7 安装方法参见 |
SELinux Settings | Disabled 关闭方法参见 |
TcaplusDB的一些进程依赖于 mdadm, 如果部署机器默认没有安装,就需要手动安装一下。
#centos
yum install -y mdadm
#debian
apt-get update
apt-get install -y mdadm
4.2. 检查Docker是否启动
登录部署机器。
检查Docker服务是否安装并已正常启动。Docker的安装参见
# 查看Docker服务状态,检查服务是否已经启动
sudo service docker status
# 启动Docker服务命令
sudo service docker start
4.3. 下载并导入Local版镜像
下载TcaplusDB Local版镜像。
wget https://tcaplus-docker-1301716906.cos.ap-guangzhou.myqcloud.com/tcaplusdb-local-3.53.1.tar.gz
导入TcaplusDB Local版镜像到本地Docker镜像库。
sudo docker load -i tcaplusdb-local-3.53.1.tar.gz
查看本地Docker镜像库,检查镜像是否导入成功。
sudo docker images
本地Docker镜像库,如出现对应的镜像信息,即表示导入成功。
REPOSITORY TAG IMAGE ID CREATED SIZE
tcaplusdb-local 3.53.1 34c03389c8d3 3 days ago 6.74GB
4.4. 创建Local版容器
容器创建命令样例:
sudo docker run -itd --shm-size=2G --privileged -e TCAPLUS_CONTAINER_PUBLIC_IP="x.x.x.x" -e TCAPLUS_CONTAINER_OMS_PASSWORD="***" -p 80:80 -p 9999:9999 -p 13755-13765:13755-13765 --name test tcaplusdb-local:3.53.1
客器启动参数说明:
参数 | 说明 |
---|---|
--shm-size=2G | 【可选】指定容器的共享内存大小,最低要求为2G,当未指定或者容器启动的时候检测到共享内存小于2G时,会强制设置成最小值2G。 |
--privileged | 【必选】指定以特权模式启动容器,TcaplusDB Local版启动时会涉及一些系统参数的修改,如果不以特权模式启动容器,会导致启动失败。 |
--name test | 【必选】指定容器名称。后续可以直接将该名称作为查看容器日志,启停容器的参数。 |
-e TCAPLUS_CONTAINER_PUBLIC_IP="x.x.x.x" | 【可选】指定TcaplusDB容器对外提供服务的IP,如果需要在容器外访问TcaplusDB,则需要设置,该值一般为母机的对外IP。 |
-e TCAPLUS_CONTAINER_OMS_PASSWORD="***" | 【必选】指定TcaplusDB OMS默认用户tcaplus的登录密码。出于安全考虑,TcaplusDB容器并不提供默认登录密码,需要用户在容器启动的时候指定。 【说明】TcaplusDB服务启动之后,用户可以通过tcaplus用户名和该密码登录TcaplusDB OMS页面。 |
-p 80:80 -p 9999:9999 -p 13755-13765:13755-13765 | 【可选】以bridge网络模式运行容器的时候,如果需要在容器访问服务,则需要通过-p将容器内的端口与母机的端口建立映射关系,在容器外,通过母机的端口访问即可。 【说明】目前TcaplusDB Local版需要对外暴露的端口主要有80,9999,13755-13765,TcaplusDB监听的端口及说明见 |
tcaplusdb-local:3.53.1 | 【必选】镜像名和Tag。 |
--cpus=4 | 【可选】如果有必要,可使用该参数指定容器可使用的CPU核数,参数值应当大于等于4。 |
--memory=8G | 【可选】如果有必要,可使用该参数指定容器可使用的内存容量,参数值应当大于等于8G。 |
--storage-opt size=50G | 【可选】如果有必要,可使用该参数指定容器可使用的磁盘容量,参数值应当大于等于50G。 【注意】部分Docker版本,默认情况下,容器可使用的磁盘容量为10G,会出现服务运行一段时间后,磁盘很快就满的情况,此时应当通过该参数增加磁盘容量。 |
--network 自定义网络名 | 【可选】在一些环境下,可能存在母机网段与容器默认网段冲突的情况,此时应当创建自定义Docker网络,并通过该参数指定容器使用该网络,避免网络冲突。 【说明】Docker容器通常默认为容器网段为192.168或者172.17,当母机正好也处在这些网段时,应该创建一个与母机网段不同的Docker网络,如母机的网段为172.17,则可创建一个192.168网段的Docker网络,并在创建容器时,指定使用该网络。Docker网络的创建方法参考 |
更多容器参数及说明参见:
sudo docker run --help
容器创建后会自动启动TcaplusDB服务,此时可通过“docker logs”命令查看服务启动日志,以了解服务启动进度和状态,通常服务的启动时间大约为30秒。
当容器启动日志最后出现“Run Success”字样时,即表示服务已经启动成功,可提供服务了。
sudo docker logs 容器名
4.5. 进入Local版容器
如果有需要进入容器查看信息或者定位问题,可执行下面的命令进入。
sudo docker exec -it 容器名 /bin/bash
4.6. 停止Local版容器
如果容器使用完毕,需要暂时关闭,释放资源,可以执行下面的命令关闭。
sudo docker container stop --time=60 容器名
注意,由于TcaplusDB进程退出需要一定时间,如果强制关闭,会导致数据引擎文件损坏,进而影响容器的再次启动。这里需要指定显示指定关闭超时时间为60秒,防止TcaplusDB进程还没正常关闭退出,就被Docker强制杀死的情况(Docker默认关闭超时时间10秒,时间到了之后,容器如果还未关闭退出,就会被强制关闭)。
4.7. 启动Local版容器
针对已经关闭的容器,如果想再次拉起服务,可以执行下面的命令启动。
sudo docker container start 容器名
4. 版本测试
版本部署完成后,可通过SDK,OMS等方式连接TcaplusDB,进行数据读写或者集群管理。
TcaplusDB Local版默认创建了测试业务,游戏区和表,可登录Tcaplus OMS查看相关信息。
4.1. 通过OMS运维连接
此部分请参考:
OMS的登录地址为http://
登录OMS的默认用户名为tcaplus,密码为启动容器的时候指定的TCAPLUS_CONTAINER_OMS_PASSWORD参数值。
4.2. 通过SDK方式连接
此部分请参考:
5. 版本下载
版本号 | 下载链接 | 功能说明 |
---|---|---|
3.51.1 | 基线版本,包含Tcaplus 3.51.1全功能集。 API:C++/Go/Java SDK,Web Service,RESTful,CGI。 | |
3.53.1 | 增加标准SQL访问接口,提供JDBC Driver,C++ Driver。 |
6. 附录
6.1. 安装Docker
Docker 安装一般通过系统命令来安装,如 yum、apt-get 等,以 CentOS7举例,安装方式如下:
# CentOS 7环境,CVM实例
yum install -y docker
# Debian 8.2环境
apt-get update
apt-get install -y docker-ce containerd.io
# CentOS 8环境,CVM实例,用dnf来安装
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
dnf repolist -v
dnf list docker-ce --showduplicates | sort -r
dnf install docker-ce --nobest
注意:在安装Docker过程中,注意镜像源的配置,可参考网上相关文档资料,配置成国内镜像源。
安装完Docker之后,可以用docker命令检查是否安装成功。
安装成功,则执行如下命令启动 docker 服务。
# 启动Docker服务
sudo service docker start
6.2. 关闭SELinux
查看SELinux状态。
getenforce
临时关闭。
setenforce 0
永久关闭。编辑/etc/selinux/config文件,设置SELINUX=Disabled,重启机器。
6.3. 设置vsyscall(Windows + WSL2)
在Windows 10 操作系统的系统盘- 用户 - <用户名>目录下,修改.wslconfig文件(如C:\Users\test\.wslconfig),若没有这个文件,则需要先创建。
在其中修改/添加如下内容:
[wsl2]
kernelCommandLine = vsyscall=emulate
6.4. 设置vsyscall(Debian)
参见
6.5. 容器内监听的端口及说明
端口 | 组件 | 说明 |
---|---|---|
21 | SFTP | FTP服务端口。 新搭建一个FTP,是为了解决tcm自带的传包功能速度慢的问题 |
80 | TcapOMS | OMS HTTP服务端口 |
443 | TcapOMS | OMS HTTPS服务端口 |
3306 | MySQL | MySQL数据库服务端口 |
4500 | Tcapdb | Tcapdb服务端口 |
6000 | Tcapcenter | Tcaplus Center服务端口 |
8899 | Tcenterd | Tcenterd服务端口 |
9010 | Tconnd | Tconnd服务端口 |
9017 | Tbuspp | Tbuspp服务端口 |
9020 | Tbuspp | Tbuspp服务端口 |
9200 | Elasticsearch | Elasticsearch服务端口 |
9300 | Elasticsearch | Elasticsearch服务端口 |
9898 | Tcapdir | Tcaplus Dir服务端口 |
9999 | Tcapdir | Tcaplus Dir服务端口 |
13755 | Tcaproxy | Tcaplus Proxy服务端口 |
13756 | Tcaproxy | Tcaplus Proxy服务端口 |
31001 | Tcaprestproxy | Tcaplus REST Proxy服务端口 |
36000 | SSH | SSH服务端口 |
45755 | Tcapsvr | Tcaplus Server服务端口 |
45760 | Tcapsvr | Tcaplus Server服务端口 |
46755 | Tcapsvr | Tcaplus Server服务端口 |
46760 | Tcapsvr | Tcaplus Server服务端口 |
6.6 创建Docker网络
执行下面的命令创建Docker网络。
sudo docker network create --driver=bridge --subnet=192.168.10.0/24 subnet_192_168_10
-
192.168.10.0/24为Docker网络网段及掩码定义。
-
subnet_192_168_10为Docker网络名,创建容器命令中--network后面带的就是这个网络名。
7. 常见问题
参见