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"
相关推荐
jackzhuoa9 分钟前
java小白闯关记第一天(两个数相加)
java·算法·蓝桥杯·期末
Rover.x12 分钟前
内存泄漏问题排查
java·linux·服务器·缓存
禁默13 分钟前
进程调度的艺术:从概念本质到 Linux 内核实现
linux·运维·服务器
midsummer_woo26 分钟前
基于spring boot的纺织品企业财务管理系统(源码+论文)
java·spring boot·后端
Azure DevOps31 分钟前
在Azure DevOps的工作项中使用markdown
运维·microsoft·flask·azure·devops
zc-code41 分钟前
Spring Boot + @RefreshScope:动态刷新配置的终极指南
java·spring boot·后端
何中应1 小时前
EasyExcel使用(二:写出)
java·后端·maven·excel
先做个垃圾出来………1 小时前
CI/CD与DevOps集成方法
运维·ci/cd·devops
qq_447705311 小时前
宝塔通过docker部署JupyterHub指南【常见错误处理】
运维·docker·容器
卡比巴拉—林1 小时前
HAProxy 实验指南:从零开始搭建高可用负载均衡系统
运维·负载均衡