temporal集群化--TiDB测试
TiDB
介绍
详见:
- 介绍: https://docs.pingcap.com/zh/tidb/stable/overview .
- 架构: https://docs.pingcap.com/zh/tidb/stable/tidb-architecture .
sql兼容性
与mysql语法兼容性差, 详见 https://docs.pingcap.com/zh/tidb/stable/mysql-compatibility .
手工部署TiDB标准集群
准备
硬件
3 台 云主机 8C16G Helix 84r with kernel 4.18.0-425.19.2.3.g75f4bb8fb9a0.el8.x86_64 tidb部署环境要求: https://docs.pingcap.com/zh/tidb/stable/hardware-and-software-requirements , 但是部分系统不保证生产环境保障.
软件
docker image(pingcap/tidb:v6.5.9) from hub.docker.com retag to 172.20.16.139:5000/tidb:v6.5.9
部署
先查看docker image页面的文档: https://hub.docker.com/r/pingcap/tidb . 再了解tidb部署拓扑说明: https://docs.pingcap.com/zh/tidb/stable/minimal-deployment-topology . 并无对应的docker image部署的相关内容, 暂时无法借助于docker来部署TiDB. 只能使用官方文档对应的tiup工具来部署tidb集群了.
sh
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
source .bash_profile
which tiup
tiup cluster
tiup --binary cluster
tiup mirror clone tidb-community-server-8.0.0-linux-amd64 8.0.0 --os=linux --arch=amd64
tar czvf tidb-community-server-8.0.0-linux-amd64.tar.gz tidb-community-server-8.0.0-linux-amd64
sh tidb-community-server-8.0.0-linux-amd64/local_install.sh && \
source /home/tidb/.bash_profile
tiup cluster template > topology.yaml
tiup cluster check ./topology.yaml
# 需要安装 numactl
tiup cluster check ./topology.yaml --apply
tiup cluster deploy tidb-test v8.0.0 ./topology.yaml
tiup cluster start tidb-test --init
# 遇到错误, 需要cpu支持avx2指令
# 打开云主机所在的云平台, 设置cpu mode为host-passthrough,然后重启云主机.
# 重新init tidb, 输出了root password, 需要记住
# The new password is: 'd96S4b*K^_1a@XQ87N'.
tiup cluster list
tiup cluster display tidb-test
# 启停cluster
tiup cluster start tidb-test --init
tiup cluster stops t tidb-test
# 通过mysql client 访问 tidb server 4000端口, 连接成功;对接temporal
初始化temporal相关数据库
使用temporal admin tools 1.19.1 docker image.
docker pull 172.20.16.139:5000/temporal-admin-tools:1.19.1
docker run -d -e TEMPORAL_CLI_ADDRESS=172.31.10.234:7233 --name=temporal-admin-tools 172.20.16.139:5000/temporal-admin-tools:1.19.1
docker exec -it temporal-admin-tools bash
temporal-sql-tool --ep 172.31.10.234 -u root -p 4000 --pl mysql --pw d96S4b*K^_1a@XQ87N --db temporal create
temporal-sql-tool --ep 172.31.10.234 -u root -p 4000 --pl mysql --pw d96S4b*K^_1a@XQ87N --db temporal setup-schema -v 0.0
temporal-sql-tool --ep 172.31.10.234 -u root -p 4000 --pl mysql --pw d96S4b*K^_1a@XQ87N --db temporal update-schema -d ./schema/mysql/v57/temporal/versioned/
temporal-sql-tool --ep 172.31.10.234 -u root -p 4000 --pl mysql --pw d96S4b*K^_1a@XQ87N --db temporal_visibility create
temporal-sql-tool --ep 172.31.10.234 -u root -p 4000 --pl mysql --pw d96S4b*K^_1a@XQ87N --db temporal_visibility setup-schema -v 0.0
temporal-sql-tool --ep 172.31.10.234 -u root -p 4000 --pl mysql --pw d96S4b*K^_1a@XQ87N --db temporal_visibility update-schema -d ./schema/mysql/v57/visibility/versioned/部署temporal集群
docker run -d -p 7231-7235:7231-7235 -p 6933-6935:6933-6935 -p 6939:6939 -p 7239:7239 -e DB=mysql -e DB_PORT=4000 -e MYSQL_USER=root -e MYSQL_SEEDS=172.31.10.234 -e MYSQL_PWD=d96S4b*K^_1a@XQ87N -e LOG_LEVEL=info -e BIND_ON_IP=0.0.0.0 -e TEMPORAL_BROADCAST_ADDRESS=172.31.10.234 -l kompose.volume.type=configMap --name=temporal-234 172.20.16.139:5000/temporal-auto-setup:1.19.1
# 因为日志一直print error, 所以只部署一个节点, 先观察.
# 一直持续的输出错误日志, 大概率是没法用的.部署temporal ui
docker run -d -p 7230:8080 -e TEMPORAL_ADDRESS=172.31.10.234:7233 -e TEMPORAL_CORS_ORIGINS=http://172.31.10.234:3000 --name=temporal-ui 172.20.16.139:5000/temporal-ui:2.14.0
# ui正常, 可能是没有任何client连接temporal.检查temporal集群环境
docker exec temporal-admin-tools tctl admin cluster describe
# 可以看到单节点temporal cluster信息