在消息队列系统中,常见的模型类型有哪些?请列举并简要描述。
考察说明
考查对消息队列基本架构和不同模型的理解。
回答思路
- 【回答框架 1】消息队列模型主要分为点对点模型和发布订阅模型两类。点对点模型中,消息被发送到特定队列,每个消息只有一个消费者消费,消费后消息即被移除;发布订阅模型中,消息被发送到主题,所有订阅该主题的消费者都能收到消息副本。
- 【回答框架 2】点对点模型适合任务分发和负载均衡场景,能够确保消息被且仅被处理一次;发布订阅模型适合事件广播和多消费者各自独立处理的场景,但需要处理重复消费问题。
- 【回答框架 3】还有基于推和拉模式的差异:推模式由服务端主动推送,延迟低,但消费者压力可能较大;拉模式由消费者主动拉取,可控制消费速率,适合大批量处理。
- 【回答框架 4】现代消息队列常结合多种模型,例如Kafka使用分区实现并行消费,同时支持消费者组达到点对点效果,也支持订阅实现广播效果。
- 【关键点 1】点对点模型:一消息一消费者,消费后删除。
- 【关键点 2】发布订阅模型:一消息多消费者,各消费者独立消费。
- 【关键点 3】推模式与拉模式影响延迟和消费速率控制。
- 【关键点 4】Kafka通过消费者组实现点对点与发布订阅的结合。
- 【易错点 1】容易混淆点对点中消息被消费后是否删除,部分实现可能保留日志,需注意具体产品的语义。
- 【易错点 2】认为发布订阅一定保证消息不丢失,实际上仍需持久化与确认机制保障可靠性。