【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 ...
随机推荐
- Polya 定理 学习笔记
群 群的定义 我们定义,对于一个集合 \(G\) 以及二元运算 \(\times\),如果满足以下四种性质,那我们就称 \((G,\times)\) 为一个群. 1. 封闭性 对于 \(a\in G, ...
- 洛谷4322 SHOI2014 三叉神经树(LCT+思维)
好久之前做的题了QWQ 现在来补一发博客 一道神仙题啊..qwq 首先,我们可以看出来,我们如果对于每个点维护一个\(val\),表示他的直系儿子中有几个表现为1的. 那么\(val[x]>&g ...
- spoj839 Optimal Marks(最小割,dinic)
题目大意: 给你一个无向图\(G(V,E)\). 每个顶点都有一个int范围内的整数的标记. 不同的顶点可能有相同的标记. 对于边\((u,v)\),我们定义\(Cost(u,v)=mark [u]\ ...
- FastAPI 学习之路(十四)响应模型
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...
- time_formatter攻防世界学习
time_formatter 前言:这题说实话分析量蛮大的,首先是程序内壁比较绕,而且调用了之前许多没有见到的函数---如snprintf_che,以及strsup(好像打错了),getegid(), ...
- reactnative实现qq聊天消息气泡拖拽消失效果
前言(可跳过) 我在开发自己的APP时遇到了一个类似于qq聊天消息气泡拖拽消息的需求,因为在网上没有找到相关的组件,所以自己动手实现了一下 需求:对聊天消息气泡拖拽到一定长度松开时该气泡会消失(可自行 ...
- Spring事务不生效问题
事务未生效可能造成严重的数据不一致性问题,因而保证事务生效至关重要.Spring事务是通过Spring aop实现的,所以不生效的本质问题是spring aop没生效,或者说没有代理成功,所以有必要了 ...
- DeWeb 简介
DeWeb是一个可以直接将Delphi程序快速转换为网页应用的工具! 使用DeWeb, 开发者不需要学习HTML.JavaScript.Java.PHP.ASP.C#等新知识,用Delphi搞定一切. ...
- SpringMVC注解知识点
SpringMVC注解知识点 SpringMVC原生知识点: 上一篇: https://www.cnblogs.com/yiur-bgy/p/14088883.html 注解版 1.新建一个Moudl ...
- 深入探索 Linux listen() 函数 backlog 的含义
1:listen()回顾以及问题引入 2:正确的解释 3:实验验证 1:listen()回顾以及问题引入 listen()函数是网络编程中用来使服务器端开始监听端口的系统调用,首先来回顾下listen ...