【中间件】Pulsar集群安装

article/2025/8/15 7:38:43

目录

一、Pulsar介绍

1.1 Pulsar基本介绍

1.2 Pulsar架构

Producer & Consumer

Apache Zookeeper

Pulsar Brokers

Apache Bookkeeper

二、Zookeeper集群安装

三、Pulsar集群安装

3.1 bookie与broker配置

3.1.1 修改bookie配置文件

3.1.2 修改broker配置文件

3.2 元数据初始化

3.3 服务启动

3.4 消息收发测试

四、Pulsar admin manger图形界面安装


一、Pulsar介绍


1.1 Pulsar基本介绍


pulsar是一个云原生企业级的发布订阅(pub-sub)消息系统,最初由Yahoo开发,并于2016年底开源,现在是Apache软件基金会顶级开源项目。Pulsar在Yahoo的生产环境运行了三年多,助力Yahoo的主要应用,如Yahoo Finance、Yahoo Sports、Flickr、Gemini广告平台和Yahoo分布式键值存储系统Sherpa。

Apache Pulsar的功能与特性:

  • 多租户模式
  • 灵活的消息系统
  • 云原生架构
  • segmented Sreams(分片流)
  • 支持跨地域复制

1.2 Pulsar架构


Pulsar官网: Apache Pulsar | Apache Pulsar

Producer & Consumer

Pulsar客户端包含一个消费者和一个生产者。生产者写入消息到某个主题。消费者从主题读取消息,并确认特定消息或所有特定消息。

Apache Zookeeper

Pulsar和BookKeeper使用Apache ZooKeeper保存节点之间协调的元数据,例如每个主题的分类账列表,每个分类账的片段,以及主题包到代理的映射。它是一个由高可用性和可复制的服务器组成的集群(通常是3个)。

Pulsar Brokers

主题(即分区)在Brokers代理之间进行划分。代理接收主题的消息,并将它们附加到托管在Bookkeeper集群上的主题的活动虚拟文件(又称分类账)。代理从缓存(大部分)或BookKeeper读取消息,并将它们分发给消费者。代理也接收消息确认并将其持久化到BookKeeper集群。代理是无状态的(不使用/不需要磁盘)。

Apache Bookkeeper

Apache BookKeeper是一个称为bookies的节点集群。每个虚拟文件(又名账本)被分成连续的段,默认情况下,每个段由3个bookies 保存(由客户端复制,即经纪人)。由于不需要在它们之间进行数据重组(移动),运营商可以快速添加博彩公司。它们立即共享传入的写负载。

测试环境

主机名

IP

角色

ddp01

192.168.2.76

zk,bookie,broker

ddp02

192.168.2.78

zk,bookie,broker

ddp03

192.168.2.80

zk,bookie,broker

JDK版本兼容性如下:


二、Zookeeper集群安装


使用DataSophon 安装Zookeeper ,也可以直接tar包安装参考文档

选择服务

选择server节点

配置信息确认

安装完成

查看ZK配置信息,ZK安装路径:/opt/datasophon/zookeeper

zoo.cfg 配置文件

clientPort=2181
dataDir=/data/zookeeper
dataLogDir=/data/log
tickTime=2000
initLimit=10
syncLimit=5
server.1=192.168.2.76:2888:3888
server.2=192.168.2.78:2888:3888
server.3=192.168.2.80:2888:3888
skipACL=yes

三、Pulsar集群安装


pulsar版本

Pulsar下载

# 3台创建 并同步安装包
mkdir -p /opt/module
wget https://archive.apache.org/dist/pulsar/pulsar-2.8.1/apache-pulsar-2.8.1-bin.tar.gztar -zxvf apache-pulsar-2.8.1-bin.tar.gz -C /opt/module
cd /opt/module
ln -s apache-pulsar-2.8.1-bin puslar_2.8.1

可以验证ZooKeeper节点是否启动成功

cd /opt/module/apache-pulsar-2.8.1./bin/pulsar zookeeper-shell -server 192.168.2.76:12181
./bin/pulsar zookeeper-shell -server 192.168.2.78:12181
./bin/pulsar zookeeper-shell -server 192.168.2.80:12181

如下进入了 ZK客户端,查看Znode节点

3.1 bookie与broker配置


3.1.1 修改bookie配置文件


# 分别每个节点执行
# 创建bookie所需要目录
mkdir -p  /opt/module/pulsar_2.8.1/tmp/journal
mkdir -p  /opt/module/pulsar_2.8.1/tmp/ledgervim /opt/module/puslar_2.8.1/conf/bookkeeper.conf# advertisedAddress 修改为服务器对应的ip,在另外两台服务器也做对应的修改advertisedAddress=192.168.1.193
advertisedAddress=192.168.2.76# 修改以下两个文件目录地址
journalDirectory=/opt/module/pulsar_2.8.1/tmp/journal
ledgerDirectories=/opt/module/pulsar_2.8.1/tmp/ledger# 修改zk地址和端口信息
zkServers=192.168.2.76:2181,192.168.2.78:2181,192.168.2.80:2181#httpServerPort默认也是8000,建议修改,我这里修改为:8100
prometheusStatsHttpPort=8100

3.1.2 修改broker配置文件


cd /opt/module/pulsar_2.8.1
vim conf/broker.conf修改第44行: 更改为本地ip地址
advertisedAddress=192.168.2.76修改第125行: 修改集群的名称
clusterName=pulsar-cluster修改第1794行: 配置zookeeper地址
zookeeperServers=192.168.2.76:2181,192.168.2.78:2181,192.168.2.80:2181修改第73行: 配置zookeeper地址
configurationStoreServers=192.168.2.76:2181,192.168.2.78:2181,192.168.2.80:2181修改第73行 http请求服务端口
webServicePort=18080

同步到其它两台

scp  -r apache-pulsar-2.7.5  ddp02:/opt/module
scp  -r apache-pulsar-2.7.5  ddp03:/opt/module
cd /opt/module
ln -s apache-pulsar-2.8.1-bin puslar_2.8.1

3.2 元数据初始化


在其中一个 zookeeper 节点的机器上,初始化集群元数据(总共只需执行一次)

#先查看端口占用情况,避免后面启动时会报端口占用错误
netstat -tpnl |grep 8080  
netstat -tpnl |grep 8443
netstat -tpnl |grep 6650
netstat -tpnl |grep 6651bin/pulsar initialize-cluster-metadata \
--cluster pulsar-cluster \
--zookeeper 192.168.2.76:2181,192.168.2.78:2181,192.168.2.80:2181 \
--configuration-store 192.168.2.76:2181,192.168.2.78:2181,192.168.2.80:2181 \
--web-service-url http://192.168.2.76:18080,192.168.2.78:18080,192.168.2.80:18080 \
--web-service-url-tls https://192.168.2.76:8443,192.168.2.78:8443,192.168.2.80:8443 \
--broker-service-url pulsar://192.168.2.76:6650,192.168.2.78:6650,192.168.2.80:6650 \
--broker-service-url-tls pulsar+ssl://192.168.2.76:6651,192.168.2.78:6651,192.168.2.80:6651

查看元数据是否初始化成功

#连接任意一台zookeeper,比如:192.168.1.193
./bin/pulsar zookeeper-shell -server 127.0.0.1:2181
#查询数据
ls /
#显示如下,有bookies,pulsar等信息,表示成功初始化
[admin, bookies, ledgers, managed-ledgers, namespace, stream, zookeeper]

3.3 服务启动



# BookKeeper集群启动
#启动bookie命令,以后台进程启动bookie
./bin/pulsar-daemon start bookie# bookie停止命令
./bin/pulsar-daemon stop bookie# 验证是否启动成功
./bin/bookkeeper shell bookiesanity# 以后台进程启动 broker
./bin/pulsar-daemon start broker# broker关闭命令如下:
./bin/pulsar-daemon stop broker

测试判断broker是否启动成功


./bin/pulsar-admin --admin-url http://192.168.2.76:18080 brokers list pulsar-cluster

部署正常的话 会显示如下结果

3.4 消息收发测试


#在yx subscription 订阅中 consume 一条消息到topic:yx-tech的命令
./bin/pulsar-client consume yx-tech -s "yx subscription"

开启另一个终端发送数据,观察订阅者收到数据:content:hello-yx

#生产者发送: 向名称为 my-topic 的 topic 发送一条简单的消息 hello-pulsar
#--messages后面双引号中的内容,若以英文逗号分隔,则消息会分开发送
./bin/pulsar-client produce yx-tech --messages "hello-yx"

如果消费者可以正常接收到消息就代表安装成功


四、Pulsar admin manger图形界面安装


Pulsar admin manger是基于Plusar的可视化界面,接下来进行安装

wget https://www.apache.org/dyn/closer.lua/pulsar/pulsar-manager/pulsar-manager-0.4.0/apache-pulsar-manager-0.4.0-bin.tar.gztar -zxf  apache-pulsar-manager-0.4.0-bin.tar.gz -C /home/bigdata/apps/
cd /home/bigdata/apps/apache-pulsar-manager-0.4.0-bin/
# 解压文件
tar -xvf pulsar-manager.tar
# 进入解压后的文件夹
cd pulsar-manager
# 复制文件
cp -r ../dist ui

修改配置文件application.properties根据需要进行属性配置。如果不想修改应文件application.properties,可以通过命令将配置添加到启动参数中。这是Spring引导框架的一个功能。

/bin/pulsar --managerbackend.jwt.Token=Token

启动pulsar

./bin/pulsar-manager

初始化用户名密码

CSRF_TOKEN=$(curl http://localhost:7750/pulsar-manager/csrf-token)
curl \-H 'X-XSRF-TOKEN: $CSRF_TOKEN' \-H 'Cookie: XSRF-TOKEN=$CSRF_TOKEN;' \-H "Content-Type: application/json" \-X PUT http://localhost:7750/pulsar-manager/users/superuser \-d '{"name": "admin", "password": "apachepulsar", "description": "test", "email": "username@test.org"}'

http://192.168.2.76:7750/ui/index.html

点击 new Environment, 设置集群环境即可

新建环境,连接pulsar。设置pulsar集群名字,这里是配置文件中的集群名。以及链接URL,这里也是初始化时配置的url。

可以查看和新建namespace 、topic 等

参考文档:

高版本的Pulsar需要

JDK17下载地址:Java Downloads | Oracle 中国

云原生时代消息中间件Pulsar(介绍、集群安装部署、管理页面安装部署) 2-阿里云开发者社区

【pulsar学习】pulsar集群部署及可视化监控部署_学习_hhhSir'blog-华为云开发者联盟


http://www.hkcw.cn/article/NpfuhnkQZK.shtml

相关文章

41-dify案例分享-基于database插件实现Text2sql的数据库查询图表工作流

1 前言 Text2SQL(或称NL2SQL)是一种自然语言处理技术,旨在将自然语言(Natural Language)问题转化为关系型数据库中可执行的结构化查询语言(Structured Query Language,SQL)&#xf…

数据库-MySQL 实战项目——学生选课系统数据库设计与实现(附源码)

一、前言 该项目非常适合MySQL入门学习的小伙伴,博主提供了源码、数据和一些查询语句,供大家学习和参考,代码和表设计有什么不恰当还请各位大佬多多指点。 所需环境 MySQL可视化工具:navicat; 数据库:MySq…

中小型企业大数据平台全栈搭建:Hive+HDFS+YARN+Hue+ZooKeeper+MySQL+Sqoop+Azkaban 保姆级配置指南

目录 背景‌一、环境规划与依赖准备‌1. 服务器规划(3节点集群)2. 系统与依赖‌3. Hadoop生态组件版本与下载路径4. 架构图二、Hadoop(HDFS+YARN)安装与配置‌1. 下载与解压(所有节点)2. HDFS高可用配置3. YARN资源配置‌4. 启动Hadoop集群三、MySQL安装与Hive元数据配置…

从 0~1 保姆级 详细版 PostgreSQL 数据库安装教程

PostgreSQL数据库安装 PostgreSQL官网 【PostgreSQL官网】 | 【PostgreSQL安装官网_Windows】 安装步骤 step1: 选择与电脑相对应的PostgreSQL版本进行下载。 step2: 双击打开刚才下载好的文件。 step3: 在弹出的setup窗口中点击 …

【Spring Boot】网页五子棋项目中遇到的困难及解决方法

目录 一、HikariPool-1 - Starting异常二、Invalid bound statement (not found)异常三、The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary异常四、The server time zone value时区报错异常五、补充知识点…

上海启动3-6岁儿童近视监测 推进视力健康关口前移

6月1日,第30个全国“爱眼日”上海市儿童青少年眼健康主题活动发布了上海市儿童青少年近视率最新监测情况。2024年上海市6-18岁儿童青少年近视率比2023年下降1.5个百分点。为推进近视预防关口前移,上海市眼病防治中心启动了“低龄儿童近视监测与干预服务项目”,聚焦3-6岁近视…

郑钦文首次晋级法网8强 刷新个人最佳战绩

北京时间6月1日晚,在法网女单1/8决赛中,8号种子郑钦文以7-6(5)、1-6、6-3战胜19号种子俄罗斯选手萨姆索诺娃,职业生涯首次跻身法网女单八强,刷新个人赛会最佳战绩。这也是中国选手时隔14年再次闯进法网八强。首盘比赛中,郑钦文两次先被破发但迅速回破,双方战至抢七。最终…

新势力5月销量榜解读 零跑三连冠

零跑汽车再次夺得新势力月销量冠军。6月1日,各大造车新势力发布了5月份的交付数据。零跑汽车连续三个月稳居榜首,鸿蒙智行和理想汽车分别位列第二、第三,销量均重回4万辆。整体来看,5月车市进一步回暖,尤其是极氪获得了最高的环比增速,达37.74%。5月,零跑汽车全系交付再…

江苏城市联赛:南通队4-0客胜泰州队 多点开花完胜对手

北京时间6月1日,江苏城市联赛第3轮比赛中,泰州队主场迎战南通队。下半场,郭凯楠单刀过掉门将后推射破门,为南通队首开纪录。随后张浩楠边路超车后传球,文俊秀破门扩大比分。接着程鑫门前补射得手,进一步巩固了南通队的领先优势。比赛尾声,李贤成过掉对手后单刀推射再下一…

当地回应上海迪士尼游客扭打 因拍照起冲突

5月31日,有网友发布视频称,在上海迪士尼发生了一起情侣和一家三口之间的冲突事件,引发了广泛关注。视频中可以看到双方在现场扭打,周围的人纷纷上前劝阻。据了解,该事件发生在5月31日,地点并非排队区域,而是游客自由打卡拍照的地方。情侣和一家三口因拍照问题产生了争执…

上海迪士尼有游客打架 警方通报 因拍照引发冲突

近日,一段上海迪士尼度假区内情侣与带孩子的夫妇发生争执的视频引起了网友们的广泛关注。根据浦东公安分局的通报,5月31日傍晚6点左右,警方接到报警称迪士尼乐园内有人打架。经初步调查,事件起因是22岁的闫某某与女友在拍照时,36岁的刘某某夫妻的女儿进入了拍摄画面,双方…

生涯首次!郑钦文晋级法网8强 三盘激战创佳绩

北京时间6月1日晚,法网女单第四轮较量中,中国选手郑钦文与俄罗斯选手萨姆索诺娃展开激烈对决。经过三盘大战,郑钦文以2比1胜出,成功晋级八强,创造了个人在法网的最佳战绩。郑钦文和萨姆索诺娃此前曾交手5次,郑钦文以2胜3负略处下风。不过,在红土场上两人唯一的一次交手中…

苏超为何“比赛第一友谊第十四” 城市荣耀与纯粹竞技

足球世界中,许多充满底蕴比拼与恩怨情仇的高手对决,被冠以“德比”之名享誉全球。例如意大利米兰德比、西班牙国家德比、英格兰曼彻斯特德比以及阿根廷河床和博卡青年超级德比等,无不令球迷激动不已,话题度极高。然而在2025年初夏,首届江苏城市足球联赛舞台上,“十三太保…

百名“奇迹宝宝”庆六一 抗癌妈妈的希望之光

“我想当航天员,飞向太空。”“我想当白衣天使,治愈患者。”“我想有个美丽的花园。”31日,在北京大学人民医院综合行政楼10层的小会议厅里,孩子们的欢声笑语充满了整个空间。他们都是在妈妈抗癌过程中出生的“奇迹宝宝”,这次聚会是为了迎接即将到来的“六一”国际儿童节…

上海警方通报迪士尼游客打架 因拍照引发冲突

近日,一段上海迪士尼度假区内两对游客发生纠纷的视频引起了广泛关注。事件发生在5月31日18时左右,浦东公安分局接到报警称迪士尼乐园内有人打架。经初步调查,22岁的闫某某与女友在拍照时,因36岁的刘某某夫妻的女儿进入拍摄画面而引发争执,随后双方发生了肢体冲突。冲突导致…

法网:斯瓦泰克艰难逆转莱巴金娜 豪取25连胜

6月1日,在法国网球公开赛女单第四轮比赛中,四届赛会冠军、5号种子斯瓦泰克以2-1(1-6、6-3、7-5)逆转战胜12号种子莱巴金娜,本赛季第三次击败对手,实现了法网25连胜。波兰名将因此获得了430分和44万欧元奖金。她已连续六年闯入法网八强,并且这是她第11次跻身大满贯八强。…

姆巴佩去年采访称不希望巴黎赢欧冠 未来再夺桂冠

北京时间6月1日,巴黎圣日耳曼在欧冠决赛中以5-0战胜国际米兰,夺得冠军。这一胜利让人们重新关注姆巴佩去年12月份接受CANAL+采访时的言论。当时,姆巴佩被问及“巴黎能否赢得欧冠冠军”的问题时,他表示自己并不希望巴黎立即拿到欧冠奖杯。姆巴佩在那次采访中谈到了许多场内场…

一舟载千年的中式浪漫具象化了 从古至今的文化传承

端午节活动中最具节日气氛的莫过于赛龙舟。“舟”在中国历史悠久,不仅是一种交通工具,还承载着丰富的文化内涵。我国古代造船技艺可以追溯到新石器时代。浙江跨湖桥遗址出土的一艘距今8000年的马尾松独木舟被称为“中华第一舟”。这艘独木舟采用“火焦法”凿制而成,证明了刳…

液态神经网络(Liquid Neural Networks,LNN ):动态时序建模的生物学革命——MIT用微分方程重构AI的时变认知系统

一、通俗解读:当神经网络学会“流动” 1.1 核心思想突破 ​​液态神经网络(Liquid Neural Networks, LNN)​​ 的核心创新在于:​​将静态神经网络转化为由微分方程驱动的动态系统​​,其革命性体现在: ​…

AI 编码新王炸,Augment (SWE-bench 冠军)免费登场,专治复杂大项目,硬刚 Cursor?

🍹 Insight Daily 🪺 Aitrainee | 公众号:AI进修生 Hi,这里是Aitrainee,欢迎阅读本期新文章。 AI 圈又 来了个新玩家 :Augment Code,专治大项目、复杂代码库。 提供 200K 上下文 token、持…