Pulsar简介及集群安装过程

 更新时间:2025年04月25日 11:21:32   作者:阿龙先生啊  
pulsar是一个云原生企业级的发布订阅(pub-sub)消息系统,最初由Yahoo开发,并于2016年底开源,现在是Apache软件基金会顶级开源项目,这篇文章主要介绍了Pulsar简介及集群安装,需要的朋友可以参考下

一、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-华为云开发者联盟

到此这篇关于Pulsar简介及集群安装过程的文章就介绍到这了,更多相关Pulsar集群安装内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • skynet.dispatch 使用示例详解

    skynet.dispatch 使用示例详解

    skynet.dispatch 是 Skynet 框架中用于注册消息处理函数的核心 API,它的作用是为特定类型的消息绑定处理逻辑,当服务收到该类型的消息时,自动调用对应的处理函数,下面给大家介绍skynet.dispatch 使用,感兴趣的朋友一起看看吧
    2025-04-04
  • 网址(URL)支持的最大长度是多少?最大支持多少个字符?

    网址(URL)支持的最大长度是多少?最大支持多少个字符?

    这篇文章主要介绍了网址(URL)支持的最大长度是多少?最大支持多少个字符?本文总结了IIS、apache服务器及浏览器软件Internet Explorer、Firefox、Opera、chrome等主流的浏览器软件支持情况,需要的朋友可以参考下
    2015-07-07
  • 基于chatgpt开发QQ机器人原理分析

    基于chatgpt开发QQ机器人原理分析

    ChatGPT是当前自然语言处理领域的重要进展之一,可应用于多种场景,如智能客服、聊天机器人、语音助手等。本文通过调用OpenAI GPT-3模型提供的Completion API来实现一个更加智能的QQ机器人,文中原理代码介绍的非常详细,感兴趣的同学可以参考下
    2023-05-05
  • 汉明码编码原理及校验方法分析

    汉明码编码原理及校验方法分析

    汉明码在传输的消息流中插入验证码,当计算机存储或移动数据时,可能会产生数据位错误,以侦测并更正单一比特错误。由于汉明编码简单,它们被广泛应用于内存RAM
    2021-09-09
  • 使用curl命令行模拟登录WordPress的方法

    使用curl命令行模拟登录WordPress的方法

    这篇文章主要介绍了使用curl命令行模拟登录WordPress的方法,本文通过图文实例相结合给大家介绍的非常详细,需要的朋友可以参考下
    2019-11-11
  • C++/QT/Python/MATLAB获取文件行数的示例详解

    C++/QT/Python/MATLAB获取文件行数的示例详解

    这篇文章主要为大家学习介绍了如何利用C++、QT、Python、MATLAB分别实现获取文件行数的功能,文中的示例代码讲解详细,需要的可以参考一下
    2023-08-08
  • 详解git commit --amend 用法

    详解git commit --amend 用法

    这篇文章主要介绍了详解git commit --amend 用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Kettle下载安装pdi-ce-7.1.0.0-12教程

    Kettle下载安装pdi-ce-7.1.0.0-12教程

    Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制,今天通过本文给大家分享Kettle下载安装pdi-ce-7.1.0.0-12的过程,感兴趣的朋友一起看看吧
    2022-11-11
  • 最适合人工智能开发的5种编程语言 附人工智能入门书籍

    最适合人工智能开发的5种编程语言 附人工智能入门书籍

    这篇文章主要为大家详细介绍了最适合人工智能开发的5种编程语言,并为大家推荐人工智能入门书籍,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Elasticsearch之文档批量操作示例

    Elasticsearch之文档批量操作示例

    这篇文章主要为大家介绍了Elasticsearch之文档批量操作示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04

最新评论