Difference between RabbitMQ, ZeroMQ, and Kafka

Architecture Broker-based Peer-to-peer Distributed, partitioned log Protocols AMQP, MQTT, STOMP TCP, IPC, PGM, TIPC Custom binary protocol Message Durability Persistent storage No built-in persistence Persistent and replicated Message Patterns Complex routing (exchanges) Multiple (pub/sub, req/rep, pipeline) Pub/sub, stream processing Throughput Moderate High Very high Latency Moderate Very low Low Scalability Vertical and horizontal Horizontal Horizontal Use Cases Microservices, task queues, RPC Real-time data, low-latency messaging Event sourcing, log aggregation Management Tools Web-based UI, CLI No built-in tools Kafka Manager, Confluent Control Center Delivery Guarantees At-most-once, at-least-once, exactly-once Depends on implementation At-most-once, at-least-once, exactly-once Language Support Multiple language clients Multiple language bindings Java, but many client libraries

Read more here: Source link