Twitter Youtube Github
Burak Kutbay'ın Kişisel Blog'u |

Type and hit Enter to search

  • Etkinliklerim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • RabbitMQ
  • Hibernate
  • JSP
  • Java 21
  • Java 8
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale
RabbitMQ

RabbitMQ Direct Exchange Java Publisher / Consumer Uygulaması

Paylaş

RabbitMQ Dersleri‘ne devam ediyorum.

Önceki Dersimde RabbitMQ’de Exchange çeşitlerinden bahsetmiştim. Buradan erişebilirsiniz.

Bu yazıda RabbitMQ Direct Exchange’dan daha detaylı olarak bahsedeceğim.

RabbitMQ Direct Exchange Nedir?
RabbitMQ Direct Exchange Nedir?

RabbitMQ panelini açalım ve excehange ekleyelim. Bu eklediğimiz excehange Direct tipinde olsun.

RabbitMQ Direct Exchange Eklemek
RabbitMQ Direct Exchange Eklemek

Add exhange butonuna basalım. Exchange listesinin içerisinde bizim eklediğimiz Direct Exchange’nin eklediğinden emin olalım.

RabbitMQ Direct Exchange
RabbitMQ Direct Exchange

Exchange’mizin eklendiğini görmüş olduk. Şimdi Queue’lerimizi ekleyelim. Yazının başında olan Queue’leri sırası ile ekleyelim.

RabbitMQ Queue Eklemek
RabbitMQ Queue Eklemek

Exhange ve Queue işlemlerini yaptık. Bu işlemlerden sonra yapmamız gereken Direct Exchange olarak isimlendirdiğimiz exchangemize queue’ları bindings ederek tanımlamamızı gerçekleştireceğiz. Binding işleminde varolan exchange yöntemi ile queue’mize route key tanımlayacağız. Route key sayesinde mesajlarımızın ilgili consumer’ın alabilmesi için broker’a tanımlamızı yapmış oluyoruz.

blank
Direct Exchange Routing Key Tanımlası

Java uygulamasına geçelim. Publisher ve Consumer uygulamasını yapalım.

Publisher uygulamasını yapalım bu uygulama önceki derste yaptığımız uygulamanın aynısı olacak tek farkı ise göndermek istediğimiz Kuyruk ismini yazmak olacak.

public class DirectPublisher {

    public static void main(String[] args) throws IOException, TimeoutException {

        ConnectionFactory connectionFactory = new ConnectionFactory();
        Connection connection = connectionFactory.newConnection();
        Channel channel = connection.createChannel();

        String message="This is Desktop!";

        channel.basicPublish("Direct-Exchange", "desktop", null, message.getBytes());
        channel.close();
        connection.close();
    }
}Code language: JavaScript (javascript)

basicPublish içerisisinde göndermek istediğimiz Exchange adını ve route key adını belirledik. Biz desktop kuyruğuna gönderdik.

Consume uygulaması ise desktop kuyruğunu dinlesin.

public class DirectConsumer {
    public static void main(String[] args) throws IOException, TimeoutException {
        ConnectionFactory connectionFactory=new ConnectionFactory();
        Connection connection=connectionFactory.newConnection();
        Channel channel=connection.createChannel();

        DeliverCallback deliverCallback=(consumerTag,delivery)->{
            String message=new String(delivery.getBody());
            System.out.println("Message Received => " + message);
        };

        channel.basicConsume("Desktop", true, deliverCallback, consumerTag->{});
    }
}Code language: JavaScript (javascript)

Projeyi çalıştırdığımızda ise sonuç aşağıdaki gibi olacaktır.

Message Received => This is Desktop!Code language: PHP (php)

Publisher uygulamamızdan başka bir kuyruğa mesaj gönderdiğimizde desktop consumer uygulamamız bu mesajı almayacaktır.

Sonraki yazıda görüşmek üzere

Önceki Ders: Round Robin Nedir?
RabbitMQ Dersleri
Sonraki Ders:  Fanout Exchange

Tags:

rabbitmq consumer publisherrabbitmq dersleri

Paylaş

Diğer Yazılar

Spring Security Dersleri Mimari
Previous

Spring Security Mimarisi Akışı

Spring Security Dersleri
Next

Spring Security In-Memory Authentication ve Authorization

Next
Spring Security Dersleri
18 Şubat 2022

Spring Security In-Memory Authentication ve Authorization

Previews
01 Şubat 2022

Spring Security Mimarisi Akışı

Spring Security Dersleri Mimari

No Comment! Be the first one.

Bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgini Çekebilir

RabbitMQ Dersleri

RabbitMQ Fanout Exchange Java Publisher / Consumer Uygulaması

RabbitMQ Dersleri

RabbitMQ Round Robin Nedir?

RabbitMQ Dersleri

RabbitMQ Java Consumer Uygulaması

RabbitMQ Dersleri

RabbitMQ Java Publisher Uygulaması

Burak Kutbay'ın Kişisel Blog'u |

© 2008 - ∞, Her hakkı saklıdır.

Link

  • Hakkımda
  • İletişim
  • Arşiv

Kategori

Cloud
Node.js
Java 24
Android
Struts
Röportaj
Gradle
Amazon Web Services
Vue.js
Video
Redis
Spring Boot 3.0
Debezium
Mikroservis Mimarisi
Spring Native
Spring Cloud Stream
Etkinlikler
XCode
JPA
Objective C
iPhone Uygulama Geliştirme
PostgreSQL
Spring Security
MongoDB
Java 21
Spring Data
Apache Kafka
Yaptığım Projeler
Servlet
Git
Maven
Design Patterns
DevOps
Linux
Spring Jdbc Template
RabbitMQ
JDBC
PrimeFaces
Manset
Google
Spring
Spring MVC
Spring Cloud
OCA Java SE 8
Quarkus
Spring Core
Microsoft
Veritabanı
Java SE
Tanıyalım
Hibernate
Teknoloji
Okuduğum Kitaplar
Java Server Faces
Yazılım Mühendisliği
C Sharp
Spring Boot
Java
Günlüğüm
Java Server Page
Makale

Takip Et

Twitter Youtube Github
  • Etkinliklerim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • RabbitMQ
  • Hibernate
  • JSP
  • Java 21
  • Java 8
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale