go get github.com/streadway/amqp
producer.go
isminde bir dosya oluşturalım. Bu dosyamız RabbitMQ'ya mesaj gönderen kodlarımızı barındıracak.amqp.Dial()
fonksiyonu içerisinde ayağa kaldırdığımız RabbitMQ servisine bağlanmak için gerekli olan bilgileri girdik.kuyruk1
ismini verdik. Aslında bu işlemlerde çok fazla detay var ama basit kullanımını göstermek için özetle anlatıyor olacağım.Publish()
fonksiyonu içerisinde mesajımızı göndereceğimiz ayarlamaları yaptık.amqp.Publishing{}
yapısında göndereceğimizi içeriğin tipini belirttik ve mesajımızı byte dizisine çevirerek gönderdik.kuyruk1
isimli kuyruğumuza "Hello World!"
yazısını gönderdik ve bu yazımız kuyrukta bekliyor.Username
ve Password
kısımlarına guest
yazarak panele giriş yapabilirsiniz.Queues
sekmesine bakabilirsiniz.producer
kodlarımızı 7 defa çalıştırdım. Böylelikle RabbitMQ'ya 7 defa mesaj göndermiş oldu. Tablomuz ne kadar süper anlık olmasa da elinden geldiğince anlık bilgileri vermeye çalışıyor kuyruk1
'de birikti. Şimdi bu mesajlarımızı sıra sıra alacak bir consumer
oluşturalım.consumer.go
isimli bir dosya oluşturalım.consumer.go
içerisinde yeniden kuyruğumuz yani kuyruk1
'in tanımlamasını yaptık. Aslında kuyruğumuzu producer kodlarında zaten tanımlamıştık. Peki burada neden yeniden kuyruk tanımlaması yaptığımızı açıklayalım.consumer.go
'da kuyruk tanımlaması yapmadan çalıştırırsak, Consume()
fonksiyonunda kuyruk ismini belirterek dinleme yapmamız mümkündür. Fakat RabbitMQ sunucusunu yeniden başlattığımızda kuyruk1
isimli kuyruğun silindiğini göreceksiniz. Kuyruk tanımlaması yapmazsak consumer.go
dosyamız çalıştırıldığında kuyruk1
isimli bir kuyruk olmadığı hatasını verecektir. Bunun için işimizi garantiye alıp kuyruğumuzu tanımlıyoruz. Yani producer oluşturmadıysa consumer'ın kuyruğu oluşturmasını sağlıyoruz.