首页/新闻资讯/正文详情

Apache Pulsar 本地单机模式(Standalone)快速上手指南:安装、启动、收发消息与停止

发布时间:2026/9/24 18:23:39 来源:云帆数科 栏目:资讯中心
Apache Pulsar 本地单机模式(Standalone)快速上手指南:安装、启动、收发消息与停止
消息队列后端流处理【免费下载链接】pulsarApache Pulsar - distributed pub-sub messaging system项目地址https://gitcode.com/gh_mirrors/pulsar28/pulsar点击查看免费下载本文以 Apache Pulsar 仓库中的 getting-started-standalone.md 为骨架结合仓库内的源码如 PulsarStandalone.java、PulsarStandaloneStarter.java与真实配置文件conf/standalone.conf、conf/pulsar_env.sh展开帮助你在本机用一条命令跑起完整的 Pulsar 单机实例完成从下载、解压、启动、收发消息到优雅停止的全流程并为生产集群部署打下基础。一、Standalone 模式是什么对于本地开发与测试Pulsar 提供了standalone单机模式你只需在一台机器上、一个终端里就能运行起一个完整的 Pulsar 实例。从 getting-started-standalone.md 的说明可以看到standalone 模式把以下组件全部放进同一个 Java 虚拟机JVM进程中运行Pulsar broker负责消息的接收、路由与投递BookKeeper 组件负责消息数据的持久化存储RocksDB 组件作为本地元数据存储metadata store替代生产环境中独立部署的 ZooKeeper。从源码角度验证这一点在 PulsarStandalone.java 中可以看到该进程持有PulsarService broker、PulsarAdmin admin、LocalBookkeeperEnsemble bkEnsemble、WorkerConfig workerConfig等核心对象分别对应 broker、管理接口、本地 BookKeeper 集成与可选的 Function Worker。而 PulsarStandaloneStarter.java 会强制把元数据存储地址设置为本地zk:127.0.0.1:port形式并通过config.setRunningStandalone(true)标记当前运行在 standalone 模式下。如果目标是搭建生产环境请阅读 Deploying a Pulsar instance裸机部署指南不要在单机模式下承载生产流量。二、系统要求在开始安装前请确认本机满足以下条件操作系统Pulsar 支持 64 位macOS、Linux与WindowsJDK/JRE需要安装 64 位 JRE/JDK8 或更高版本JVM 位数broker 仅支持运行在 64 位 JVM 上32 位 JVM 无法启动 broker默认内存默认情况下Pulsar 会为 JVM 分配2G 堆内存。内存参数在哪里调整默认的 2G 堆内存配置定义在 conf/pulsar_env.sh 中PULSAR_MEM${PULSAR_MEM:--Xms2g -Xmx2g -XX:MaxDirectMemorySize4g}-Xms2g -Xmx2gJVM 堆的初始与最大大小为 2G-XX:MaxDirectMemorySize4gNetty 等使用的直接内存上限为 4G。该变量支持被外部环境变量覆盖脚本采用${PULSAR_MEM:-...}的默认值语法。调整方式有两种直接修改conf/pulsar_env.sh中的PULSAR_MEM在启动前设置环境变量例如$ export PULSAR_MEM-Xms1g -Xmx1g -XX:MaxDirectMemorySize2g除此之外conf/pulsar_env.sh 还定义了 GC 参数PULSAR_GC默认使用 G1GC与 GC 日志参数PULSAR_GC_LOG会根据 Java 8 / JDK 9 自动切换日志语法这些都属于额外传给 JVM 的选项。三、安装 Pulsar Standalone3.1 下载二进制发行包Pulsar 官方发布预编译的二进制 tarball下载方式有以下几种从 Apache 镜像站下载apache-pulsar-version-bin.tar.gz二进制发行包进入 Pulsar 官方 downloads 页面或 releases 页面选择对应版本使用wget命令行下载URL 以你选择的版本对应的官方下载地址为准$ wget pulsar-二进制发行包下载地址下载完成后解压并进入目录$ tar xvfz apache-pulsar-version-bin.tar.gz $ cd apache-pulsar-version3.2 二进制包包含哪些内容解压后发行包初始包含以下目录目录内容binPulsar 的命令行工具如pulsar与pulsar-adminconfPulsar 的配置文件包括 broker 配置 等examples包含 Pulsar Functions 示例的 Java JAR 包instances为 Pulsar Functions 创建的运行构件artifactslibPulsar 运行所需的 JAR 文件licenses各类组件对应的.txt格式许可文件另外还有两个目录是在开始运行 Pulsar 后才会创建的目录内容dataRocksDB 与 BookKeeper 使用的数据存储目录logs安装产生的日志目录3.3 关于 conf 目录与 RocksDB 配置值得特别说明的是 conf/standalone.conf —— 它是 standalone 模式的核心配置文件。standalone 使用RocksDB 作为本地元数据存储相关配置包括# The metadata store URL metadataStoreUrl # The metadata store URL for the configuration data. If empty, we fall back to use metadataStoreUrl configurationMetadataStoreUrl brokerServicePort6650 webServicePort8080metadataStoreUrl元数据存储地址standalone 启动器会自动将其强制覆盖为本地地址见 PulsarStandaloneStarter.java因此文件中保留空值即可brokerServicePort6650broker 的消息服务端口Pulsar 协议webServicePort8080HTTP 管理端口clusterNamestandalone当前集群名standalone 模式下默认为standalone。在 conf/standalone.conf 中还有一组 RocksDB 专属调优项## RocksDB specific configurations ## DbLedgerStorage uses RocksDB to store the indexes from ## (ledgerId, entryId) - (entryLog, offset) # Size of RocksDB block-cache. For best performance, this cache # should be big enough to hold a significant portion of the index # database which can reach ~2GB in some cases # Default is to use 10% of the direct memory size dbStorage_rocksDB_blockCacheSize # Other RocksDB specific tunables dbStorage_rocksDB_writeBufferSizeMB4 dbStorage_rocksDB_sstSizeInMB4 dbStorage_rocksDB_blockSize4096RocksDB 在 BookKeeper 的DbLedgerStorage中负责维护从(ledgerId, entryId)到(entryLog, offset)的索引映射。dbStorage_rocksDB_blockCacheSize默认取直接内存的 10%当索引库较大某些场景可达约 2GB时建议调大以提升性能RocksDB 更完整的调优参数可参考其官方选项文件示例与 tuning guide。3.4 可选安装内置连接器builtin connectors从2.1.0-incubating版本开始Pulsar 会单独发布一个包含全部builtin连接器的二进制发行包。如果你需要用到 Pulsar IO 连接器按以下步骤安装下载pulsar-io-connector-version.nar格式的连接器文件从 Apache 镜像、官方 downloads 页面或 releases 页面获取在 pulsar 目录下创建connectors目录并把.nar文件放进去例如 aerospike 连接器$ mkdir connectors $ mv pulsar-io-aerospike-version.nar connectors $ ls connectors pulsar-io-aerospike-version.nar ...注意事项在裸机集群中需要确保connectors包在每一个 broker 的 pulsar 目录下都解压一份若 Pulsar Functions 使用独立 worker 集群则要在每个 function-worker 的 pulsar 目录下都放一份如果使用 Docker 运行 Pulsar 或以 Docker 镜像部署如 K8S、DC/OS可直接使用apachepulsar/pulsar-all镜像——该镜像已内置全部 builtin 连接器。不安装连接器不影响 Pulsar 本身的运行可跳过本步骤直接进入 3.5 或第四节启动流程。3.5 可选安装分层存储 offloaderstiered storage offloaders从2.2.0版本开始Pulsar 单独发布包含分层存储 offloaders的二进制发行包。如需启用 分层存储 能力请在每个 broker 节点上执行下载并解压 offloaders tarball把解压出的offloaders目录复制到 pulsar 根目录$ tar xvfz apache-pulsar-offloaders-version-bin.tar.gz // 解压后在 pulsar 目录下会出现名为 apache-pulsar-offloaders-version 的目录 // 将其中的 offloaders 复制出来 $ mv apache-pulsar-offloaders-version/offloaders offloaders $ ls offloaders tiered-storage-jcloud-version.nar分层存储的具体配置方法见 Tiered storage cookbook。同样的注意事项裸机集群中offloaders包需要解压到每个 broker 的 pulsar 目录Docker/K8S/DC/OS 场景可直接使用已内置 offloaders 的apachepulsar/pulsar-all镜像。四、启动 Pulsar Standalone4.1 前台启动拿到最新的发行包后使用bin目录下的pulsar命令并指定 standalone 模式即可启动本地集群$ bin/pulsar standalone启动成功后终端会出现一系列INFO级别日志例如21:59:29.327 [DLM-/stream/storage-OrderedScheduler-3-0] INFO org.apache.bookkeeper.stream.storage.impl.sc.StorageContainerImpl - Successfully started storage container (0). 21:59:34.576 [main] INFO org.apache.pulsar.broker.authentication.AuthenticationService - Authentication is disabled 21:59:34.576 [main] INFO org.apache.pulsar.websocket.WebSocketService - Pulsar WebSocket Service started这几条日志分别表明BookKeeper 存储容器启动成功、broker 认证服务已启动默认关闭认证、WebSocket 服务已就绪。至此一个包含 broker BookKeeper RocksDB 的单机 Pulsar 实例已经对外服务。从源码看standalone 启动器还提供以下可选参数见 PulsarStandaloneStarter.java 与 PulsarStandalone.java--no-broker只启动 BookKeeper不启动 broker--only-broker只启动 broker不启动 BookKeeper二者互斥不能同时使用。4.2 使用要点与安全提醒服务占用当前终端standalone 服务运行在你的终端中并受其直接控制需要执行其他命令时请另开一个终端窗口后台运行也可以使用bin/pulsar-daemon start standalone将服务作为后台进程运行相关命令见pulsar-daemon默认无安全认证默认情况下standalone 不配置加密、认证或授权任何能访问该机器网络地址的远端主机都可以无授权访问。请务必阅读 Security Overview 了解如何加固你的部署自动创建 namespace启动本地 standalone 集群时会自动创建一个public/defaultnamespace该 namespace 专门用于开发测试。Pulsar 的所有 topic 都归属于某个 namespace 之下关于 topic 的更多说明见 Topics。五、使用 Pulsar Standalone 收发消息Pulsar 提供名为pulsar-client的 CLI 工具可以在运行中的集群里对 topic 执行消息的消费与生产。其底层实现位于 pulsar-client-tools并通过--url参数指定要连接的 broker 地址默认连接pulsar://localhost:6650。5.1 消费消息使用订阅名first-subscription消费my-topic上的消息$ bin/pulsar-client consume my-topic -s first-subscription消费成功后pulsar-client日志中会出现如下确认信息22:17:16.781 [main] INFO org.apache.pulsar.client.cli.PulsarClientTool - 1 messages successfully consumed这条日志来自 CmdConsume.java 中的LOG.info({} messages successfully consumed, numMessagesConsumed)其中numMessagesConsumed是本次实际消费的消息条数。5.2 生产消息向my-topic生产一条内容为hello-pulsar的消息$ bin/pulsar-client produce my-topic --messages hello-pulsar发布成功后日志中会出现22:21:08.693 [main] INFO org.apache.pulsar.client.cli.PulsarClientTool - 1 messages successfully produced对应源码位于 CmdProduce.java 的LOG.info({} messages successfully produced, numMessagesSent)。produce子命令还支持更多参数见 CmdProduce.java-m, --messages要发送的消息内容与-f二选一默认分隔符为逗号-f, --files以逗号分隔的待发送文件路径列表与-m二选一-n, --num-produce消息或文件重复发送的次数-r, --rate发送速率控制。5.3 关于 topic 的自动创建细心的读者会发现在消费或生产之前我们并没有显式创建my-topic。这正是 Pulsar 的便捷特性之一对一个尚不存在的 topic 执行消费时Pulsar 会自动创建该 topic对一个尚不存在的 topic 执行生产时同样会自动创建该 topic。因此在上面的示例中my-topic是在第一条命令执行时被自动创建出来的。六、停止 Pulsar Standalone停止前台运行的 standalone 服务直接在该终端按CtrlC即可。如果服务是通过bin/pulsar-daemon start standalone在后台启动的则使用对应命令停止$ bin/pulsar-daemon stop standalone关于pulsar-daemon的更多参数说明参见pulsar-daemon文档。从源码角度看standalone 进程在 PulsarStandaloneStarter.java 注册了 JVM shutdown hook进程退出时会依次停止 Function WorkerfnWorkerService.stop()并关闭 brokerbroker.close()保证数据与元数据能够安全落盘。七、小结至此你已经完成了一次完整的 Pulsar standalone 体验确认系统满足 64 位 JDK 8 要求下载并解压二进制发行包理解bin、conf、examples、lib等目录的用途按需可选安装内置连接器与分层存储 offloaders通过bin/pulsar standalone在单 JVM 中启动 broker BookKeeper RocksDB使用pulsar-client完成消息的生产与消费topic 自动创建使用CtrlC或pulsar-daemon stop standalone优雅停止服务。Standalone 模式是学习和开发 Pulsar 应用的最佳起点。当你需要验证多节点行为、故障转移或生产级容量时可以从裸机部署指南 Deploying a Pulsar instance 开始逐步过渡到集群模式。赞分享消息队列后端流处理【免费下载链接】pulsarApache Pulsar - distributed pub-sub messaging system项目地址https://gitcode.com/gh_mirrors/pulsar28/pulsar点击查看免费下载相关推荐Backstage 后端调度器数据库结构详解backstage_backend_tasks__tasks 表如何支撑分布式任务调度Backstage 后端调度器数据库结构详解 backstage_backend_tasks__tasks 表如何支撑分布式任务调度 本文以 report s消息队列后端流处理Apache Pulsar 在 Docker 中运行 standalone 单机模式本地开发与消息收发实战指南Apache Pulsar 在 Docker 中运行 standalone 单机模式本地开发与消息收发实战指南 本篇技术指南以 Apache Pulsar 官消息队列后端流处理Apache Pulsar 本地 Standalone 模式安装部署实战指南单机快速体验与生产部署路径Apache Pulsar 本地 Standalone 模式安装部署实战指南单机快速体验与生产部署路径 导读 本文以 Apache Pulsar 的 Sta消息队列后端流处理创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

FastAdmin接口调用实战:从Token验证到跨域与AJAX封装
FastAdmin接口调用实战:从Token验证到跨域与AJAX封装

FastAdmin 用起来确实顺手,后台管理类的 CRUD 基本靠点一点就能搞定,但一旦涉及到接口调用,尤其是前端要用 AJAX 去拿数据、外部系统要对接个接口,问题就冒出来了。最近在好几个技术群里看到大家在问 FastAdmin 接口调用相关的东西… · 2026/9/24 18:23:33

精密环形导轨系统全解析:从结构原理到选型调试与维护
精密环形导轨系统全解析:从结构原理到选型调试与维护

1. 精密环形导轨到底是什么:先建立整体认知这两年只要往自动化设备、光伏锂电、消费电子装配线这些地方跑一跑,基本都能看到环形导轨的身影。很多刚入行的工程师第一次见到它,会下意识觉得“这不就是直线导轨弯起来了吗”——这个理解不算错&… · 2026/9/24 18:23:33

2026年国产研发管理工具选型指南:Gitee替代Jira的深度评估
2026年国产研发管理工具选型指南:Gitee替代Jira的深度评估

1. 研发管理工具选型的底层逻辑与市场格局1.1 为什么“替代 Jira”在 2026 年成为必答题做研发管理的同行这两年应该都有明显感受:团队里讨论“要不要换掉 Jira”的频率越来越高。原因不复杂,我把它拆成三层来看。第一层是成本与合规。Jira 的 Server 版… · 2026/9/24 18:23:27

北京昌平靠谱的婚礼策划服务商筛选名录 省心不踩坑选择指南
北京昌平靠谱的婚礼策划服务商筛选名录 省心不踩坑选择指南

在北京昌平准备结婚,不少新人都会被找婚礼策划这件事难住:不知道该怎么筛选靠谱服务商,怕踩坑怕麻烦,更怕费心费力还得不到想要的婚礼效果。整理这份筛选指南,就是希望能帮昌平本地备婚新人理清思路,选到省… · 2026/9/24 19:03:34

LSTM网络流量预测实战:从数据预处理到多步预测避坑指南
LSTM网络流量预测实战:从数据预处理到多步预测避坑指南

简介:循环神经网络(RNN)与长短期记忆网络(LSTM)是处理时间序列数据的经典模型,本压缩包提供一份用Python实现的LSTM网络流量预测源码,面向机器学习初学者、网络运维人员及对时序预测感兴趣的开发… · 2026/9/24 19:03:34

ComfyUI+QwenImageEdit多角度分镜图生图工作流实战
ComfyUI+QwenImageEdit多角度分镜图生图工作流实战

简介:面向 ComfyUI 与 QwenImageEdit 用户的一份轻量工作流方案,专注于多角度剧情分镜的图生图生成。压缩包仅含 1 个 JSON 文件,大小约 12KB,属于可直接导入 ComfyUI 的工作流定义文件,适合需要快速复用或二次修改分镜… · 2026/9/24 19:03:34

MFC版植物大战僵尸:C++教学塔防工程实战解析
MFC版植物大战僵尸:C++教学塔防工程实战解析

简介:一份基于MFC的C《植物大战僵尸》复刻项目,面向具备基础C语法、想了解Windows桌面游戏开发的初学者。资源包含完整工程源码,共15个文件,以6个头文件和3个CPP源文件为主,辅以解决方案与项目配置(sln、vc… · 2026/9/24 19:03:34

Suricata NIDS demo源码拆解:从TCP重组成到规则告警的完整链路
Suricata NIDS demo源码拆解:从TCP重组成到规则告警的完整链路

简介:一份基于Suricata的轻量级网络入侵检测系统毕业设计Demo,包含完整源码与项目说明,面向网络工程、计算机、电子信息等专业学生,可作为课程设计、期末大作业或毕设的参考资料。压缩包共2000个文件,大小约195MB&… · 2026/9/24 19:03:28

人民广场全季酒店水泵更换手记:两台老泵的谢幕与新泵上岗
人民广场全季酒店水泵更换手记:两台老泵的谢幕与新泵上岗

9月下旬的一个工作日,我所在的上海东恩晖团队接到人民广场附近一家全季酒店的电话,说顶楼这阵子洗澡水忽冷忽热,工程部查下来,问题出在地下设备间那两台增压泵上。连锁酒店用水高峰集中,220间客房只要停半天水就是大事… · 2026/9/24 19:03:22

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码