菜鸟-创作你的创作

Pulsar简介及集群安装过程

下面给你整理一份 《Apache Pulsar 简介及集群安装过程(超清晰实战版)》,内容涵盖 Pulsar 基础概念、架构特点、单机与集群部署全流程,适合快速上手与实际生产使用。


Apache Pulsar 简介及集群安装过程(最全实战)

Apache Pulsar 是下一代云原生分布式消息流平台,由 Yahoo 开发并捐赠给 Apache。它同时支持 消息队列(MQ)流系统(Streaming) 场景,是 Kafka 的强有力竞争者。


一、Pulsar 简介

1. Pulsar 是什么?

Pulsar = 消息队列(像 RabbitMQ / RocketMQ) + 日志流系统(像 Kafka)

核心特性:


二、Pulsar 的核心架构

Pulsar 的架构相比 Kafka 最大优势是 分层设计

1. Broker(计算层)

2. BookKeeper(存储层)

3. ZooKeeper(元数据)


三、Pulsar 的主要优势

功能KafkaPulsar
架构存储计算耦合存储计算分离
多租户无原生支持原生支持
消息存储多副本+分区文件BookKeeper 分布式日志
延时消息需要额外组件内置
协议兼容Kafka 兼容 Kafka原生兼容 Kafka/AMQP/MQTT/JMS
自动扩容极易扩容 Broker

非常适合:


四、Pulsar 集群安装步骤

本章节提供三种方式:

  1. 本机单节点(Standalone 模式)
  2. Docker 简易 Pulsar 集群
  3. 生产级 3 节点 Pulsar + BookKeeper + ZooKeeper 集群部署

五、方式一:Standalone 模式(单机)

适合测试或开发。

1. 下载 Pulsar

wget https://archive.apache.org/dist/pulsar/pulsar-3.0.0/apache-pulsar-3.0.0-bin.tar.gz
tar xvf apache-pulsar-3.0.0-bin.tar.gz
cd apache-pulsar-3.0.0

2. 启动单机模式

bin/pulsar standalone

默认会启动:


六、方式二:使用 Docker 启动 Pulsar 简易集群

适合快速验证集群能力。

docker-compose.yml 示例:

version: '3.7'
services:
  pulsar:
    image: apachepulsar/pulsar:3.0.0
    container_name: pulsar
    entrypoint: ["/bin/bash", "-c", "bin/pulsar standalone"]
    ports:
      - "6650:6650"
      - "8080:8080"

启动:

docker-compose up -d


七、方式三:生产环境 3 节点 Pulsar 集群安装(完整版)

适用于实际生产部署。

你需要至少:


步骤 1:安装 Pulsar 并创建目录

三台机器同时执行:

mkdir -p /opt/pulsar
cd /opt
wget https://archive.apache.org/dist/pulsar/pulsar-3.0.0/apache-pulsar-3.0.0-bin.tar.gz
tar xvf apache-pulsar-3.0.0-bin.tar.gz
mv apache-pulsar-3.0.0 pulsar


步骤 2:配置 ZooKeeper(元数据)

三台机器编辑:

conf/zookeeper.conf

参数示例:

dataDir=/opt/pulsar/data/zookeeper
clientPort=2181
server.1=10.0.0.1:2888:3888
server.2=10.0.0.2:2888:3888
server.3=10.0.0.3:2888:3888

初始化 ZK(仅 node1 执行一次):

bin/pulsar initialize-cluster-metadata \
  --cluster pulsar-cls \
  --zookeeper 10.0.0.1:2181 \
  --configuration-store 10.0.0.1:2181 \
  --web-service-url http://10.0.0.1:8080 \
  --web-service-url-tls https://10.0.0.1:8443 \
  --broker-service-url pulsar://10.0.0.1:6650 \
  --broker-service-url-tls pulsar+ssl://10.0.0.1:6651

启动 ZooKeeper:

bin/pulsar-daemon start zookeeper


步骤 3:配置 BookKeeper(存储层)

编辑:conf/bookkeeper.conf
设置:

zkServers=10.0.0.1:2181,10.0.0.2:2181,10.0.0.3:2181
journalDirectory=/opt/pulsar/data/bookkeeper/journal
ledgerDirectories=/opt/pulsar/data/bookkeeper/ledger

启动 BookKeeeper:

bin/pulsar-daemon start bookie


步骤 4:配置 Pulsar Broker(计算层)

编辑:conf/broker.conf

clusterName=pulsar-cls
zookeeperServers=10.0.0.1:2181
configurationStoreServers=10.0.0.1:2181

webServicePort=8080
brokerServicePort=6650

启动 Broker:

bin/pulsar-daemon start broker

三台机器都执行。


步骤 5:验证 Pulsar 是否正常运行

查看 Broker 列表:

curl http://10.0.0.1:8080/admin/v2/brokers/pulsar-cls

输出示例:

["10.0.0.1:8080","10.0.0.2:8080","10.0.0.3:8080"]


步骤 6:测试生产与消费

创建一个 topic

bin/pulsar-admin topics create persistent://public/default/my-topic

启动生产者

bin/pulsar-client produce my-topic -m "hello pulsar"

启动消费者

bin/pulsar-client consume my-topic -s sub1 -n 0


八、集群监控

Pulsar 支持:

开启监控非常简单,只需在 broker.conf 中开启 metrics。


九、常见部署问题总结

问题原因解决
启动 BookKeeper 报 ZK not foundIP 错误检查 zkServers
Broker 启动失败元数据初始化失败必须先 init metadata
客户端连接不上端口未开放开放 6650/8080
写入速度掉底journal 未使用 SSD建议 SSD + 独立盘

十、结语

Apache Pulsar 是下一代消息系统的代表:稳定、高扩展、多协议、云原生。如果你正在考虑从 Kafka 或 RabbitMQ 升级架构,Pulsar 是非常值得尝试的方向。

退出移动版