TLQ-CN10.0.2.0 (TongLINK/Q-CN 集群)部署指引 (by lqw)

文章目录

安装准备

虚拟机部署

1.准备相关安装包

2.jdk版本要求17或以上。

部署zk集群

安装zk集群

每台服务器关闭防火墙后,解压安装包(以安装在home为例):

bash 复制代码
cd /home
tar -zvxf install_TLQ-CN-ALL_10.0.2.0.tar.gz
mv TLQ-CN zk
## 如果想要用普通用户安装,保险起见可以设置一下属组,其中这里的tlqcn就是普通用户,也就是本次使用的安装用户
chown -R tlqcn:tlqcn /home/zk
cd /home/zk/conf
vi zookeeper.conf

主要是配置以下内容:

bash 复制代码
dataDir=/home/zk/data
dataLogDir=/home/zk/logs
server.1=192.168.10.119:2888:3888;2181
server.2=192.168.10.120:2888:3888;2181
server.3=192.168.10.121:2888:3888;2181

如果 Zookeeper 与 BookKeeper 在同一台虚拟机上部署,metricsProvider.httpPort=自定义端口号,不要使用 8000

之后每台服务器或者虚拟机上新建刚刚配置的logs目录和data目录,新建myid,如下所示:

bash 复制代码
#节点 1:
echo 1 >/home/zk/data/myid
#节点 2:
echo 2 >/home/zk/data/myid
#节点 3:
echo 3 >/home/zk/data/myid
启动zk集群

弄好后分别在 3 个节点所在服务器的/home/zk 目录下运行以下命令启动 Zookeeper 节点:

bash 复制代码
cd /home/zk
bin/tong-daemon start zookeeper

启动后可以看看 这个日志文件有没有报错信息:

如果遇到这种报错(尤其是用jdk17的时候):

可以在conf目录的pulsar_env.sh和bkenv.sh里增加这一段代码:

bash 复制代码
if [[ $JAVA_MAJOR_VERSION -ge 17 ]]; then
  ZGC_OPTS="-XX:+UseZGC"
else
  ZGC_OPTS=""
fi


如果遇到这种报错:

确认以下几点即可

1.各个节点之间是否能telnet通对应的端口(日志里提示的是3888)

2.执行以下指令确认节点正常运行:

bash 复制代码
cd /home/zk
bin/tong zookeeper-shell
ls /

如下所示即为正常,可以ctrl +c退出。

原因:

集群里zk节点启动的时候,是会有启动的快慢的区别的,先启动的zk节点去识别其他节点的时候,如果没识别到,也会有这种报错,之后会重连进行识别。

如需停止 Zookeeper 节点,分别在 3 个节点所在机器的/home/zk 目录下运行以下命令停止 Zookeeper 节点:

bash 复制代码
cd /home/zk
bin/tong-daemon stop zookeeper
初始化元数据(zk)

在任意一台已部署 Zookeeper 的服务器上,进入/home/zk 目录,执行以下命令,初始化元数据:

bash 复制代码
bin/tong initialize-cluster-metadata \
--cluster tlq-cn \
--metadata-store zk:192.168.10.119:2181,192.168.10.120:2181,192.168.10.121:2181 \
--configuration-metadata-store zk:192.168.10.119:2181,192.168.10.120:2181,192.168.10.121:2181 \
--web-service-url http://192.168.10.119:8080,192.168.10.120:8080,192.168.10.121:8080 \
--broker-service-url pulsar://192.168.10.119:6650,192.168.10.120:6650,192.168.10.121:6650
关闭zk集群
bash 复制代码
cd /home/zk
bin/tong-daemon stop zookeeper

部署BookKeeper集群

安装BookKeeper集群

执行以下指令:

bash 复制代码
cd /home
tar -zvxf install_TLQ-CN-ALL_10.0.2.0.tar.gz
mv TLQ-CN bk
cd /home/bk/conf
#每个节点都要编辑
vi bookkeeper.conf
#找到以下配置进行配置

advertisedAddress=192.168.10.119
zkServers=192.168.10.119:2181,192.168.10.120:2181,192.168.10.121:2181
journalDirectory=/home/bk/data/journal	
ledgerDirectories=/home/bk/data/ledgers
prometheusStatsHttpPort=7000
httpServerEnabled=false
licenseIps=192.168.10.118:8888
licensePublicKey=

其中licensePublicKey得通过license server控制台获取秘钥。

初始化元数据(bk)

之后在 3 个节点中的任意一个节点的/home/bk 目录下执行 bin/bookkeeper shell metaformat 初始化元数

据,遇到提示按"y",只需执行一次。

输出结果:

启动BookKeeper
bash 复制代码
cd /home/bk
bin/tong-daemon start bookie

启动后可以分别在每个节点执行以下指令进行测试

bash 复制代码
bin/bookkeeper shell bookiesanity

如下图所示为测试成功:

停止 BookKeeper
bash 复制代码
cd /home/bk
bin/tong-daemon stop bookie

部署Brokers集群

安装Brokers集群
bash 复制代码
cd /home
tar -zvxf install_TLQ-CN-ALL_10.0.2.0.tar.gz
mv TLQ-CN broker
cd /home/broker/conf
vi broker.conf 
#检查和配置以下内容

metadataStoreUrl=zk:192.168.10.119:2181,192.168.10.120:2181,192.168.10.121:2181
configurationMetadataStoreUrl=zk:192.168.10.119:2181,192.168.10.120:2181,192.168.10.121:2181
brokerServicePort=6650
webServicePort=8080
advertisedAddress=192.168.10.121
clusterName=tlq-cn
licenseIps=192.168.10.118:8888
licensePublicKey=


启动 broker
bash 复制代码
cd /home/broker/
bin/tong-daemon start broke

检查节点(${clusterName}替换为配置文件里配置的集群名)

bash 复制代码
cd /home/broker
 bin/tong-admin brokers list ${clusterName}


停止 broker
bash 复制代码
cd /home/broker
bin/tong-daemon stop broker

zk集群可用性测试(需要把上面的zk+bk+broker安装完再测)

bash 复制代码
cd /home/zk
vi conf/client.conf
#检查和配置以下内容
webServiceUrl=http://192.168.10.119:8080,192.168.10.120:8080,192.168.10.121:8080
brokerServiceUrl=pulsar://192.168.10.119:6650,192.168.10.120:6650,192.168.10.121:6650

保存后在bin目录执行

bash 复制代码
cd /home/zk
bin/tong-client produce \
persistent://public/default/test \
-n 1 \
-m "Hello Pulsar"

另启一个窗口,执行

bash 复制代码
cd /home/zk
bin/tong-client consume \
persistent://public/default/test \
-n 100 \
-s "consumer-test" \
-t "Exclusive"
相关推荐
浮游本尊43 分钟前
Java学习第22天 - 云原生与容器化
java
JuiceFS1 小时前
从 MLPerf Storage v2.0 看 AI 训练中的存储性能与扩展能力
运维·后端
渣哥3 小时前
原来 Java 里线程安全集合有这么多种
java
间彧3 小时前
Spring Boot集成Spring Security完整指南
java
间彧3 小时前
Spring Secutiy基本原理及工作流程
java
Java水解4 小时前
JAVA经典面试题附答案(持续更新版)
java·后端·面试
洛小豆6 小时前
在Java中,Integer.parseInt和Integer.valueOf有什么区别
java·后端·面试
前端小张同学7 小时前
服务器上如何搭建jenkins 服务CI/CD😎😎
java·后端
ytadpole7 小时前
Spring Cloud Gateway:一次不规范 URL 引发的路由转发404问题排查
java·后端
华仔啊7 小时前
基于 RuoYi-Vue 轻松实现单用户登录功能,亲测有效
java·vue.js·后端