ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【深入理解TcaplusDB技术】如何准备部署TcaplusDB Local 版?

2022-05-17 10:31:57  阅读:87  来源: 互联网

标签:容器 部署 TcaplusDB 端口 -- Docker Local docker


【深入理解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>

参见常见问题文档。


img

TcaplusDB是腾讯出品的分布式NoSQL数据库,存储和调度的代码完全自研。具备缓存+落地融合架构、PB级存储、毫秒级时延、无损水平扩展和复杂数据结构等特性。同时具备丰富的生态、便捷的迁移、极低的运维成本和五个九高可用等特点。客户覆盖游戏、互联网、政务、金融、制造和物联网等领域。

标签:容器,部署,TcaplusDB,端口,--,Docker,Local,docker
来源: https://www.cnblogs.com/TcaplusDBers/p/16278030.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有