【TcaplusDB知识库】如何部署TcaplusDB|【TcaplusDB知识库】如何部署TcaplusDB Local 版
【TcaplusDB知识库】部署TcaplusDB Local 版的准备操作
1. 版本介绍
TcaplusDB Local版,是为用户提供的一个满足本地开发调试的版本(基于Docker部署的可下载版本),相比腾讯云 TcaplusDB 版,本地版可以方便用户在无法连通云环境的开发环境进行代码调试,同时在功能上和腾讯云版本无差别。此文档主要介绍用户如何在本地开发环境部署 TcaplusDB 本地 Docker 环境。
部署过程中如遇到问题,可先查阅7. 常见问题列表,列表没有解决方案时,可联系TcaplusDB团队协助解决。
2. 版本兼容性说明
目前已经在下列环境做过兼容性测试,建议尽量在进行过兼容性测试的环境上部署TcaplusDB的Local版。
已完成兼容测试的环境 |
---|
Windows10 + WSL2(CentOS 7) |
MAC + Parallels + Debian |
CentOS 7 |
TLinux1.2/TLinux2.2 |
在未进行兼容性测试的环境部署TcaplusDB Local版,可能会出现一些未知兼容性问题。
3. 版本部署环境要求
- 部署机器的CPU应当不少于4核,内存总容量不少于8G,启动TcaplusDB Local版容器之前,内存的空闲容量不少于6G。
- 部署机器磁盘大小建议 100G,存放Docker容器的磁盘可用空间应当大于 50GB。
- 部署机器需要提前安装Docker。
- 创建Docker容器的用户必须具有通过sudo执行docker命令的权限。
- 部署机器应当关闭了SELinux。
- 如果部署机器是Windows + WSL2,则应当正确设置vsyscall,设置方法参见附件3。
- 如果部署机器是Debian(或者Debian虚拟机),则应当正确设置vsyscall,设置方法参见附件4。
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 安装方法参见附录1 |
SELinux Settings | Disabled 关闭方法参见附录2 |
#centos
yum install -y mdadm
#debian
apt-get update
apt-get install -y mdadm
4.2. 检查Docker是否启动 登录部署机器。
检查Docker服务是否安装并已正常启动。Docker的安装参见附录1。
# 查看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镜像库,如出现对应的镜像信息,即表示导入成功。
REPOSITORYTAGIMAGE IDCREATEDSIZE
tcaplusdb-local3.53.134c03389c8d33 days ago6.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监听的端口及说明见附件5。 |
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网络的创建方法参考附录6。 |
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运维连接 此部分请参考:使用TcaplusDB OMS控制台。
OMS的登录地址为http://:。基中host为TCAPLUS_CONTAINER_PUBLIC_IP(如果有指定)或者母机的IP。port为容器的80端口映射到母机的端口号。
登录OMS的默认用户名为tcaplus,密码为启动容器的时候指定的TCAPLUS_CONTAINER_OMS_PASSWORD参数值。
4.2. 通过SDK方式连接 此部分请参考: TcaplusDB入门
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。 |
# 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服务端口 |
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后面带的就是这个网络名。
文章图片
【【TcaplusDB知识库】如何部署TcaplusDB|【TcaplusDB知识库】如何部署TcaplusDB Local 版】TcaplusDB是腾讯出品的分布式NoSQL数据库,存储和调度的代码完全自研。具备缓存+落地融合架构、PB级存储、毫秒级时延、无损水平扩展和复杂数据结构等特性。同时具备丰富的生态、便捷的迁移、极低的运维成本和五个九高可用等特点。客户覆盖游戏、互联网、政务、金融、制造和物联网等领域。
推荐阅读
- 宽容谁
- 我要做大厨
- 增长黑客的海盗法则
- 画画吗()
- 2019-02-13——今天谈梦想()
- 远去的风筝
- 三十年后的广场舞大爷
- 叙述作文
- 20190302|20190302 复盘翻盘
- 学无止境,人生还很长