RabbitMQ 和 Kafka 都是消息系统,但从根本上不同——RabbitMQ 是传统消息代理(队列、灵活的路由、消息被消费后移除),而 Kafka 是分布式事件日志(消息保留、可重放、高吞吐量流处理)。它们适用于不同的使用场景。
基本区别
RABBITMQ → a message BROKER (smart broker, simple consumer):
→ messages ROUTED via exchanges, CONSUMED and removed (transient)
→ rich ROUTING (exchange types); per-message handling; push-based
→ for: task queues, complex routing, request/reply, traditional messaging
KAFKA → a distributed event LOG (simple broker, smart consumer):
→ events RETAINED (not removed on consume), replayable; partition-based
→ very high throughput; multiple consumers read the same data; pull-based
→ for: event streaming, high-volume data, pipelines, retention/replay
