# 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 只用于认证