【中间件】Pulsar集群安装

news2024/11/23 19:37:40

目录

一、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.gz

tar -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/ledger


vim /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 6651


bin/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.gz

tar -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.coloradmin.cn/o/1817757.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python写UI自动化--playwright(安装)

Playwright是微软推出的开源自动化测试工具,专为跨浏览器端到端测试设计。Playwright可以在多个浏览器引擎上运行测试,包括基于Chromium的浏览器(如Chrome、Edge)、Firefox和WebKit(Safari的技术基础)。支持…

CTFHUB-SQL注入-MySQL结构

目录 sqlmap工具夺flag 查看数据库名 查看数据库中表名 查看第一个表中数据 查看第二个表的数据 手动注入 判断是否存在注入 判断字段数量 查询注入点 查询数据库版本 查询数据库名 查看所有数据库 查看表名 查看表中字段 查看表中数据 本题用到sqlmap工具&…

使用距离传感器数据预测驾驶路线(BOSCH)

使用距离传感器数据预测驾驶路线 Werner Uhler, Michael Scherl and Bernd Lichtenberg Robert Bosch GmbH ABSTRACT 将距离传感器检测到的车辆分配到相对于本车的车道是未来驾驶辅助系统(如自适应巡航控制 (ACC))的一项重要且必要的任务。通过车辆前…

企业ERP系统的核心目的是什么?

如今,随着企业业务和规模的逐步扩大,传统的管理模式显然不能满足企业可持续发展的需要。如果不及时改变,很可能会被市场淘汰。ERP系统是当前企业信息管理的必要工具。它可以提高企业的办公效率,帮助企业摆脱传统管理的束缚&#x…

论文阅读Rolling-Unet,卷积结合MLP的图像分割模型

这篇论文提出了一种新的医学图像分割网络Rolling-Unet,目的是在不用Transformer的前提下,能同时有效提取局部特征和长距离依赖性,从而在性能和计算成本之间找到良好的平衡点。 论文地址:https://ojs.aaai.org/index.php/AAAI/article/view/2…

小红书评论爬取使用教程[八猪采集器]

如何使用八猪采集器爬虫小红书评论, 以下是教程. 目录 1. 下载使用 2. 注册账号 3. 登录 4. 配置任务 5. 执行采集任务 6. 校验执行是否成功 7. 查询和操作评论数据 8. 导出评论数据 9. 下载软件 1. 下载使用 下载后解压缩到任意地址, 双击8zhu_collector.exe即可…

15. STUN协议和ICE工作原理

NET介绍 NAT是一种地址转换技术,它可以将IP数据报文头中的IP地址转换为另一个IP地址,并通过转换端口号达到地址重用的目的。 在大多数网络环境中,我们都需要通过 NAT 来访问 Internet。 NAT作为一种缓解IPv4公网地址枯竭的过渡技术&#xff…

UE4/UE5像素流送云推流|程序不稳定、弱网画面糊怎么办?

看到不少反馈说像素流送技术在实际的应用中,存在一些问题,比如程序崩溃、画面模糊等。本文将探讨这些问题,并介绍点量云流软件提供了哪些有效的解决方案。 常见的像素流送技术问题 画面质量问题: 当快速操作UE模型或初次启动像素…

Mongodb使用$pop删除数组中的元素

学习mongodb,体会mongodb的每一个使用细节,欢迎阅读威赞的文章。这是威赞发布的第67篇mongodb技术文章,欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题,欢迎在文章下面点个赞,或者关…

IDEA项目上传Github流程+常见问题解决

一、Github上创建仓库 项目创建好后如图所示 二、IDEA连接Github远程仓库 管理远程 复制远程地址 定义远程 登录Github 点击进入File->Settings->Version Control->Github登录自己的账号并勾上“√” 三、推送项目 点击推送 修改为main 点击确定,打开远程…

Kimichat使用案例014:用kimichat自动批量重命名三体字幕文件(零代码编程)

文章目录 一、介绍二、字幕文件三、kimi输入内容四、kimi输出内容五、运行程序一、介绍 网上下载了Netflix的三体电视剧,但没有字幕,又从字幕网站下载了字幕文件,由于字幕文件和视频文件标题有差异,需要全部进行重命名。 二、字幕文件 从字幕网站下载了字幕文件如下: 三、…

基于 Element UI 的高效前端表格模板开发

在前端开发中,表格展示和搜索功能是常见的需求之一。为了提高开发效率,我们可以通过创建一个可复用的表格模板来应对各种类似的场景。本文将分享一个基于 Element UI 的表格模板,它包含了搜索、分页和操作按钮等功能,可以作为未来…

基于zemax的圆孔、矩形衍射、双缝干涉与自定义孔径面型应用分析

自学案例节选自某乎 1:圆孔、矩形衍射、双缝干涉与自定义孔径面型应用分析 讨论一些基本的光学衍射、干涉现象,在加深对光学知识理解的同时,重点介绍一下自定义孔径的用法,主要是为了对软件的运用更为了解,并不针对某…

图说设计模式:单例模式

更多C学习笔记,关注 wx公众号:cpp读书笔记 5. 单例模式 单例模式 模式动机模式定义模式结构时序图代码分析模式分析实例优点缺点适用环境模式应用模式扩展总结 5.1. 模式动机 对于系统中的某些类来说,只有一个实例很重要,例如…

Linux:多线程的操作

多线程操作 进程与线程线程的创建 create_pthread创建线程池给线程传入对象的指针 线程等待 pthread_join退出线程 pthread_exit线程等待参数 retval 与 线程退出参数 retval 线程中断 pthread_cancel获取线程编号 pthread_self线程分离 pthread_detach 进程与线程 进程是资源…

【学习笔记】Kali

纯个人总结,有什么不对的地方欢迎指正。 笔记根据个人学习进度持续更新… 一、 认识Kali 基础了解 Kali是一套基于Debian发行版的一款操作系统。(这里讲一个误区,我以前一直以为kali就属于deepin下的操作系统,但是我知道deepin是…

记录一下:vue3+antd-vue a-form包含a-table实现表格行内校验, 清除 指定行 指定字段 的校验

问题描述下: 目标VLAN值可以输入, 也可以点击后面的按钮进行弹窗选择。由于检验原因,光标失焦但是没有填写就会校验爆红,然后点击选择之后由于没有失焦过程没有触发校验,依然还是红的。这个时候就需要清除 目标VLAN值 …

企业跨境文件传输的核心痛点,怎样保证稳定可靠的传输性能?

随着经济和国际贸易的发展,企业跨境文件传输日趋频繁,多个行业均存在高频且大量的跨境文件传输需求: 跨境电子商务: 跨境电商平台需要进行跨国的订单、支付和物流信息的传输,以便顺利完成交易和配送。涉及跨国企业的内…

Python爬虫实战(实战篇)—18获取【小红书】首页信息写入Excel(仅用于学习-附完整版代码)

文章目录 专栏导读背景1、分析首页页面2、分析获取信息2-1,获取:笔记类型2-2,获取:标题2-3,获取:用户信息2-4,获取:用户ID2-5,获取:用户头像2-6,获取:文章连接完整代码总结专栏导读 文章名称链接Python爬虫实战(实战篇)—16获取【百度热搜】数据—写入Ecel(附完整…

一篇文章看懂Redission原理

文章目录 ☃️可重入锁原理☃️锁重试和WatchDog机制☃️MutiLock原理 上一篇文章讲解了 Rediision的使用 ,这篇文章讲解其原理 ☃️可重入锁原理 在Lock锁中,他是借助于底层的一个voaltile的一个state变量来记录重入的状态的,比如当前没有人持有这把锁…