önsöz
Bazı yerlerde, bilgi işlemenin doğruluğunu sağlamak için mesaj kuyrukları kullanılır. Örneğin, yüksek eşzamanlı durumlarda, web siteleri veri işleme gerçekleştirir. Bugün bu makale RabbitMQ'nun basit bir demosunu kaydediyor. Bu makaleye girmeden önce, RbMQ ortamı önceden kurulmalıdır (çünkü yerel RbMQ ortamını daha önce kurdum ve silmenin kayıt defterinin temiz olmaması gibi bazı sorunlara yol açacağından korkuyorum, bu yüzden ortamın kurulumunu burada kaydetmeyeceğim).
Çevre ve Araçlar
>Windows 10 sistemi
>RabbitMQ Çevre Hizmetleri
>VS 2017
Metin
1: İki yeni konsol uygulaması oluşturun: "RabbitMQClient" ve "RabbitMQServer".
2: "RabbitMQ.Client" dll'ine bakın
3: RabbitMQClient projesinde Program.cs aşağıdaki kodu yapıştırın
4: RabbitMQServer projesinde Program.cs şu kodu yapıştırın
5: F5 RabbitMQServer projesini başlatmak için, konsola bilgileri girin, enter tuşuna basın.
6: RabbitMQServer proje konsolunu kapatmayın, RabbitMQClient projesine sağ tıklayın - "Debug" > "Yeni bir örnek başlat" >
Bilgileri sağdaki RabbitMQServer konsoluna girerek solda gösterebilirsiniz. RabbitMQServer projesi mesajlar üretir. RabbitMQClient projesi mesajları işler (tüketir). Bu, mesaj kuyruğundaki üretici ve tüketici. Kod ayrıca yönlendirme ve kanalları da içerir.
Mesaj üreticisi tarafında, işlenilecek bilgileri mesaj kuyruğuna bırakın. Mesajı aldıktan sonra, tüketici bu verileri buna göre işleyebilir.
Ortam kuruluysa, yerel varsayılan port adresi http://localhost:15672/#/queues olmalıdır. Misafir hesabına doğrudan erişebilir veya komut satırına dokunarak hesabı ve ilgili izinleri yapılandırabilirsiniz.
Az önce RabbitMQServer konsoluna girdiğiniz bilgiler aslında önce mesaj kuyruğunda var, önce RabbitMQClient penceresini kapatıp pencereye birkaç bilgi girebilir, mesaj kuyruğunu gözlemleyebilirsiniz ve kuyruğun içinde üç veri parçası olduğunu görebilirsiniz.
RabbitMQClient penceremiz başladığında, mesaj normal şekilde alındıktan sonra otomatik olarak mesaj kuyruğundan kaybolur. Bu, mesaj kuyruğunun onay mekanizmasıdır; ihtiyacımız olan bilgi doğru şekilde alındığında, tüketici mesaj kuyruğuna bir durum geri döndürerek mesajı yok eder. Tüketici mesajı almazsa veya bir istisna varsa ve bu durum değerini döndürmezse, mesaj normal şekilde tüketilene kadar kuyruk içinde kalır ve bu da mesajın doğruluğunu sağlar.
Epilog
Ne yazık ki, projelerimde mesaj kuyruğu kullandığım çok az yer var. Derinlemesine bir anlayış olmadan sadece temel bilgiler kullanılacaktır.
Yukarıdaki demoda bir boşluk var ve RabbitMQClient'teki RbMQ bağlantısı bir kullanım katmanına sahip. Asenkron bir iş parçacığı olduğundan, bu programın mesajı almayı bitirmeden önce RbMQ Bağlantısını çalıştırıp geri dönüştürmesine neden olur ve bir hata bildirilir. Bununla başa çıkmanın yolu: kullanımı kaldırıp manuel olarak serbest bırakmaktır.
|