【TcaplusDB知识库】如何部署TcaplusDB Local 版
【TcaplusDB知识库】部署TcaplusDB Local 版的准备操作
1. 版本介绍
TcaplusDB Local版,是为用户提供的一个满足本地开发调试的版本(基于Docker部署的可下载版本),相比腾讯云 TcaplusDB 版,本地版可以方便用户在无法连通云环境的开发环境进行代码调试,同时在功能上和腾讯云版本无差别。此文档主要介绍用户如何在本地开发环境部署 TcaplusDB 本地 Docker 环境。
部署过程中如遇到问题,可先查阅7. 常见问题列表,列表没有解决方案时,可联系TcaplusDB团队协助解决。
2. 版本兼容性说明<div id="2"></div>
目前已经在下列环境做过兼容性测试,建议尽量在进行过兼容性测试的环境上部署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,设置方法参见附件3。
如果部署机器是Debian(或者Debian虚拟机),则应当正确设置vsyscall,设置方法参见附件4。
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 安装方法参见附录1 |
SELinux Settings | Disabled 关闭方法参见附录2 |
TcaplusDB的一些进程依赖于 mdadm, 如果部署机器默认没有安装,就需要手动安装一下。
#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镜像库,如出现对应的镜像信息,即表示导入成功。
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监听的端口及说明见附件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>:<port>。基中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。 |
6. 附录
6.1. 安装Docker<div id="6-1"></div>
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<div id="6-2"></div>
查看SELinux状态。
getenforce
临时关闭。
setenforce 0
永久关闭。编辑/etc/selinux/config文件,设置SELINUX=Disabled,重启机器。
6.3. 设置vsyscall(Windows + WSL2)<div id="6-3"></div>
在Windows 10 操作系统的系统盘- 用户 - <用户名>目录下,修改.wslconfig文件(如C:\Users\test\.wslconfig),若没有这个文件,则需要先创建。
在其中修改/添加如下内容:
[wsl2]
kernelCommandLine = vsyscall=emulate
6.4. 设置vsyscall(Debian)<div id="6-4"></div>
参见说明。
6.5. 容器内监听的端口及说明<div id="6-5"></div>
端口 | 组件 | 说明 |
---|---|---|
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网络<div id="6-6"></div>
执行下面的命令创建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. 常见问题<div id="7"></div>
参见常见问题文档。
TcaplusDB是腾讯出品的分布式NoSQL数据库,存储和调度的代码完全自研。具备缓存+落地融合架构、PB级存储、毫秒级时延、无损水平扩展和复杂数据结构等特性。同时具备丰富的生态、便捷的迁移、极低的运维成本和五个九高可用等特点。客户覆盖游戏、互联网、政务、金融、制造和物联网等领域。
【TcaplusDB知识库】如何部署TcaplusDB Local 版的更多相关文章
- [TcaplusDB知识库]数据库支撑底盘引擎计算层介绍
在上次的TcaplusDB知识库中,TcaplusDB君为大家讲解了TcaplusDB所用的基于HASH表的Key-value存储引擎TXHDB.存储引擎作为数据库的支撑底盘,其重要性无可置疑,而在本 ...
- 「TcaplusDB知识库」概念(表、键、记录、索引)
TcaplusDB作为一款NoSQL数据库,语法与传统的SQL关系库有所差异.本文将详细介绍TcaplusDB表.记录.索引这三个数据库中常用术语在TcaplusDB中的概念与意义. 术语\概念 ...
- CentOS7.2非HA分布式部署Openstack Pike版 (实验)
部署环境 一.组网拓扑 二.设备配置 笔记本:联想L440处理器:i3-4000M 2.40GHz内存:12G虚拟机软件:VMware® Workstation 12 Pro(12.5.2 build ...
- CentOS7.4安装部署openstack [Liberty版] (二)
继上一篇博客CentOS7.4安装部署openstack [Liberty版] (一),本篇继续讲述后续部分的内容 一.添加块设备存储服务 1.服务简述: OpenStack块存储服务为实例提供块存储 ...
- CentOS7.4安装部署openstack [Liberty版] (一)
一.OpenStack简介 OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目. OpenStack是一个 ...
- dokcer部署code-server web版vscode
#dokcer部署code-server web版vscode codercom/code-server:latest不支持插件在线安装 codercom/code-server:v2目前为最新版1. ...
- 以windows服务方式快速部署免安装版Postgres数据库
目录 以windows服务方式快速部署免安装版Postgres数据库 1.下载Postgresql数据库免安装包 2.安装环境准备及验证 解压文件 测试环境依赖 3.创建并初始化数据目录 创建数据目录 ...
- [TcaplusDB知识库]TcaplusDB客户端及常用命令
数据库大都支持命令行访问,TcaplusDB也不例外,通过安装TcaplusDB客户端,您可以方便快捷地从命令行管理与访问数据库. TcaplusDB客户端 首先在 TcaplusServiceApi ...
- 在自己的服务器上部署 GitLab 社区版
GitLab 简介 因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.这篇文章是在 Gitlab 7.4 的环境下配置的,相关内容可能已经过时. 后续做了一次迁移,将 Gi ...
随机推荐
- Python Pandas的使用 !!!!!详解
Pandas是一个基于python中Numpy模块的一个模块 Python在数据处理和准备⽅⾯⼀直做得很好,但在数据分析和建模⽅⾯就差⼀些.pandas帮助填补了这⼀空⽩,使您能够在Python中执 ...
- Redis 深入
1.缓存更新 一般来说缓存的更新有两种情况: 先删除缓存,再更新数据库. 先更新数据库,再删除缓存. 这两种情况在业界,大家对其都有自己的看法.具体怎么使用还得看各自的取舍.当然肯定会有人问为什么要删 ...
- 【UE4 C++ 基础知识】<4> 枚举 Enum、结构体 Struct
枚举 UENUM宏搭配BlueprintType可以将枚举暴露给蓝图,不使用的话,仅能在C++使用 //定义一个原生enum class enum class EMyType { Type1, Typ ...
- vue3.x异步组件
在大型应用中,我们可能需要将应用分割成小一些的代码块,并且只在需要的时候才从服务器加载一个模块 vue2.x 曾经简单的异步组件 components: { AsyncComponent: () =& ...
- DevOps 时代的高效测试之路
10 月 22 日,2021 届 DevOps 国际峰会在北京顺利召开,来自国内外的顶级技术专家共同畅谈 DevOps 体系与方法.过程与实践.工具与技术.CODING 测试及研发流程管理产品总监程胜 ...
- Uniapp云打包生成apk下载链接
使用uni[]()app云打包生成安装包下载链接 manifest.json 中配置自动获取appid manifest.json中配置app 图标 按教程生成.keystore证书 使用云打包生成安 ...
- rabbitmq死信队列和延时队列的使用
死信队列&死信交换器:DLX 全称(Dead-Letter-Exchange),称之为死信交换器,当消息变成一个死信之后,如果这个消息所在的队列存在x-dead-letter-exchange ...
- Noip模拟39 2021.8.14
T1 打地鼠 都切掉了的简单题 1 #include<bits/stdc++.h> 2 #define int long long 3 using namespace std; 4 con ...
- 模拟赛18 T1 施工 题解
前言: 真的是不容易啊.这个题在考场上想到了最关键的性质,但是没写出来. 后来写出来,一直调,小错不断. 没想到改的最后一个错误是两个int 乘起来爆了int 其实最后我还是觉得复杂度很假.\(n^2 ...
- Python课程笔记(八)
一些简单的文件操作,学过linux的话理解感觉不会很难.课程代码 一.OS 目录方法 这个模块提供了一种方便的使用操作系统函数的方法 函数 说明 os.mkdir("path") ...