【学习手册】Apache pulsar操作手册

本文档详细介绍了Apache Pulsar的安装部署过程,包括BookKeeper和brokers集群的配置,以及Pulsar Manager的安装。此外,还探讨了Pulsar的功能特性,如多租户、云原生架构和与Kafka的区别,并提供了Pulsar的操作命令,如管理namespace、Tenants和Topic。文章最后讨论了权限配置、消息保留策略和连接器的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Apache pulsar安装部署

1.1、前期准备

  • zookeeper 3.4.5
  • pulsar安装包 2.8.1
  • 集群免密环境

1.2、部署步骤

1.2.1、上传安装包到linux服务器上
下载地址:https://pulsar.apache.org/zh-CN/download/
1.2.2、解压文件到data目录下
tar -zxvf apache-pulsar-2.8.1-bin.tar.gz  -C /data/
1.2.3、初始化集群元数据信息

在risen-cdh01上执行

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

执行成功

10:36:09.876 [main] INFO org.apache.bookkeeper.discover.ZKRegistrationManager - Successfully formatted BookKeeper metadata
10:36:09.880 [main] INFO org.apache.zookeeper.ZooKeeper - Session: 0x16734464b360002 closed
10:36:09.880 [main-EventThread] INFO org.apache.zookeeper.ClientCnxn - EventThread shut down for session: 0x16734464b360002
10:36:10.033 [main] INFO org.apache.pulsar.PulsarClusterMetadataSetup - Cluster metadata for 'pulsar-cluster-1' setup correctly

如果执行失败,进入zkclient中。删除相关文件即可

[zookeeper, counters, bookies, ledgers, managed-ledgers, schemas, namespace, admin, loadbalance]
1.2.4、修改Bookkeeper配置文件
vim conf/bookkeeper.conf

修改如下部分:

zkServers=risen-cdh01:2181,risen-cdh02:2181,risen-cdh03:2181

**ps:**端口修改可以自定义,但是不能与已有的端口冲突

1.2.5、修改brokers配置文件
vim  conf/broker.conf

修改如下部分:

zookeeperServers=risen-cdh01:2181,risen-cdh02:2181,risen-cdh03:2181
configurationStoreServers=risen-cdh01:2181,risen-cdh02:2181,risen-cdh03:2181
clusterName=pulsar-cluster
1.2.6、修改conf目录下所有8080端口

因为8080端口过于常用,很容易被占用

这里进行调整,改为8089即可

1.2.7、将修改后的文件分发到其他几台服务器
scp -r apache-pulsar-2.8.1/ risen-cdh02:$PWD
scp -r apache-pulsar-2.8.1/ risen-cdh03:$PWD
1.2.8、安装BookKeeper集群

分别在三台机器执行

bin/pulsar-daemon start bookie

关闭
bin/pulsar-daemon stop bookie

执行完毕之后使用如下命令看看是否启动成功

bin/bookkeeper shell bookiesanity
1.2.9、安装brokers集群

分别在三台机器执行

bin/pulsar-daemon start broker

关闭
bin/pulsar-daemon stop broker

然后在risen-cdh01上执行

bin/pulsar-admin brokers list pulsar-cluster

不报错则启动成功

2、Pulsar Manager安装部署

2.1、前期准备

  • pulsar集群安装完毕
  • 服务器安装了docker

2.2、安装步骤

2.2.1、docker拉取最新的环境
docker pull apachepulsar/pulsar-manager:latest
2.2.2、运行
docker run -dit \
    -p 9527:9527 -p 7750:7750 \
    -e SPRING_CONFIGURATION_FILE=/pulsar-manager/pulsar-manager/application.properties \
    apachepulsar/pulsar-manager:latest
2.2.3、创建账号
CSRF_TOKEN=$(curl http://risen-cdh01: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://risen-cdh01:7750/pulsar-manager/users/superuser \
    -d '{"name": "admin", "password": "apachepulsar", "description": "test", "email": "username@test.org"}'
2.2.4、查询有所的cluster

**pulsar-manager调用的pulsar-admin的api,而这个api需要从broker取信息,所以需要给pulsar-admin指定获取信息的broker url。 **

bin/pulsar-admin clusters list
2.2.5、指定cluster
bin/pulsar-admin clusters update pulsar-cluster --url http://192.168.5.213:8089

2.2.6、登录查询

访问http://risen-cdh01:9527

登录刚刚2.2.3设置的账号密码

安装完毕!

3、Pulsar概念简介

3.1、功能和特性

3.1.1、多租户

目的资源隔离,为每位用户配置不同的资源。A用户只能操作20%的资源,B用户操作30%资源(租户与命名空间的操作配合使用)

租户和命名空间是pulsar支持多租户的两个核心概念。
在租户级别,pulsar为特定的租户预留合适的存储空间、应用授权与认证机制
在命名空间级别,pulsar有一系列的配置策略。包括配额、流控、消息过期策略和命名空间之间的隔离策略
3.1.2、灵活的消息系统
  • 队列模型和流模型的统一,在Topic级别只需要保存一份数据,同一份数据可多次消费。以流式、队列等方式计算不同的订阅模型大大提升了灵活度
  • 同时通过事务采用Exactily-Once在进行消息传输的过程中,可以确保数据不丢失、不重复
  • 流模型可以用pulsar function进行进行 从几个topic中流式ETL然后写入到另外的Topic中
3.1.3、云原生架构
  • 计算与存储分离的云原生架构。数据从broker搬离ÿ
### 关于Pulsar客户端的使用指南 #### 安装与配置 对于希望集成 Apache Pulsar 的应用来说,安装和配置 C++ 客户端库是一个重要的步骤。该库遵循典型的开源项目组织结构[^2]。具体而言: - `src` 文件夹下包含了核心源代码,按照功能模块划分为多个子目录; - `examples` 中提供了若干示例程序,有助于理解如何利用此客户端执行基本操作; - `include` 存储着可供外部调用的 API 接口定义; - 构建过程由位于根目录下的 `CMakeLists.txt` 控制。 为了简化依赖管理和包分发流程,官方还特别准备了一个名为 `vcpkg-example` 的部分,展示了怎样借助 vcpkg 工具链轻松引入并部署 Pulsar C++ SDK 到个人工程之中。 #### 使用方法概述 当涉及到具体的编程实践时,开发者可以参照所提供的例子学习如何创建生产者 (`producer`) 和消费者 (`consumer`) 实体,并借此完成消息的发送与接收任务。此外,在开发过程中合理运用单元测试(存放在 `tests` 目录内),能够有效保障所编写逻辑的健壮性和准确性。 #### API 文档资源 有关更详尽的技术细节以及参数设定方面的指导,则建议查阅随附文档资料——通常放置在 `docs` 路径之下。这里不仅有针对各个类目条目的解释说明,还有助于生成 HTML 或 PDF 版本帮助手册的 Doxygen 配置文件集合。 #### 示例代码片段 下面给出了一段简单的 Python 代码用来展示如何连接至 Pulsar 并向指定主题推送一条信息: ```python from pulsar import Client, MessageId client = Client('pulsar://localhost:6650') producer = client.create_producer('my-topic') try: producer.send(b'Hello world!') finally: client.close() ``` 这段脚本首先初始化了一个指向本地运行的服务实例的客户对象;接着通过这个实例获取到了一个关联特定 topic 的生产者句柄;最后尝试往其中注入一段二进制数据作为新记录的一部分。无论成功与否都会记得释放占用资源以维持良好习惯。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值