Spring Boot ile RabbitMQ Kullanımı

0 3,258

Bu yazımızda RabbitMQ’ya veri yazma üzerinde duracağız. İlk adımımız RabbitMQ’yu docker üzerinde ayağa kaldırmak olacak. Bunun için hub.docker.com gidip Rabbit image’ını indirebiliriz. Eğer docker komutlarına aşina değilseniz  basit docker komutlarını anlattığım önceki yazıma bakmanız faydalı olabilir.

https://bilisim.io/2020/05/09/docker-101/

Bu yazı için yeni bir proje başlatmayacağım, önceki yazılarda adım adım ilerlettiğimiz GraphQL projesi üzerine geliştirme yapacağım. O projeye aşağıdaki linkten ulaşabilirsiniz.

https://github.com/cemdrman/SpringBootWithGraphQL

RabbitMQ

Aşağıdaki komutu kullanarak kendi makinenizde RabbitMQ kaldırabilirsiniz. Ayrıca bize arayüz sağlayan bir plugin mevcut. İlgili bilgilere Docker Hub üzerinden ulaşabilirsiniz.

Şimdi aşağıdaki adrese gidip bu pluginin nasıl gözüktüğüne bakabiliriz. Burada belki şöyle bir bilgi vermek gerekir. Aşağıdaki adresteki port bilgisi RabbitMQ’nun değil, management plugin ile gelen uygulamasının port bilgisidir.

Java Kodu

Öncelikle dependency ekliyoruz.

Burada şunu belirtmek faydalı olabilir ki görüldüğü üzere Rabbit’e özgü bir dependency eklemiyoruz. Çünkü dependency ismindeki AMQP(Advanced Message Queuing Protocol) bir protokol. Bu noktada ürünler değişebilir fakat protokol aynı kalacaktır.

RabbitMQ ayarlarının olacağı bir konfigürasyon class’ı oluşturuyoruz.

Bir servis katmanı oluşturup RabbitMQ ile yapılacak işlemleri buraya ekliyoruz.

application.yml dosyamızda ayarlar da aşağıdaki gibi olmalıdır. Docker komutunda belirttiğimiz bilgilerin doğruluğundan emin olmak gerek. RabbitMQ’nun default portu 5672, plugin portu ise 15672.

Şimdi tek kalan işlem Rabbit’e yazmak.

Artık Rabbite yazıp yazmadığımızı kontrol edebiliriz. Ana sayfadan Queues tabına geçiyoruz. Burada oluşturduğumuz queue ismini görmemiz gerekiyor. Bu queue’nun içinde ilgili bilgiler mevcut. Get messages kısmından yazdığımız kaydı aşağıdaki gibi görebiliriz.

Rabbit UI Plugin: http://localhost:15672/

RabbitMQ ile ilgili diğer yazılarımız için;

Bir sonraki yazımız gönderilen mesajın okunması üzerine olacak.

Faydalı olması dileğiyle.

Email adresiniz yayınlanmayacaktır.