曹旭辉 发表于 2025-4-8 20:30:02

pulsar利用指南

Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息、存储、轻量化函数式计算为一体,采用计算与存储分离架构计划,支持多租户、持久化存储、多机房跨区域数据复制,具有强一致性、高吞吐、低延时及高可扩展性等流数据存储特性。以下从核心架构、功能特性、技能优势及应用场景等方面举行详细介绍:
一、核心架构


[*] 分层架构计划
Pulsar 采用 计算与存储分离 的云原生架构,由无状态服务层(Broker)和持久化存储层(BookKeeper)构成:

[*]Broker:负责消息的路由、负载均衡和元数据管理,不存储数据,支持快速扩容和故障转移。
[*]BookKeeper:由多个 Bookie 节点构成,提供分布式日志存储,通太过片(Segment)机制将数据均匀分布,每个分片独立存储并多副本复制,保障数据可靠性和高吞吐。
[*]ZooKeeper:负责集群元数据和谐和一致性管理。

[*] 分片存储与扩展

[*]每个 Topic 分区的数据被拆分为多个分片(Segment),分片作为最小存储单元分布在 Bookie 节点上,支持动态扩容时无需数据迁徙。
[*]存储层扩容通过新增 Bookie 节点实现,新分片优先写入新节点,避免传统分区存储的容量倾斜题目。

二、核心功能特性


[*] 多租户与资源隔离

[*]支持租户(Tenant)和命名空间(Namespace)两级隔离,可配置存储配额、访问权限和消息过期策略,适合企业级多团队共享集群。

[*] 灵活的订阅模式

[*]独占(Exclusive):单消耗者独占订阅,保障严格顺序性。
[*]故障转移(Failover):主备消耗者自动切换,提升高可用性。
[*]共享(Shared):多消耗者轮询消耗,提高吞吐但无序。
[*]键共享(Key_Shared):雷同 Key 的消息路由到同一消耗者,保证 Key 级有序。

[*] 跨地域复制与分层存储

[*]原生支持跨数据中心数据同步(同步/异步模式),用于灾备和环球化部署。
[*]分层存储可将历史数据自动迁徙至 S3、HDFS 等低成本存储,淘汰热数据存储成本。

[*] 流批一体与轻量计算

[*]支持消息队列和流式处置处罚的同一模子,同一数据可多次消耗。
[*]内置 Pulsar Functions 框架,实现无服务器(Serverless)及时数据处置处罚,如过滤、转换和路由。

三、技能优势


[*] 性能与可靠性

[*]低延迟高吞吐:P99 延迟稳定在 5-15ms,支持每秒百万级消息处置处罚,性能不随分区数增加而下降。
[*]强一致性:基于 Quorum 协议的多副本同步写入,保障数据一致性。

[*] 云原生与扩展性

[*]无状态 Broker 和分片存储计划,支持独立扩缩容,适合 Kubernetes 等云环境。
[*]单集群可支持百万级 Topic,远超 Kafka 的扩展能力。

[*] 生态兼容性

[*]提供多语言客户端(Java、Go、Python 等),兼容 Kafka API(KoP 组件),支持无缝迁徙。
[*]与 Flink、Spark 等流计算框架深度集成,支持 SQL 查询和及时分析。

四、典型应用场景


[*]金融领域:及时交易处置处罚、风控监控,利用低延迟和强一致性保障业务可靠性。
[*]电商与物联网:订单异步处置处罚、设备数据收罗,通过共享订阅和分层存储应对高并发。
[*]媒体与日志处置处罚:及时保举、日志流水网络,联合 Pulsar Functions 实现流式 ETL。
[*]微服务通讯:解耦服务间依靠,支持事务消息和死信队列(DLQ)处置处罚异常场景。
五、安装与部署


[*] 单机模式(适合开发测试)

[*]下载与解压:wget https://archive.apache.org/dist/pulsar/pulsar-2.8.1/apache-pulsar-2.8.1-bin.tar.gz
tar xvfz apache-pulsar-2.8.1-bin.tar.gz

[*]启动服务:bin/pulsar standalone# 自动启动ZooKeeper和BookKeeper

[*]验证运行:
查看日志logs/pulsar-standalone.log,或执行bin/pulsar-admin clusters list,返回standalone表示成功。

[*] 集群模式(生产环境)

[*]依靠组件:

[*]ZooKeeper:管理元数据和和谐集群(配置conf/zookeeper.conf)。
[*]BookKeeper:持久化存储消息(配置conf/bookkeeper.conf,指定zkServers)。

[*]Broker配置:
修改conf/broker.conf,设置zookeeperServers和configurationStoreServers指向ZooKeeper集群地址。
[*]启动服务:bin/pulsar-daemon start zookeeper# 启动ZooKeeper
bin/pulsar-daemon start bookie   # 启动BookKeeper
bin/pulsar-daemon start broker   # 启动Broker


六、核心概念与利用


[*] 生产与消耗消息

[*]命令行工具:# 生产消息
bin/pulsar-client produce my-topic --messages "Hello Pulsar"
# 消费消息
bin/pulsar-client consume my-topic -s "my-subscription"

[*]Java客户端示例:// 创建客户端
PulsarClient client = PulsarClient.builder().serviceUrl("pulsar://localhost:6650").build();
// 生产者发送消息
Producer<byte[]> producer = client.newProducer().topic("test-topic").create();
producer.send("Message".getBytes());
// 消费者订阅
Consumer<byte[]> consumer = client.newConsumer().topic("test-topic").subscriptionName("sub").subscribe();
Message<byte[]> msg = consumer.receive();


[*] 订阅模式

[*]独占订阅(Exclusive):仅答应一个消耗者毗连,实用于严格有序场景。
[*]故障转移(Failover):主消耗者故障时自动切换备用消耗者,适合高可用需求。
[*]共享订阅(Shared):多个消耗者轮询消耗,吞吐量高但无序。
[*]键共享(Key_Shared):雷同Key的消息路由到同一消耗者,保证Key级有序(需消息指定Key)。

七、高级配置与优化


[*] 负载均衡

[*]动态扩缩容:Broker无状态计划,新增节点后负载自动迁徙。
[*]策略配置:

[*]修改conf/broker.conf启用loadBalancerEnabled=true。
[*]选择卸载策略(如ThresholdShedder)和放置策略(如ModularLoadManager)。


[*] 存储与性能

[*]BookKeeper优化:

[*]配置I/O隔离路径(写入、追尾读、追赶读分离)。
[*]调解journalSyncData=false提升写入性能(捐躯部分持久性)。

[*]消息批处置处罚:启用batchingEnabled淘汰小消息开销。

八、监控与维护


[*] 日志与指标

[*]查看logs目录下的Broker/Bookie日志。
[*]集成Prometheus监控(配置metricsProvider=org.apache.bookkeeper.stats.prometheus.PrometheusMetricsProvider)。

[*] 多租户管理

[*]通过租户(Tenant)和命名空间(Namespace)隔离资源:bin/pulsar-admin tenants create my-tenant
bin/pulsar-admin namespaces create my-tenant/my-namespace


九、最佳实践


[*]开发发起:

[*]利用persistent://tenant/namespace/topic规范Topic命名。
[*]避免Shared模式下的消息顺序依靠。

[*]生产环境调优:

[*]调解JVM堆内存(PULSAR_MEM参数)。
[*]启用TLS加密通讯(配置webServiceUrlTls和brokerServiceUrlTls)。

十、总结

Apache Pulsar 凭借其云原生架构、多模式消息处置处罚和高扩展性,成为及时数据场景的优选方案。无论是金融级强一致需求,照旧海量物联网数据流,Pulsar 均能提供高效可靠的解决方案。其活跃的社区和持续迭代(如 2024 年发布的 3.1.x 版本加强 Geo-Replication 功能)进一步巩固了其在消息中心件领域的领先职位。
https://i-blog.csdnimg.cn/direct/bd319778500c4f958a5a107c1dee570a.jpeg#pic_center

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: pulsar利用指南