当前位置: 首页 > news >正文

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

文章目录

  • 安装准备
    • 虚拟机部署
      • 部署zk集群
        • 安装zk集群
        • 启动zk集群
        • 初始化元数据(zk)
        • 关闭zk集群
      • 部署BookKeeper集群
        • 安装BookKeeper集群
        • 初始化元数据(bk)
        • 启动BookKeeper
        • 停止 BookKeeper
      • 部署Brokers集群
        • 安装Brokers集群
        • 启动 broker
        • 停止 broker
      • zk集群可用性测试(需要把上面的zk+bk+broker安装完再测)

安装准备

虚拟机部署

1.准备相关安装包

在这里插入图片描述

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

部署zk集群

安装zk集群

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

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

主要是配置以下内容:
在这里插入图片描述

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,如下所示:

#节点 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 节点:

cd /home/zk
bin/tong-daemon start zookeeper

在这里插入图片描述

启动后可以看看 这个日志文件有没有报错信息:
在这里插入图片描述

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

在这里插入图片描述

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

if [[ $JAVA_MAJOR_VERSION -ge 17 ]]; thenZGC_OPTS="-XX:+UseZGC"
elseZGC_OPTS=""
fi

在这里插入图片描述
在这里插入图片描述

如果遇到这种报错:
在这里插入图片描述

确认以下几点即可
1.各个节点之间是否能telnet通对应的端口(日志里提示的是3888)
2.执行以下指令确认节点正常运行:

cd /home/zk
bin/tong zookeeper-shell
ls /

如下所示即为正常,可以ctrl +c退出。
在这里插入图片描述
原因:

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

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

cd /home/zk
bin/tong-daemon stop zookeeper
初始化元数据(zk)

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

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集群
cd /home/zk
bin/tong-daemon stop zookeeper

部署BookKeeper集群

安装BookKeeper集群

执行以下指令:

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
cd /home/bk
bin/tong-daemon start bookie

在这里插入图片描述

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

bin/bookkeeper shell bookiesanity

如下图所示为测试成功:
在这里插入图片描述

停止 BookKeeper
cd /home/bk
bin/tong-daemon stop bookie

部署Brokers集群

安装Brokers集群
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
cd /home/broker/
bin/tong-daemon start broke

在这里插入图片描述

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

cd /home/brokerbin/tong-admin brokers list ${clusterName}

在这里插入图片描述
在这里插入图片描述

停止 broker
cd /home/broker
bin/tong-daemon stop broker

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

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目录执行

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

在这里插入图片描述

另启一个窗口,执行

cd /home/zk
bin/tong-client consume \
persistent://public/default/test \
-n 100 \
-s "consumer-test" \
-t "Exclusive"

在这里插入图片描述

相关文章:

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

文章目录 安装准备虚拟机部署部署zk集群安装zk集群启动zk集群初始化元数据(zk)关闭zk集群 部署BookKeeper集群安装BookKeeper集群初始化元数据(bk)启动BookKeeper停止 BookKeeper 部署Brokers集群安装Brokers集群启动 broker停止 …...

第 14 天:UE5 C++ 与蓝图(Blueprint)交互!

🎯 目标: ✅ 了解 C 与蓝图(Blueprint)交互的方式 ✅ 在 C 中调用蓝图函数 ✅ 让蓝图访问 C 变量和方法 ✅ 使用 UFUNCTION、UPROPERTY 进行蓝图暴露 ✅ 提高开发效率,让 C 和蓝图开发者高效协作 1️⃣ 为什么要让 C…...

小初高各学科教材,PDF电子版下载

链接:https://pan.quark.cn/s/7c2125f648e2 小初高中电子课本资料pdf合集 高中各科教材 (部分举例) - 语文:新人教版、旧人教版、苏教版等 - 数学:人教A版、沪教版、鄂教版等 - 英语:重大版、人教版…...

Trader Joe‘s EDI 需求分析

Trader Joes成立于1967年,总部位于美国加利福尼亚州,是一家独特的零售商,专注于提供高质量且价格合理的食品。公司经营范围涵盖了各类杂货、冷冻食品、健康食品以及独特的本地特色商品。 EDI需求分析 电子数据交换(EDI&#xff…...

python class详解

在 Python 中,class 是用来创建新的数据类型,即对象的蓝图。类可以包含属性(变量)和方法(函数),它们定义了对象的状态和行为。以下是 Python 类的基本概念和用法的详细解释: 定义类…...

基于LVS负载均衡练习

对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势。 NAT模式,全称是网络地址转换模式。NAT模式下,负载均衡器(Director)会修改请求和响应的IP地址。客户端的请求先到达Director,Director将请…...

在 rtthread中,rt_list_entry (rt_container_of) 已知结构体成员的地址,反推出结构体的首地址

rt_list_entry (rt_container_of)宏定义: /*** rt_container_of - return the start address of struct type, while ptr is the* member of struct type.*/ #define rt_container_of(ptr, type, member) \((type *)((char *)(ptr) - (unsigned long)(&((type *…...

数组_二分查找

数组_二分查找 一、leetcode-572二、题解1.代码2.思考 一、leetcode-572 二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则…...

VUE环境搭建

node.js安装 node npm – node Package Management 安装完成后,需要设置: npm config set prefix "D:\nodejs"注意:“D:\nodejs” 此处为自己安装的node.js路径。管理员身份运行 切换镜像源 npm config set registry https://r…...

MATLAB图像处理:Sobel、Roberts、Canny等边缘检测算子

边缘是图像中像素值剧烈变化的区域,反映了目标的轮廓、纹理等关键信息。边缘检测是图像分割、目标识别等任务的基础。本文将系统解析 六种经典边缘检测算子 的数学原理、实现方法及适用场景,并给出完整的MATLAB代码示例和对比分析。 1. 边缘检测基础 1…...

C++ 标准库常见容器

容器类型类型分类特点示例代码vector序列容器动态数组,支持随机访问,末尾操作效率高std::vector v {1, 2, 3}; v.push_back(4);deque序列容器双端队列,支持两端操作和随机访问std::deque d {1, 2, 3}; d.push_front(0);list序列容器双向链表…...

Ubuntu+Laravel+MQ+Supervisor队列系统搭建流程

1、安装MQ环境 sudo apt install -y rabbitmq-server sudo systemctl enable rabbitmq-server --now 2、进入laravel项目,安装MQ队列驱动 composer require vladimir-yuldashev/laravel-queue-rabbitmq 3、配置 .env QUEUE_CONNECTIONrabbitmq RABBITMQ_HOST12…...

力扣100. 相同的树(利用分解思想解决)

Problem: 100. 相同的树 文章目录 题目描述思路Code 题目描述 思路 题目要求判断两个二叉树是否完全相同,而此要求可以利用问题分解的思想解决,即判断当前节点的左右子树是否完全相同,而在二叉树问题分解的一般题目中均会带有返回值&#xff…...

全面了解HTTP(一)

全面了解HTTP(二)-CSDN博客 web及网络基础 使用HTTP协议访问web: HTTP: 网络基础TCP/IP 与HTTP关系密切的协议:IP,TCP,DNS 负责域名解析的DNS服务 各种协议与HTTP协议的关系 URI和URL 简单的HTTP协议 HTTP协议用于客户端和服…...

element-ui时间组件同一个月内选择/30天内选择

element-ui时间组件同一个月内选择/30天内选择 同一个月 <el-date-picker v-model"time" type"datetimerange"range-separator"至" start-placeholder"开始时间"value-format"timestamp" :picker-options"pickerO…...

NO.18十六届蓝桥杯备战|循环嵌套|乘法表|斐波那契|质数|水仙花数|(C++)

循环嵌套 循环嵌套的使⽤ while &#xff0c; do while &#xff0c; for &#xff0c;这三种循环往往会嵌套在⼀起才能更好的解决问题&#xff0c;就是我们所说的&#xff1a;循环嵌套。这三种循环都可以任意嵌套使⽤ ⽐如&#xff1a; 写⼀个代码&#xff0c;打印⼀个乘法⼝…...

深入浅出Java反射:掌握动态编程的艺术

小程一言反射何为反射反射核心类反射的基本使用获取Class对象创建对象调用方法访问字段 示例程序应用场景优缺点分析优点缺点 注意 再深入一些反射与泛型反射与注解反射与动态代理反射与类加载器 结语 小程一言 本专栏是对Java知识点的总结。在学习Java的过程中&#xff0c;学习…...

大模型被偷家?CNN结合多模态!

2025深度学习发论文&模型涨点之—— CNN多模态 卷积神经网络是一种特殊类型的神经网络&#xff0c;其主要结构包括卷积层、池化层、全连接层和输出层。卷积层通过卷积操作学习图像的特征&#xff0c;池化层通过下采样操作减少参数数量&#xff0c;全连接层和输出层通过分类…...

UI自动化测试的优缺点?

优点 • 提高测试效率&#xff1a;可以快速地重复执行测试用例。例如&#xff0c;对于一个有大量表单需要验证的网页应用&#xff0c;自动化测试可以在短时间内完成多次输入检查&#xff0c;而手动测试则会花费大量时间。 • 保证测试一致性&#xff1a;每次执行测试的步骤和…...

在 Kubernetes (K8s) 环境中,备份 PostgreSQL 数据库

在 Kubernetes (K8s) 环境中&#xff0c;备份 PostgreSQL 数据库有一些特殊的考虑&#xff0c;因为数据库通常运行在容器中&#xff0c;并且数据存储在卷&#xff08;如 PersistentVolume&#xff09;中。你可以通过几种方式在外部备份 PostgreSQL 数据库&#xff0c;下面是一些…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中&#xff0c;理解API&#xff08;应用程序接口&#xff09;和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能&#xff0c;使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...