Əsas məzmuna keçin

Kafka vs RabbitMQ vs ActiveMQ

  • QUEUE: 1 consumer, 1 data read.
  • Pub-Sub: Bir neçə subscriber, mesaj bir neçə dəfə oxuna bilər.
  • Kafka mesaj prioritetini dəstəkləmir.
  • Kafka-da mesajların sırası yalnız bir partition daxilində qorunur.
  • Apache Kafka açıq mənbəli, publish-subscribe əsaslı messaging sistemidir.
  • Bütün mesajlarını disklərdə saxlayır; oxu və yazılar ardıcıl şəkildə həyata keçirilir.
  • Use cases: Metrics, Log Aggregation, Stream processing, Commit Log, Website activity tracking, Product suggestions.
  • Broker: Kafka serveri, broker adlanır.
  • Record: Kafka-da mesaj və ya event; açar (key), dəyər (value), timestamp və opsional metadata daxildir.
  • Topic: Mesajlar kateqoriyalara bölünür, hər biri topic adlanır; topic adı unikal olmalıdır.
    • Topic-dəki mesajlar istənilən sayda oxuna bilər, istehlakdan sonra silinmir.
    • Mesajlar müəyyən müddət və ya yaddaş limiti keçənə qədər saxlanır.
  • Kafka Cluster: Bir və ya bir neçə brokerdən ibarət qruplaşma.
  • ZooKeeper: Distribüt edilmiş key-value store; brokerlər arasında koordinasiya və metadata idarəçiliyi üçün istifadə olunur.
  • Dead Letter Queue (DLQ): Emal edilə bilməyən səhvli mesajlar üçün ayrılmış queue; monitorinq və yenidən işləmə üçün istifadə olunur.

RabbitMQ vs Kafka vs ActiveMQ

XüsusiyyətKafkaRabbitMQActiveMQ
Performance & ScalabilityYüksək throughput və horizontal scalabiltyYüksək performans, amma Kafka-dan zəifYüksək performans, amma Kafka-dan zəif
Message OrderingPartition daxilində sıra təmin edilirQueue və topic daxilində sıra təmin edilirQueue daxilində sıra təmin edilir
Message PriorityDəstəkləmirPrioritet dəstəyi varPrioritet dəstəyi var
Message ModelDistribüt edilmiş log əsaslı modelQueue əsaslı (AMQP protokolu)Queue əsaslı (JMS standartı)
DurabilityLog replikasiyası ilə daxili təminatKonfiqurasiya edilə bilən durabilityMaster-Slave replikasiyası
Message RoutingTopic-partition əsaslı sadə routingGeniş routing imkanları (exchanges, bindings)Seçicilər və topic-lər vasitəsilə routing
ReplicationPartition replikasiyasıMirrored Queues ilə replikasiyaMaster-Slave mexanizmi
Stream ProcessingKafka Streams vasitəsilə daxili dəstəkStream processing varÜçüncü tərəf kitabxanaları ilə
LatencyOrta səviyyədəAşağı latency, real-time tətbiqlər üçünOrta səviyyədə
LicenseApache 2.0Mozilla Public LicenseApache 2.0