Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 8397|Yanıt: 0

RabbitMQ'nun üç değişim moduna (fanout, direct ve topic) giriş

[Bağlantıyı kopyala]
Yayınlandı 29.03.2018 14:30:45 | | | |
Giriş:
RabbitMQ'da, üreticiler tarafından gönderilen tüm mesajlar Exchange tarafından kabul edilir ve Exchange belirli bir politikaya göre bunları depolama için Queue'ya iletir
RabbitMQ dört tür alışveriş sunar: fanout, direkt, konu ve başlık
Başlık modu pratikte daha az kullanılır ve bu makale sadece ilk üç modu karşılaştırmaktadır.

1. Doğrudan Değişim


Direct Exchange'e gönderilen tüm mesajlar, RouteKey'de belirtilen Kuyruk sayfasına iletilir.

1. Genel olarak, rabbitMQ ile gelen Exchange'i kullanabilirsiniz:" (Exchange'in adı boş bir dizidir, bundan sonra varsayılan Exchange olarak adlandırılacaktır).

2. Bu modda, Exchange üzerinde herhangi bir bağlama işlemi yapılmasına gerek yoktur

3. Mesajlaşma için bir "RouteKey" gereklidir; bu, gönderilecek kuyruğun adı olarak basitçe anlaşılabilir.

4. RouteKey'de belirtilen kuyruk adı vhost'ta yoksa, mesaj kaldırılır.

2. Grup Değişimi


Fanout Borsası'na gönderilen tüm mesajlar, o Borsaya bağlı tüm Kuyruklara iletilir.

1. Yönlendirme tablosunun bir deseni olarak anlaşılabilir

2. Bu mod RouteKey gerektirmez

3. Bu mod, Exchange'in Kuyruğuna önceden bağlanmasını gerektirir, bir Exchange birden fazla Kuyruğa bağlanabilir ve bir Queue birden fazla Exchange'e bağlanabilir.

4. Mesajı alan Borsa herhangi bir Kuyruk ile bağlı değilse, mesaj düşürülür.

3. Konu Değişimi


Konu Değişimi'ne gönderilen tüm mesajlar, RouteKey'de belirtilen konulara önem veren tüm Kuyruklara iletilir

1. Bu desen daha karmaşıktır, basitçe söylemek gerekirse, her kuyruğun kendi endişe konusu vardır, tüm mesajların bir "başlığı" (RouteKey) vardır ve Exchange, bu mesajı endişe konusu olan RouteKey ile uydurabilecek tüm kuyruklara iletecektir.

2. Bu mod, Exchange'i ve Kuyruk'u önceden bağlayan bir RouteKey gerektirir.

3. Bağlama sırasında, kuyruğun önem verdiği bir konu verin; örneğin "#.log.#" gibi, kuyruğun loglarla ilgili tüm mesajlara önem verdiğini belirtmek için (RouteKey ile "MQ.log.error" mesajı kuyruğun içine iletilir).

4. "#" 0 veya birkaç anahtar kelime anlamına gelirken, "" ise bir anahtar kelime anlamına gelir. Örneğin, "log." "log.warn" ile eşleşebilir, ancak "log.warn.timeout" ile eşleşemez; Ama "log.#" yukarıdakiyle eşleşiyor.

5. Benzer şekilde, Exchange RouteKey ile eşleşen bir Queue bulamazsa, bu mesajı bırakır.




Önceki:Android SSL sertifikalarının güçlü doğrulamasını aşmak için XPosed kullanın
Önümüzdeki:.net/c# RabbitMQ bağlantı kopması - bağlantı kesme ve yeniden bağlantı
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com