RabbitMQ

RabbitMQ

RabbitMQ

RabbitMQ, uygulama ölçeğinizi genişlettiğinizde uygulamanızın birbirleriyle iletişim kurmasına yardımcı olan Advance Message Queue Protocol'ü (AMQP) uygulayan Message Broker'ın bir parçasıdır.

RabbitMQ hakkında konuşmadan önce, hepinizin mikro hizmetler arasında iletişim kurmanın 2 yolunu bildiğinden emin olmak istiyorum. Bunlar Noktadan Noktaya (P2P) / Senkron İletişim, ve Yayınlama-Abone (Pub-Sub) / Asenkron Communication. Bu ikisi arasındaki farklar nelerdir?
Senkron İletişim olarak adlandırılan P2P olarak, bir uygulamanın doğrudan sunucudan anında yanıt almasını gerektiren HTTP protokolünü kullanarak doğrudan diğer uygulamaya iletişim kuracağını biliyoruz.
Eşzamanlı olmayan iletişim olarak Pub-Sub olarak, sunucudan anında yanıt verilmesi gerekmediğini biliyoruz ve gönderilen iletinin bir mesaj kuyruğuna (veya Kurumsal Mesajlaşma Sisteminde Olay Kuyruğu olarak bilinir) yerleştirileceğini biliyoruz.

RabbitMQ da kullanarak katman yapı olarak adlandırılan Erlang mikro-hizmetler ve bir uygulama her ikisi de olabilir nedeniyle. RabbitMQ çoklu protokolleri destekliyor , burada RabbitMQ'nun desteklediği protokol var:
- AMQP
- HTTP
- STOMP
- MQTT

 

RABBİTMQ NASIL ÇALIŞIR?

Exchange, mesajı hangi sıraya kaydedeceğine karar veren bir algoritmadır
(üreticiden mesaj alın, tüketici sırasına dahil). Her tüketici kullandığınız mantığa göre kendi sırasını alır , Exchange'de kullanabileceğiniz 4 tür mantık vardır:
- Doğrudan Değişim : Bir mesaj yönlendirme anahtarına dayanarak doğrudan kuyruğa girer
- Fanout Değişimi : Tüm sıralara yayınlanır aynı yönlendirme anahtarına sahip
- Topic Exchange : Bağlamada belirtilen aynı yönlendirme anahtarına ve yönlendirme düzenine sahip tüm kuyruklarda yayınlanacak
- Başlıklar Değişimi : Üstbilgi, bir dosya gönderirken başlık anlamına gelir; *'

 

NEDEN RABBİTMQ KULLANMAMIZ GEREKİYOR?

Ayrıştırma : Ayrıştırmanın anlamı, uygulamanın temel bileşenlerini ayırmaktır. Mikro hizmetleri uygulayan herhangi bir uygulamanın istediği şey budur. Çünkü başvuruları sürdürülebilir olacak ve Tek Sorumluluk İlkesi'nin kalitesini artıracak .

Esneklik : Uygulama ayrıştırıldığı için uygulama bir sonraki aşamaya kadar geliştirilebilecek kadar esnek olacaktır . Ancak sadece esnek değildir, çünkü RabbitMQ kullanıyorsanız, farklı bir uygulama tarafından yazılmış 2 farklı uygulamayı / hizmeti bağlayabileceksiniz , bu uygulama MOM olan bir “tercüman” yardımıyla birbirleriyle konuşacak.

RabbitMQ kullanmanın bir başka avantajı:
- Yüksek Kullanılabilir Sıra
- Çoklu Protokol
- Birçok İstemci
- Kümeleme
- Yönetim Kullanıcı Arayüzü
- İzleme ( Kontrol panelini kullanarak desteği izleyebilir)
- Eklenti Sistemi (Çekirdek aracının işlevselliğini çeşitli şekillerde genişletme)