Centos 7 Üzerine RabbitMQ Kurulumu
Hepinize merhaba dostlarım 😊. Benim için inanılmaz meşakkatli, yorucu ve aynı zamanda da aşırı fazla deneyim kazandığım bir haftanın ardından gelen bir pazar gününü her zamanki yazılım konularından farklı olarak ve yardım istediğim birçok hocamın ve okuyucularımın bana
Hocam bu konu hakkında bir makale bir de youtube videosu çekin
demesi ile (öneri olmasa da bu makaleyi yazacaktım dostlarım amacım ben zorluüuun gördüm siz görmeyin) yazıyorum. Öncelikle bu süreçte karşılaştığım GENÇAY YILDIZ hocamın (sitesi burada) yazmış olduğu Docker Üzerine rabbitMQ Kurulumu makalesinden yardım aldım. Kendisinin de bu makaleden yardım almama izin verdiği için size de işlemi elimden geldiğince kendi deneyimlerimi ve öğrendiklerimi anlatmak istedim dostlarım 😊. O halde hazırsanız "Centos 7 üzerine RabbitMQ Kurulumu" konusuna giriş yapalım. Amaaa sizin aklınızda bir soru var bunu çözmeden duramam
Hocam Allah sizden razı olsun güzel ve akılda kalıcı anlatıyorsunuz. Lakin bu işlem için bizim sunucu almamız vs gerekiyor ki sunucumuz yok. Bunu nasıl yapacağız ?
Çok güzel bir noktaya değindiniz aslında dostlarım. Şunu deyim ben şimdi eğer hani hosting, domain kullanıyorsanız şu an öğrenmek adına ekstra bir sunucu ve domain alın derim (Bu sizin mevcut sunucunuz değil de deneme olarak işte paket yükle çıkar gibilerinden yapabilirsiniz). Ama maddi olarak imkanınız yok ise dostlarım ve riske giremem vs diyorsanız bilgisayarınıza docker indirip onun üzerinde işlem yapabilirsiniz 😊.
O halde sözümü daha fazla uzatmadan dostlarım hemen konumuza giriş yapalım.
Docker Nedir ?
Eveeeet dostlarım geldik artık konumuzun ilk kısmı 😊. Bunu tamamen ezber veya teorik bir biçimde anlatıp sizi sıkmak istemiyorum dostlarım. Ve benim de bu hafta içerisinde karşılaştığım ve işlemi bu şekilde ayağa kaldırdığım teknolojiye tam hakim olmadığım için çok fazla üzerinde durmadan anlatacağım.
Dostlarım olay tamamen şu. Şimdi sizin bir mikroservis projeniz var diyelim. Atıyorum arka planda Laravel , ön planda Vue.js , Cache mimarisinde Redis , işlem kuyruğu için de RabbitMQ kullanacağınız durumlar olduğunu varsayalım. Bunlara şöyle genel olarak baktığımızda içinizden şunu diyebilirsiniz
Hocam bir sürü işlem var. Biz bunu windows üzerine kurarsak çakışmama ihtimali yok neredeyse
heeeh işte olay tam da burada devreye giriyor. Bunların birbiri ile bağlantılı , izole şekilde çalışması için aslında docker sanal bir ortam oluşturuyor. Gerekli olan paketleri kurup container (alan) oluşturup port açıyoruz. Sonrasında da run komutunu verdiğimizde arka planda uslu uslu kimseye zararı olmadan çalışıyor 😊. Şimdi bu kısımda bazı arkadaşlarımın şunu dediğine eminim ben de zamanında onu demiştim
Hocam çakışsa çakışsa en fazla port kullanıyor der başka ne olabilir ki ?
diyorsunuzdur. Siz öyle sanın dostlarım 😅. Bir sonraki başlıkta bu süreçte neler çektiğimi anlatacağım sizlere
Neden İhtiyaç Duydum ?
Eveeeet dostlarım geldik en civcivli kısım olan "Neden İhtiyaç Duydum ?" kısmına. Dostlarım öncelikle ben sağda solda gördüğüm ve rabbitMQ kullanımına neredeyse Nisan ayından beri kafamı takmıştım. Tamam güzel öğrenmek adına da ufak bir proje geliştirdim. Burası da süper. Şimdi bunu rabbitMQ ile bağlamak kaldı. İşte en can alıcı kısım
Öncelikle dostlarım direkt olarak paketi Centos 7 üzerine kurdum. Portları açtım (gelen giden olayların dinlenmesi için firewall üzerinden açtım). Sonrasında şu komutu yazdığımda
systemctl start rabbitmq-server
komutunda sunucumda bir şeylerin ters gittiğini öğrendim. Yani anlam veremediğim bir şekilde bağlatı isteğini kırıyordu. Birçok hocamla araştırma yaptık bu konuda. /usr/bin/bash içeriğini değiştirdik sonra nasıl deyim /etc/hosts içerisini değiştirdik. Yine çalışmadı
Amaaaa en aksi bir hata oldu. FTP hesapları patladı. Sunucu şirketinden yardım almaya kalktığımda bile bana gelen cevap tam olarak şuydu
Sunucu yönetimi tamamen sizin elinizde. FTP bağlanmak için test hesabı açtığımız halde bile biz de bağlanamıyoruz
bu mesaj beni yıktı. Ciddi ciddi yıktı. Yani en fazla ne olabilir ki dedim ben de portlar da çakıştı Hosts dosyasından ayarlamalar yaptım. Sunucu pufff. Ama sonunda hallettim.
Artık docker kullanmanın önemli olduğunu anlamışsınızdır dostlarım. Şimdi içinizden şunu diyorsunuzdur
Hocam peki docker'ı sunucumuza nasıl kurabiliriz ? Çok uzun sürer mi
şeklinde sorularınız vardır. Buna gelin bir diğer başlık altında değinelim
Sunucumuza Docker Kuralım ?
Eveeeet artık geldik dananın kuyruğunun koptuğu yere 😊. Dostlarım öncelikle ssh terminalimizi açıp
yum install docker
komutunu yazalım. Kurulum işlemimimiz başlayacaktır. Normalde bu komutu denerdim şu an ama bende kurulu olduğu için dostlarım bu işlemde "Zaten kurulu sen bir daha neden kurmaya kalkıyorsun ki dostum" diye uyarı verecektir 😅.
Bu komutu yazdıktan sonra dostlarım
systemctl start docker
systemctl enable docker
komutlarını yazalım. Burada aslında diyoruz ki
Dostum sen bu docker teknolojisini şu an çalıştır. Extra olarak sunucu boot edildiği anda da çalışsın bunu benim için gerçekleştir
şeklinde bir komut beliriyoruz. Daha sonrasında ise bunun kurulduğunu test etmek için
docker -v
yazıp versiyonunu öğrenmek istediğimizde karşımıza
Docker version 1.13.1, build 7d71120/1.13.1
şeklinde bir sonuç çıkacaktır. Versiyonlar birebir aynı olmayabilir güncelleme gelmiş vs olabilir sizde atıyorum 1.14.2 gibilerinden sayı yazarsa korkmayın bu işlem başarılı bir şekilde gerçekleştirilmiş olacaktır 😊. İşte Docker kurulum işlemleri bu kadar 😊.
Şimdi gelelim bir diğer başlıkta bunu inceleyelim
Docker Üzerinde RabbitMQ Kurulumu
Eveeeet geldik beni en fazla mutlu eden kısımlardan birisine daha dostlarım 😊. Artık zamanı geldi ve docker üzerine bu rabbitMQ teknolojisini kurulum kısmına. Buradaki mantık tamamen npm gibi işliyor dostlarım. Öncelikle paket kurulumunu gerçekleştiriyoruz. Hemen ssh üzerinden
docker pull rabbitmq
şeklinde paketimizi yüklüyoruz. Karşınıza
(Gençay YILDIZ hocamın sitesinden alıntıdır)
şeklinde bir çıktı geliyorsa tamamdır paket kurulmaya başlamıştır ve işlemler sıkıntısız bir şekilde ilerliyoruz.
Daha sonrasında ise
docker run -d -p 1453:15672 -p 5672:5672 --name rabbitmqcontainer rabbitmq:3-management
(Gençay YILDIZ hocamın sitesinden alıntıdır)
şeklinde bir komut yazıyoruz. Burada kurmuş olduğumuz rabbitmq kütüphanesinden bir container oluşturuyoruz. Normal şartlarda rabbitMQ üzerine 15672 portundan eriştiğimiz için bunu harici olarak bir adresleme tanımlayabilirsiniz. Mesela kodda 1453 olarak erişmek istediğinizde sizin için portu 15672 olarak anlayacak ve o adresi dinlemeye başlayacaktır. Karşımıza gelecek olan sonuç
(Gençay YILDIZ hocamın sitesinden alıntıdır)
şeklinde olacaktır. Tamam süper bu kısma kadar da başarılı ilerledik 😊
Lakin bu kodu yazdığınızda direkt olarak erişme durumunda bağlantı hatası ile karşı karşıya kalacaksınız. Bunun sebebi ise dostlarım firewall üzerinde o portu açmadığınız içindir. Hemen onun komutlarını da sizle beraber yazalım
sudo firewall-cmd --zone=public --permanent --add-port=5671-5672/tcp
sudo firewall-cmd --zone=public --permanent --add-port=15672/tcp
sudo firewall-cmd --zone=public --permanent --add-port=1453/tcp
sudo firewall-cmd --reload
şeklinde komutlarını da yazalım. Burada da yaptığımız işlemlere bakacak olursak dostlarım belirtilen portları açtık. Daha sonrasında da reload komutu ile firewall'ı yeniledik. Daha sonrasında ssh üzerinde test için
sudo firewall-cmd --list-all-zones
komutunu yazdığımızda karşımıza gelen sonuçlarda public kısmı altında
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: dhcpv6-client ssh
ports: 5671-5672/tcp 15672/tcp 1453/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
şeklinde sonuçlar görüyorsanız bingoooo işlem tamamlanmış olacaktır. Sonrasında ise dostlarım Google Chrome veya hangi tarayıcıyı kullanıyorsanız adres satırı kısmından
sunucu_ip_adresi:1453
komutunu yazdığımızda karşımıza
şeklinde sonuç bizi karşıladııı ve bingooo 💯. Bütün işlemlerimiz başarıyla sonuçlandı dostlarım 😊. Bütün işlem bu kadar. İşte docker rahatlığı bu 😊.
Eveeeet dostlarım bu yazımda sizlere elimden geldiğince dilim döndüğünce Centos 7 Üzerine RabbitMQ Kurulumu konusundan elimden geldiğince dilim döndüğünce bahsettim. Umarım faydalı olmuşumdur. Konu başlarda biraz karmaşık gelebilir. Hani her ne kadar da her yazımda basit dememin yanısıra karmaşık olan yanları illa ki vardır yeni öğrenen dostlarım için. Aynı yollardan geçtiğim için biliyorum anlıyorum. Size tavsiyem bu kısımda deneme yanılma için ufak bir sunucu alıp ve test domaini alıp onun üzerinde işlem yapmanız olacaktır. Ve aman dikkat yanlış paketlerle FTP'yi uçma noktasına getirmeyin.
Aynı zamanda 25 Aralık 2022 de kurmuş olduğum seyyaryazilimci.com soru cevap sitesi de yayında dostlarım haberiniz olsun. Her zaman dediğim gibi sorular ve cevaplar belirli bir süre admin onayından geçerek sistem üzerinde yayınlanmaktadır dostlarım bilginiz olsun😊.
Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim 😊
Yazar Hakkında
Kendi Halinde Bir Backend Developer