Apache Pulsar 与云原生消息中间件

共 20 题
#

1. Pulsar 的分层架构,Broker 无状态与 BookKeeper 存储分离的设计动机

A Broker 无状态负责协议,数据存 BookKeeper,存储计算分离带来弹性扩展、高可用与分层存储 ✓ 正确答案
B Broker 存储数据,无状态
C Pulsar 与 Kafka 架构相同
D BookKeeper 只负责计算
#

2. Pulsar 与 Kafka 的核心差异,存储计算分离与日志追加模型对比

A Pulsar 存储计算分离(BookKeeper)+ 分段分层,Kafka 耦合本地日志,影响扩展性、保留与多租户 ✓ 正确答案
B 两者都存储计算分离
C Pulsar 与 Kafka 日志模型完全相同
D Kafka 支持分层存储
#

3. Pulsar 的多租户模型,tenant/namespace/topic 三级模型与配额治理

A 只有一个 tenant
B namespace 无权限控制
C tenant/namespace/topic 三级实现租户隔离,namespace 级策略与配额治理资源与权限 ✓ 正确答案
D 多租户无法隔离
#

4. Pulsar 的消费模型,共享/独占/故障转移/key-shared 四种订阅类型

A 共享订阅保证严格顺序
B Exclusive 严格顺序、Shared 高并行、Failover 高可用保序、Key_Shared 按 key 保序并行 ✓ 正确答案
C 四种订阅相同
D Key_Shared 无顺序
#

5. Pulsar 的消息确认与重试,ack 超时、负确认(nack)与死信主题

A nack 不影响投递
B ack 超时后消息不会重投
C ack 确认移除,ack 超时/nack 重投,持续失败进死信主题,实现 at-least-once 与失败隔离 ✓ 正确答案
D 死信主题用于发送
#

6. Pulsar Reader API,从指定 messageId 读取、与 Consumer 的差异,以及数据回放与复制管道的用途

A Reader 与 Consumer 完全相同
B Reader 依赖消费组
C Reader 从指定 messageId 读取且无 ack 语义,适合回放与复制管道,Consumer 面向消费组+ack 作业处理 ✓ 正确答案
D Reader 不能回放
#

7. Pulsar 的延迟消息与定时消息实现与精度限制

A 延迟消息精度到毫秒
B 通过 deliverAt 指定投递时间,broker 定时扫描(约秒级)投递,精度秒级,适合定时任务 ✓ 正确答案
C Pulsar 不支持延迟消息
D 延迟消息无精度限制
#

8. Pulsar Functions 与连接器(connector)生态的工程应用

A Functions 只能消费不能处理
B Functions 做轻量流处理,Source/Sink 连接器与外部系统集成,构成数据管道与处理生态 ✓ 正确答案
C Functions 与连接器无关
D 连接器只能连接 Kafka
#

9. Pulsar 事务(消息事务)与跨主题原子性保证

A 通过事务协调器实现跨主题原子写入与消费确认,read_committed 只读已提交,支持 exactly-once ✓ 正确答案
B Pulsar 事务只能单主题
C Pulsar 不支持事务
D 事务不协调 ack
#

10. Pulsar 的分层存储(tiered storage),卸载到 S3/GCS 的机制与成本

A 所有数据都存对象存储
B 分层存储增加成本
C 卸载后无法读取
D 热数据存 BookKeeper,冷 Segment 卸载到 S3/GCS,降低存储成本并支持长期保留,冷读延迟略高 ✓ 正确答案
#

11. Pulsar Java 客户端的生产者/消费者 API 与批量/压缩配置

A 无法配置批量发送
B ProducerBuilder/ConsumerBuilder 配置,启 batching 批量合并发送、compressionType 压缩减少带宽 ✓ 正确答案
C 压缩只在消费端
D 批量发送会降低吞吐
#

12. Pulsar 的 exactly-once 语义,消息去重与幂等生产者

A exactly-once 只需生产端
B 幂等生产者无法去重
C exactly-once 与事务无关
D exactly-once 靠幂等生产者序号去重 + 事务 + 消费端幂等,实现每条消息恰好处理一次 ✓ 正确答案
#

13. Pulsar 与 Spring Boot 集成(spring-pulsar starter)的注解式消费

A spring-pulsar 提供 PulsarTemplate 与 @PulsarListener 注解式消费,配合 spring.pulsar.* 配置集成 ✓ 正确答案
B spring-pulsar 不支持注解消费
C @PulsarListener 只能读取
D 注解消费需手动建容器
#

14. Pulsar 集群的高可用,BookKeeper 写入链路、ack quorum 与读修复

A 单副本即可保证可用
B 读修复不影响一致性
C BookKeeper 多副本 + ack quorum 多数派确认 + 读修复,保证数据不丢与高可用 ✓ 正确答案
D Bookie 故障数据必然丢失
#

15. Pulsar 的消息积压治理,消费 backlog 监控、扩容与跳过策略

A backlog 无法监控
B 扩容消费者一定解决积压
C 积压只能靠重启
D 监控 backlog 并设 backlogQuota,扩容消费者提升并行,必要时跳过/丢弃积压,优化消费 ✓ 正确答案
#

16. Pulsar 的 schema registry,schema 版本演进与兼容性策略(FORWARD/BACKWARD/FULL),如何避免不兼容变更

A 可随意删除字段
B 按 BACKWARD/FORWARD/FULL 策略演进,只增字段不删改,Pulsar 校验阻止不兼容变更 ✓ 正确答案
C schema 演进无需校验
D FULL 只向后兼容
#

17. Pulsar 的跨地域复制(geo-replication),基于 topic 的复制方向、集群拓扑与异步复制的一致性边界

A 跨地域复制无延迟
B 复制是同步强一致
C 复制方向固定
D 按 topic 配置单向/双向复制,异步复制到各集群,跨地域延迟导致最终一致,适合多活容灾 ✓ 正确答案
#

18. Pulsar 的负载均衡与 Topic 归属(ownership)动态迁移

A topic 归属固定不可迁移
B 迁移需搬迁数据
C 负载均衡器把过载 broker 的 topic 动态迁移到低负载 broker,数据在 BookKeeper 只迁计算责任,快且无数据搬迁 ✓ 正确答案
D 迁移期间数据丢失
#

19. Pulsar 与 Kafka/RocketMQ 在云原生部署(K8s/Operator)下的运维对比

A 三者都支持 K8s Operator,Pulsar 存储计算分离弹性好但依赖 BookKeeper 运维复杂,Kafka 相对简单 ✓ 正确答案
B Kafka 无法在 K8s 部署
C Pulsar 无法部署在 K8s
D 三者运维复杂度相同
#

20. Pulsar 的认证与授权,JWT/OAuth 认证流程、namespace 级生产消费权限与 TLS 传输加密

A 认证与授权无关
B 权限只能 topic 级
C JWT/OAuth 认证身份,namespace 级授权控制生产/消费权限,TLS 保护传输,三者配合实现安全 ✓ 正确答案
D TLS 只用于认证