Mesaj her türlü bilgi içerebilir. • Mesajın tüketicilere ulaşmasını sağlar. • Diğer bir uygulamayı tetiklemek için kullanılabilir. https://www.rabbitmq.com/img/tutorials/intro/hello-world-example-routing.png
• Ağır işlemler sırasında hızlıca cevap dönebilmek için • Uygulamalar arasında direk bağlantı kurmamak için • Event-Driven ilerleyebilmek için • Uygulamamızı daha rahat ölçekleyebilmek (scaling) için http://www.iron.io/top-10-uses-for-message-queue/
mesajı alır ve kendi türüne göre mesajı kuyruğa yönlendirme ile yükümlüdür. • Exchange'den kuyruklara bir bağlama (binding) işlemi yapılır. Bir mesaj birden fazla kuyurğa bağlanabilir. • Mesajlar bir tüketici (consumer) alana kadar kuyrukta bekler. • Tüketici mesajları alır. https://www.cloudamqp.com/images/blog/exchanges_bidings_routing_keys.png
Öncelikli olarak bir Exchange'e gönderilir. • Exchange mesajlarınızı farklı kuyruklara yönlendirir. (Routing and Binding) https://www.cloudamqp.com/images/blog/exchanges_bidings_routing_keys.png
yönlendirir. • Fanout : Bir fanout exchange mesajları, yönlendirme anahtarlarına(routing key) bakmaksızın, bütün kuyruklara dağıtır. “Broadcasting” için uygun bir exchange’dir. http://rubybunny.info/articles/exchanges.html
ve bir kuyruk sunucusunda birden fazla uygulamayı çalıştırabilirsiniz. • RabbitMQ’da kullanıcılara bazı izinler ekleyerek kullanıcıların hangi kuyruklara erişip hangilere erişemeyeceğini belirtebilirsiniz.
birden fazla bağlantı açmak isteyebilir. Bu durumda Channel’lar sayesinde bir tek TCP bağlantısı üzerinden birden fazla bağlantı oluşturabilirsiniz. • Channel’lar birbirleri ile birşey paylaşmazlar tamamen ayrılmışlardır.
Her kuyruğun bir adı vardır ve bazı diğer özellikleri vardır : • Durability : Broker yeniden başlatıldığında mesajların silinip silinmeyeceğine karar verir. Eğer “Durable” ise kalır. “Transient” ise mesajlar silinir. • Auto Delete: Bu özellik ile tüm tüketiciler bağlantılarını kopardığında kuyruk otomatik olarak kendini silecektir. • Bunlar dışında çeşitli argumanlar ile kuyruğunuza bazı özellikler ekleyebilirsiniz: x-message-ttl, x-expires, x-max-length, x-max-length- bytes, … gibi.
yapılardır. • Ayrı ayrı uygulamalar da olabilir tek bir uygulama bütün kuyrukları dinliyor da olabilir. • Örnek bir PHP (üretici) producer ve (consumer)tüketici uygulamaya göz atalım.