BlazingMQ: Introduction


Özet

BlazingMQ, Bloomberg tarafından geliştirilen ve açık kaynak olarak yayınlanan bir mesaj kuyruğu ara yazılımıdır.
Yazıda önce diğer popüler mesaj tabanlı ara yazılımlar (RabbitMQ, Apache Kafka, Apache Pulsar, IBM MQ) inceleniyor ve BlazingMQ’nin bu alternatiflere kıyasla hangi özelliklerle öne çıktığı açıklanıyor.
BlazingMQ’nin temel özellikleri arasında:

  • “Domain” ve “Queue” kavramı ile kuyrukların yapılandırılabilmesi (örneğin TTL, teslim denemesi sayısı, üretici/ tüketici sınırları).
  • Kuyrukların otomatik yaratılması ve bağlantı kopunca silinmesi gibi yaşam döngüsü yönetimi.
  • Mesajların yükü (payload), özellikler (properties) ve benzersiz kimlik (GUID) ile temsil edilmesi.
  • Mesaj yönlendirme için üç ana mod: öncelik (priority), çoklu alıcı grubu (fan-out) ve yayın (broadcast).
  • Abonelikler (subscriptions) ile mesaj özelliklerine göre filtreleme yapılabilmesi; aboneliğe göre öncelik belirlenmesi gibi gelişmiş özellikler.
  • “Zehirli” mesajların (poison pill) algılanması ve limitlerin aşılması durumunda mesajın atılması, sıkıştırma desteği, tüketici akış kontrolü, host sağlık izleme ve yapılandırılabilir tutarlılık seviyeleri (eventual vs strong consistency) gibi ek özellikler.
    Makale bu ilk tanıtım yazısı olarak BlazingMQ’nin mimarisine genel bir bakış sunuyor ve sonraki yazılarda kümeleme, iletişim protokolü gibi detaylara girileceği belirtiliyor.

Summary

BlazingMQ is a message queue middleware system developed at Bloomberg and released as open-source.
The article begins with a review of other popular message-oriented middleware systems (RabbitMQ, Apache Kafka, Apache Pulsar, IBM MQ) to provide context.
Key features of BlazingMQ include:

  • Use of “domains” and “queues” where domains configure settings like TTL, max delivery attempts, producer/consumer limits.
  • Automatic creation and deletion of queues when needed (queues are created when opened, deleted when no messages and no connected clients).
  • Messages consist of payload, properties (metadata), and a GUID; operations are asynchronous.
  • Three routing modes: Priority mode (competing consumers with prioritized consumers), Fan-out mode (one message to multiple consumer groups without duplicating underlying queues), and Broadcast mode (non-persisted publish/subscribe with at-most-once semantics).
  • Subscriptions with filters based on message properties; priority per subscription; ability to combine filtering with consumer priority.
  • Additional features: poison-pill detection (drops messages failing too many times), transparent compression in SDK, consumer flow-control (limits on pending messages/bytes), host health-monitoring (queues suspend if host unhealthy), configurable consistency levels (eventual vs strong) across clustered brokers.
    The article closes by noting this is an overview and that BlazingMQ is especially suited for use-cases where high resilience and custom load-distribution are valuable, and next articles will cover clustering and client/broker protocol details.

1 Like