{"id":542,"date":"2016-02-12T00:06:10","date_gmt":"2016-02-11T22:06:10","guid":{"rendered":"https:\/\/gokhan-gokalp.com\/?p=542"},"modified":"2016-02-12T00:06:10","modified_gmt":"2016-02-11T22:06:10","slug":"rabbitmq-nedir-ve-windowsa-kurulumu","status":"publish","type":"post","link":"https:\/\/gokhan-gokalp.com\/tr\/rabbitmq-nedir-ve-windowsa-kurulumu\/","title":{"rendered":"RabbitMQ Nedir ve Windows&#8217;a Kurulumu"},"content":{"rendered":"<p>Merhaba arkada\u015flar.<\/p>\n<p>Bu makale konumda sizlere son zamanlarda \u00fczerinde \u00e7al\u0131\u015fm\u0131\u015f oldu\u011fum,\u00a0server to server bir mesaj kuyru\u011fu sistemi olan <strong>RabbitMQ<\/strong> hakk\u0131nda\u00a0edindi\u011fim deneyimlerimi aktarmaya \u00e7al\u0131\u015faca\u011f\u0131m. :)<\/p>\n<p><a href=\"\/wp-content\/uploads\/2016\/02\/rabbit-logo.jpg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-543 lazyload\" data-src=\"\/wp-content\/uploads\/2016\/02\/rabbit-logo.jpg\" alt=\"rabbit-logo\" width=\"700\" height=\"200\" data-srcset=\"https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/02\/rabbit-logo.jpg 700w, https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/02\/rabbit-logo-300x86.jpg 300w\" data-sizes=\"(max-width: 700px) 100vw, 700px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 700px; --smush-placeholder-aspect-ratio: 700\/200;\" \/><\/a><\/p>\n<h2>RabbitMQ Nedir?<\/h2>\n<p>RabbitMQ en \u00f6z tabiri ile mesaj kuyru\u011fu sistemidir.\u00a0<strong>Publish<\/strong> ve <strong>Subscribe<\/strong> mant\u0131\u011f\u0131 alt\u0131nda\u00a0\u00e7al\u0131\u015fmaktad\u0131r. Yani bir uygulamadan bir mesaj\u0131 al\u0131p, bir ba\u015fka uygulamaya s\u0131ras\u0131 geldi\u011finde bunu iletmektir. Ger\u00e7ek hayat i\u00e7erisinden bir \u00f6rnek vermek gerekirse; t\u0131pk\u0131 bir kargo firmas\u0131n\u0131n ilgili kargoyu g\u00f6ndericiden al\u0131p, belli bir s\u0131ra ile bunu ilgili al\u0131c\u0131ya iletmesi gibidir diyebiliriz.\u00a0RabbitMQ bir \u00e7ok yaz\u0131l\u0131m diline destek verdi\u011fi gibi, bir \u00e7ok i\u015fletim sistemi \u00fczerinde de \u00e7al\u0131\u015fabilmektedir ve <strong>open source<\/strong>&#8216;dur.<\/p>\n<p>Yava\u015f yava\u015f RabbitMQ&#8217;ya giri\u015f yapmaya ba\u015flad\u0131\u011f\u0131m\u0131za g\u00f6re, \u00f6ncelikle literat\u00fcr\u00fcm\u00fczde\u00a0olmas\u0131 gereken bir ka\u00e7 kelime bulunmaktad\u0131r:<\/p>\n<ul>\n<li><strong>Publisher<\/strong>: Kuyru\u011fa mesaj g\u00f6nderen uygulamad\u0131r.<\/li>\n<li><strong>Consumer<\/strong>: Kuyruktaki mesaj\u0131 dinleyecek olan uygulamad\u0131r.<\/li>\n<li><strong>Queue<\/strong>: Mesajlar\u0131n RabbitMQ taraf\u0131ndan eklendi\u011fi kuyruktur.<\/li>\n<li><strong>Exchange<\/strong>: Bir ka\u00e7 Exchange tipi bulunmaktad\u0131r. Yapt\u0131\u011f\u0131 i\u015flem ise ilgili <strong>Routing Key<\/strong>&#8216;e g\u00f6re mesaj\u0131 ilgili <strong>Queue<\/strong>&#8216;ya y\u00f6nlendirmektir.<\/li>\n<li><strong>Exchange Type<\/strong>: \u0130lgili mesaj&#8217;\u0131n <strong>Routing Key&#8217;<\/strong>e g\u00f6re hangi<strong> Queue<\/strong>&#8216;ya nas\u0131l y\u00f6nlendirece\u011fini belirlemektedir.<\/li>\n<\/ul>\n<h2>Neden Kullanmal\u0131y\u0131z?<\/h2>\n<p>\u015euana kadar\u00a0bahsetti\u011fimiz kadar\u0131 ile belki ne gerek var mesaj kuyru\u011fu y\u00f6netimi i\u00e7in 3rd party bir uygulamaya diyebilirsiniz. Veya neden bir mesaj kuyru\u011fu i\u015flemlerine gereksinim duymal\u0131y\u0131m\u00a0da diyebilirsiniz. Cevap basit: her \u015fey <strong>\u00f6l\u00e7eklenebilir(scalability)<\/strong> bir ortam\u00a0olu\u015fturmak i\u00e7in. Anl\u0131k yap\u0131lmayan i\u015flemleri asenkron bir \u015fekilde ger\u00e7ekle\u015ftirerek, hem uygulamam\u0131z\u0131 kullanan ki\u015fileri\u00a0gereksiz bir <strong>response time<\/strong> maliyetinden ar\u0131nd\u0131rm\u0131\u015f oluruz hemde server \u00fczerindeki\u00a0<strong>concurrent process\u00a0<\/strong>maliyetini\u00a0bir nebze \u00f6l\u00e7eklenebilir bir hale getirmi\u015f oluruz.<\/p>\n<p>Kendi mesaj kuyru\u011fu yap\u0131m\u0131z\u0131\u00a0belki bir \u00e7o\u011fumuz SQL \u00fczerinde ger\u00e7ekle\u015ftirmi\u015fizdir. Benimde\u00a0zaman\u0131nda ger\u00e7ekle\u015ftirmi\u015f oldu\u011fum en yayg\u0131n olan \u00f6rne\u011fi ise: Uygulamalar\u0131m\u0131zda e-posta g\u00f6nderme i\u015flemlerinin bir MailQueue tablosuna yaz\u0131lmas\u0131d\u0131r. Sonras\u0131nda ise\u00a0bu MailQueue tablosunu consume edecek bir servis yazarak ilgili e-posta&#8217;lar\u0131n s\u0131ras\u0131yla, asenkron bir \u015fekilde g\u00f6nderilmesini sa\u011flam\u0131\u015f\u0131zd\u0131r. Bu ger\u00e7ekle\u015ftirilen \u00e7\u00f6z\u00fcmde en temel \u00e7\u00f6z\u00fcmlerden birisidir.<\/p>\n<p>Fakat bu \u00e7\u00f6z\u00fcm\u00fcn baz\u0131 dezavantajlar\u0131 bulunmaktad\u0131r:<\/p>\n<ul>\n<li>Queue&#8217;ya eklenmesine karar verdi\u011fimiz bir \u00f6zellik, uygulamam\u0131zda s\u0131kl\u0131kla kullan\u0131lan ve asenkron g\u00f6nderiminde de problem bulunmayan bir \u00f6zelliktir. Bu sebeple olu\u015fturulan bu Queue&#8217;nun belli zaman aral\u0131klar\u0131 ile t\u00fcketilmesi gerekti\u011fi i\u00e7in <strong>RDBMS<\/strong> \u00fczerinde yo\u011fun bir transaction trafi\u011fine sebep olacakt\u0131r.<\/li>\n<li>Ana konumuz\u00a0<strong>\u00f6l\u00e7eklenebilirlik<\/strong>(scalability) oldu\u011fu i\u00e7in, RDBMS \u00fczerinde hem Queue&#8217;ya bir \u00f6\u011fe\u00a0eklerken hemde Queue&#8217;yu\u00a0t\u00fcketirken yo\u011fun transaction&#8217;lara sebebiyet verece\u011fimizden dolay\u0131\u00a0\u00f6l\u00e7eklenebilirlik pek s\u00f6z konusu de\u011fildir.<\/li>\n<li>Birde bunlara ek olarak maintenance ve performans sorunlar\u0131 ile u\u011fra\u015fmak gerekiyor.<\/li>\n<\/ul>\n<p>\u0130\u015fi bu dezavantajlar\u0131 g\u00f6z \u00f6n\u00fcne ald\u0131\u011f\u0131m\u0131z zaman, RabbitMQ\u00a0bunlar\u0131n hepsini \u00f6l\u00e7eklenebilir\u00a0ve performansl\u0131 bir \u015fekilde bizler i\u00e7in kendi Queue mekanizmas\u0131nda ger\u00e7ekle\u015ftiriyor.<\/p>\n<p>RabbitMQ i\u00e7erisinde bulundurdu\u011fu Publish, Subscribe ve Routing mekanizmas\u0131 ile\u00a0Geli\u015fmi\u015f Mesaj Kuyru\u011fu Protokol\u00fc (AMQP) standard\u0131na\u00a0uygun olarak \u00e7al\u0131\u015fmaktad\u0131r. Red Hat Enterprise MRG, MSMQ,\u00a0OpenAMQ gibi enterprise\u00a0\u00e7\u00f6z\u00fcmler aras\u0131nda ise RabbitMQ gerek performans\u0131 gerekse de \u00f6l\u00e7eklenebilirli\u011fi anlam\u0131nda \u00f6n plana \u00e7\u0131kmaktad\u0131r.<\/p>\n<p>RabbitMQ erlang dili ile geli\u015ftirilmi\u015f bir yap\u0131d\u0131r.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2016\/02\/hello-world-example-routing.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-544 lazyload\" data-src=\"\/wp-content\/uploads\/2016\/02\/hello-world-example-routing.png\" alt=\"hello-world-example-routing\" width=\"700\" height=\"328\" data-srcset=\"https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/02\/hello-world-example-routing.png 700w, https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/02\/hello-world-example-routing-300x141.png 300w\" data-sizes=\"(max-width: 700px) 100vw, 700px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 700px; --smush-placeholder-aspect-ratio: 700\/328;\" \/><\/a><\/p>\n<h2>Kurulumu<\/h2>\n<p>Bir \u00e7ok i\u015fletim sistemini destekledi\u011finden bahsetmi\u015ftik. Ben test ortamlar\u0131m i\u00e7in windows \u00fczerinden kurulumlar\u0131m\u0131 ger\u00e7ekle\u015ftirdim. Kurulumlara ba\u015flamadan \u00f6nce, \u00f6ncelikle <strong><a href=\"http:\/\/www.erlang.org\/downloads\">buradan<\/a><\/strong> erlang kayna\u011f\u0131n\u0131 y\u00fcklemeniz gerekmektedir. Ben \u015fuanda en g\u00fcncel s\u00fcr\u00fcm\u00fc olan &#8220;OTP 18.2.1 Windows 64-bit Binary File (101028381)&#8221; kayna\u011f\u0131n\u0131 kullanmaktay\u0131m.<\/p>\n<p>Erlang dilinin kurulumundan sonra RabbitMQ kurulumuna ge\u00e7ebiliriz. \u00d6ncelikle <strong><a href=\"http:\/\/www.rabbitmq.com\/install-windows.html\">buraya<\/a><\/strong> girerek &#8220;download&#8221; sekmesinden RabbitMQ server dosyas\u0131n\u0131 indiriniz. En g\u00fcncel s\u00fcr\u00fcm\u00fc olan &#8220;rabbitmq-server-3.6.0.exe&#8221; versiyonu bende kurulu bulunmaktad\u0131r.<\/p>\n<p>RabbitMQ installer&#8217;\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rmadan \u00f6nce dikkat etmeniz gereken bir ka\u00e7 husus bulunmaktad\u0131r. (\u015eayet sizlerde benim gibi saatlerce kafay\u0131 yiyebilirsiniz.)<\/p>\n<h3><strong>1. Bilgisayar\u0131n\u0131z\u0131n host name&#8217;i, RabbitMQ node name&#8217;i ile ayn\u0131 olmal\u0131d\u0131r. <\/strong><\/h3>\n<p>E\u011fer sizlerde benim gibi bir windows \u00fczerinde farkl\u0131 kullan\u0131c\u0131 oturumlar\u0131 kullan\u0131yorsan\u0131z, bu problemi ya\u015fayabilirsiniz. RabbitMQ node name&#8217;ini ayarlayabilmek i\u00e7in ise: Bilgisayar\u0131m&#8217;a sa\u011f t\u0131klay\u0131p \u00f6zellikler&#8217;e girdikten sonra, a\u015fa\u011f\u0131da g\u00f6rd\u00fc\u011f\u00fcn\u00fcz resim \u00fczerindeki tab men\u00fcye gelerek, &#8220;Ortam De\u011fi\u015fkenleri&#8221; k\u0131sm\u0131na t\u0131klay\u0131n\u0131z.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2016\/02\/sistemozellikleri.jpg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-545 lazyload\" data-src=\"\/wp-content\/uploads\/2016\/02\/sistemozellikleri.jpg\" alt=\"sistemozellikleri\" width=\"412\" height=\"468\" data-srcset=\"https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/02\/sistemozellikleri.jpg 412w, https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/02\/sistemozellikleri-264x300.jpg 264w\" data-sizes=\"(max-width: 412px) 100vw, 412px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 412px; --smush-placeholder-aspect-ratio: 412\/468;\" \/><\/a><\/p>\n<p>Ortam De\u011fi\u015fkenleri&#8217;ne t\u0131klad\u0131ktan sonra a\u00e7\u0131lacak olan pencerede a\u015fa\u011f\u0131da bulunan Yeni butonuna basarak yeni bir ortam de\u011fi\u015fkeni olu\u015fturaca\u011f\u0131z. Bu ortam de\u011fi\u015fkeninin de\u011fi\u015fken ad\u0131: &#8220;RABBITMQ_NODENAME&#8221; girerken de\u011fi\u015fken de\u011ferini ise: &#8220;B\u0130LG\u0130SAYARINIZIN ADINI&#8221; girmeniz gerekmektedir.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2016\/02\/rabbitmq-node.jpg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-546 lazyload\" data-src=\"\/wp-content\/uploads\/2016\/02\/rabbitmq-node.jpg\" alt=\"rabbitmq-node\" width=\"698\" height=\"628\" data-srcset=\"https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/02\/rabbitmq-node.jpg 698w, https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/02\/rabbitmq-node-300x270.jpg 300w\" data-sizes=\"(max-width: 698px) 100vw, 698px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 698px; --smush-placeholder-aspect-ratio: 698\/628;\" \/><\/a><\/p>\n<h3><strong>2. Oturum a\u00e7t\u0131\u011f\u0131n\u0131z kullan\u0131c\u0131 ad\u0131 ASCII karakter i\u00e7ermemelidir<\/strong><\/h3>\n<p>Bu k\u0131s\u0131mda b\u00fcy\u00fck problemlerden birisi. \u00d6rne\u011fin benim oturum a\u00e7ma ad\u0131m &#8220;G\u00f6khan&#8221;\u00a0oldu\u011fu i\u00e7in RabbitMQ server&#8217;\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131m zaman &#8220;bad_utf8_character_code&#8221; hatas\u0131n\u0131 ald\u0131m. Default olarak RabbitMQ &#8220;log&#8221; ve &#8220;db&#8221; dosyalar\u0131n\u0131 &#8220;%USERPROFILE%\\AppData\\Roaming\\RabbitMQ&#8221; path&#8217;i alt\u0131nda tutmaktad\u0131r. Bu path&#8217;i\u00a0de\u011fi\u015ftirebilmek i\u00e7in\u00a01. maddedeki girmi\u015f oldu\u011fumuz Ortam De\u011fi\u015fkenleri penceresinde, yeni bir ortam de\u011fi\u015fkeni eklememiz gerekmektedir. De\u011fi\u015fken ad\u0131: &#8220;RABBITMQ_BASE&#8221; de\u011ferini ise: &#8220;C:\\RabbitMQ&#8221; olacak \u015fekilde (veya farkl\u0131 bir path istiyorsan\u0131z) ayarlaman\u0131z yeterli olacakt\u0131r.<\/p>\n<p>&nbsp;<\/p>\n<p>Gerekli \u00f6nlem i\u015flemlerini kontrol ettikten sonra \u015fimdi indirmi\u015f oldu\u011fumuz installer dosyas\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rabilirsiniz. Bu i\u015flem standart next-&gt;next i\u015flemi ger\u00e7ekle\u015ftirmektedir. Kurulum tamamland\u0131ktan sonra, Ba\u015flat men\u00fcs\u00fcn\u00fcn\u00a0uygulamalar sekmesinde RabbitMQ Server klas\u00f6r\u00fc\u00a0g\u00f6rebilirsiniz. Her\u015fey bu kadar! :)\u00a0\u0130lk kurulum default olan configuration ayarlar\u0131 ile ger\u00e7ekle\u015ftirilmektedir.<\/p>\n<p>Detayl\u0131 configuration ayarlar\u0131na <a href=\"http:\/\/www.rabbitmq.com\/configure.html\"><strong>buradan<\/strong> <\/a>eri\u015febilirsiniz. Bunlara ek olarak da sizlere, RabbitMQ Management Plugin&#8217;inini nas\u0131l etkinle\u015ftirebilece\u011finizi\u00a0g\u00f6stermek istiyorum. \u00c7\u00fcnk\u00fc bu panel \u00fczerinden Queue i\u015flemlerini rahatl\u0131kla takip edebileceksiniz.<\/p>\n<p>\u00d6ncelikle RabbitMQ Server klas\u00f6r\u00fc i\u00e7erisindeki &#8220;<strong>RabbitMQ Command Prompt<\/strong>&#8221; u administrator yetkisi ile \u00e7al\u0131\u015ft\u0131r\u0131n. \u00c7al\u0131\u015ft\u0131rd\u0131ktan\u00a0sonra i\u015flem yapabilmemiz i\u00e7in servislerin bulundu\u011fu &#8220;C:\\Program Files\\RabbitMQ Server\\rabbitmq_server-3.6.0\\sbin&#8221; path&#8217;i alt\u0131na gidelim.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2016\/02\/sbin1.jpg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-547 lazyload\" data-src=\"\/wp-content\/uploads\/2016\/02\/sbin1.jpg\" alt=\"sbin1\" width=\"499\" height=\"334\" data-srcset=\"https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/02\/sbin1.jpg 499w, https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/02\/sbin1-300x201.jpg 300w\" data-sizes=\"(max-width: 499px) 100vw, 499px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 499px; --smush-placeholder-aspect-ratio: 499\/334;\" \/><\/a><\/p>\n<p>sbin path&#8217;ine girdikten sonra \u015fimdi Management Plugin&#8217;inini enable edebilmek i\u00e7in a\u015fa\u011f\u0131daki komutlar\u0131 girelim:<\/p>\n<pre class=\"lang:default decode:true \">rabbitmq-plugins enable rabbitmq_management<\/pre>\n<p>&nbsp;<\/p>\n<p><a href=\"\/wp-content\/uploads\/2016\/02\/plugin-enable.jpg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-548 lazyload\" data-src=\"\/wp-content\/uploads\/2016\/02\/plugin-enable.jpg\" alt=\"plugin-enable\" width=\"499\" height=\"334\" data-srcset=\"https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/02\/plugin-enable.jpg 499w, https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/02\/plugin-enable-300x201.jpg 300w\" data-sizes=\"(max-width: 499px) 100vw, 499px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 499px; --smush-placeholder-aspect-ratio: 499\/334;\" \/><\/a><br \/>\nYukar\u0131daki komutu girdikten sonra g\u00f6rd\u00fc\u011f\u00fcm\u00fcz \u00fczere plugin&#8217;leri enable hale getirmi\u015f bulunmaktad\u0131r.<\/p>\n<blockquote><p><strong>NOT<\/strong>: Enable i\u015flemi s\u0131ras\u0131nda herhangi bir &#8220;Error: unable to connect to node &#8216;rabbit@somename&#8217;: nodedown&#8221;\u00a0ile ilgili bir hata al\u0131rsan\u0131z e\u011fer, komut sat\u0131r\u0131nda &#8220;rabbitmq-service stop&#8221; komutunu \u00e7al\u0131\u015ft\u0131r\u0131p sonras\u0131nda ise &#8220;rabbitmq-server restart&#8221; komutunu \u00e7al\u0131\u015ft\u0131r\u0131n\u0131z.<\/p><\/blockquote>\n<p>Bu i\u015flemlerin sonucunda Management ekran\u0131na girebilmek i\u00e7in localhost&#8217;unuz \u00fczerinden default olarak gelen &#8220;15672&#8221; portu ile\u00a0http:\/\/localhost:15672 adresinden\u00a0eri\u015febilirsiniz. \u0130lk giri\u015f s\u0131ras\u0131nda\u00a0kullan\u0131c\u0131 ve \u015fifre k\u0131s\u0131mlar\u0131 default olarak &#8220;guest&#8221; de\u011feri gelmektedir. A\u015fa\u011f\u0131 \u015fekildeki gibi bir ekrana sahiptir:<\/p>\n<p><a href=\"\/wp-content\/uploads\/2016\/02\/rabbitmq-management.jpg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-549 lazyload\" data-src=\"\/wp-content\/uploads\/2016\/02\/rabbitmq-management.jpg\" alt=\"rabbitmq-management\" width=\"959\" height=\"823\" data-srcset=\"https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/02\/rabbitmq-management.jpg 959w, https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/02\/rabbitmq-management-300x257.jpg 300w\" data-sizes=\"(max-width: 959px) 100vw, 959px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 959px; --smush-placeholder-aspect-ratio: 959\/823;\" \/><\/a><\/p>\n<p>RabbitMQ makale serimin ilkine burada son vermek istiyorum. \u0130lerleyen makalelerimde\u00a0ise, c# provider&#8217;\u0131\u00a0kullanarak nas\u0131l Queue i\u015flemleri\u00a0ger\u00e7ekle\u015ftirilebiliyor, RabbitMQ i\u00e7erisindeki Routing i\u015flemleri nas\u0131l arkaplanda i\u015fliyor gibi konulara de\u011finece\u011fim.<\/p>\n<p>Faydal\u0131 olmas\u0131 dileklerimle. :)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Merhaba arkada\u015flar. Bu makale konumda sizlere son zamanlarda \u00fczerinde \u00e7al\u0131\u015fm\u0131\u015f oldu\u011fum,\u00a0server to server bir mesaj kuyru\u011fu sistemi olan RabbitMQ hakk\u0131nda\u00a0edindi\u011fim deneyimlerimi aktarmaya \u00e7al\u0131\u015faca\u011f\u0131m. :) RabbitMQ Nedir? RabbitMQ en \u00f6z tabiri ile mesaj kuyru\u011fu sistemidir.\u00a0Publish ve Subscribe mant\u0131\u011f\u0131 alt\u0131nda\u00a0\u00e7al\u0131\u015fmaktad\u0131r. Yani bir uygulamadan bir mesaj\u0131 al\u0131p, bir&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/gokhan-gokalp.com\/tr\/rabbitmq-nedir-ve-windowsa-kurulumu\/\">Devam\u0131n\u0131 okuyun<span class=\"screen-reader-text\">RabbitMQ Nedir ve Windows&#8217;a Kurulumu<\/span><\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[152],"tags":[153,155,156,154],"class_list":["post-542","post","type-post","status-publish","format-standard","hentry","category-rabbitmq","tag-rabbitmq","tag-rabbitmq-c","tag-rabbitmq-nedir","tag-rabbitmq-windows-kurulumu","entry"],"translation":{"provider":"WPGlobus","version":"3.0.2","language":"tr","enabled_languages":["en","tr"],"languages":{"en":{"title":true,"content":true,"excerpt":false},"tr":{"title":false,"content":false,"excerpt":false}}},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>RabbitMQ Nedir ve Windows&#039;a Kurulumu - G\u00f6khan G\u00f6kalp<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/gokhan-gokalp.com\/rabbitmq-nedir-ve-windowsa-kurulumu\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"RabbitMQ Nedir ve Windows&#039;a Kurulumu - G\u00f6khan G\u00f6kalp\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gokhan-gokalp.com\/rabbitmq-nedir-ve-windowsa-kurulumu\/\" \/>\n<meta property=\"og:site_name\" content=\"G\u00f6khan G\u00f6kalp\" \/>\n<meta property=\"article:published_time\" content=\"2016-02-11T22:06:10+00:00\" \/>\n<meta name=\"author\" content=\"G\u00f6khan G\u00f6kalp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"G\u00f6khan G\u00f6kalp\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/rabbitmq-nedir-ve-windowsa-kurulumu\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/rabbitmq-nedir-ve-windowsa-kurulumu\\\/\"},\"author\":{\"name\":\"G\u00f6khan G\u00f6kalp\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#\\\/schema\\\/person\\\/7e2a7fa98babd22a5fdae563c4b8cdbe\"},\"headline\":\"RabbitMQ Nedir ve Windows&#8217;a Kurulumu\",\"datePublished\":\"2016-02-11T22:06:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/rabbitmq-nedir-ve-windowsa-kurulumu\\\/\"},\"wordCount\":1283,\"commentCount\":14,\"publisher\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#\\\/schema\\\/person\\\/7e2a7fa98babd22a5fdae563c4b8cdbe\"},\"keywords\":[\"RabbitMQ\",\"RabbitMQ C#\",\"RabbitMQ Nedir\",\"RabbitMQ Windows Kurulumu\"],\"articleSection\":[\"RabbitMQ\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/gokhan-gokalp.com\\\/rabbitmq-nedir-ve-windowsa-kurulumu\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/rabbitmq-nedir-ve-windowsa-kurulumu\\\/\",\"url\":\"https:\\\/\\\/gokhan-gokalp.com\\\/rabbitmq-nedir-ve-windowsa-kurulumu\\\/\",\"name\":\"RabbitMQ Nedir ve Windows'a Kurulumu - G\u00f6khan G\u00f6kalp\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#website\"},\"datePublished\":\"2016-02-11T22:06:10+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/rabbitmq-nedir-ve-windowsa-kurulumu\\\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/gokhan-gokalp.com\\\/rabbitmq-nedir-ve-windowsa-kurulumu\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/rabbitmq-nedir-ve-windowsa-kurulumu\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/gokhan-gokalp.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"RabbitMQ Nedir ve Windows&#8217;a Kurulumu\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#website\",\"url\":\"https:\\\/\\\/gokhan-gokalp.com\\\/\",\"name\":\"G\u00f6khan G\u00f6kalp\",\"description\":\"C# &amp; Python lover\",\"publisher\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#\\\/schema\\\/person\\\/7e2a7fa98babd22a5fdae563c4b8cdbe\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/gokhan-gokalp.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#\\\/schema\\\/person\\\/7e2a7fa98babd22a5fdae563c4b8cdbe\",\"name\":\"G\u00f6khan G\u00f6kalp\",\"pronouns\":\"he\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wp-content\\\/litespeed\\\/avatar\\\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1777985325\",\"url\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wp-content\\\/litespeed\\\/avatar\\\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1777985325\",\"contentUrl\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wp-content\\\/litespeed\\\/avatar\\\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1777985325\",\"caption\":\"G\u00f6khan G\u00f6kalp\"},\"logo\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wp-content\\\/litespeed\\\/avatar\\\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1777985325\"},\"sameAs\":[\"https:\\\/\\\/gokhan-gokalp.com\"],\"url\":\"https:\\\/\\\/gokhan-gokalp.com\\\/tr\\\/author\\\/gok-gokalp\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"RabbitMQ Nedir ve Windows'a Kurulumu - G\u00f6khan G\u00f6kalp","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/gokhan-gokalp.com\/rabbitmq-nedir-ve-windowsa-kurulumu\/","og_locale":"tr_TR","og_type":"article","og_title":"RabbitMQ Nedir ve Windows'a Kurulumu - G\u00f6khan G\u00f6kalp","og_url":"https:\/\/gokhan-gokalp.com\/rabbitmq-nedir-ve-windowsa-kurulumu\/","og_site_name":"G\u00f6khan G\u00f6kalp","article_published_time":"2016-02-11T22:06:10+00:00","author":"G\u00f6khan G\u00f6kalp","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"G\u00f6khan G\u00f6kalp","Tahmini okuma s\u00fcresi":"6 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/gokhan-gokalp.com\/rabbitmq-nedir-ve-windowsa-kurulumu\/#article","isPartOf":{"@id":"https:\/\/gokhan-gokalp.com\/rabbitmq-nedir-ve-windowsa-kurulumu\/"},"author":{"name":"G\u00f6khan G\u00f6kalp","@id":"https:\/\/gokhan-gokalp.com\/#\/schema\/person\/7e2a7fa98babd22a5fdae563c4b8cdbe"},"headline":"RabbitMQ Nedir ve Windows&#8217;a Kurulumu","datePublished":"2016-02-11T22:06:10+00:00","mainEntityOfPage":{"@id":"https:\/\/gokhan-gokalp.com\/rabbitmq-nedir-ve-windowsa-kurulumu\/"},"wordCount":1283,"commentCount":14,"publisher":{"@id":"https:\/\/gokhan-gokalp.com\/#\/schema\/person\/7e2a7fa98babd22a5fdae563c4b8cdbe"},"keywords":["RabbitMQ","RabbitMQ C#","RabbitMQ Nedir","RabbitMQ Windows Kurulumu"],"articleSection":["RabbitMQ"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/gokhan-gokalp.com\/rabbitmq-nedir-ve-windowsa-kurulumu\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/gokhan-gokalp.com\/rabbitmq-nedir-ve-windowsa-kurulumu\/","url":"https:\/\/gokhan-gokalp.com\/rabbitmq-nedir-ve-windowsa-kurulumu\/","name":"RabbitMQ Nedir ve Windows'a Kurulumu - G\u00f6khan G\u00f6kalp","isPartOf":{"@id":"https:\/\/gokhan-gokalp.com\/#website"},"datePublished":"2016-02-11T22:06:10+00:00","breadcrumb":{"@id":"https:\/\/gokhan-gokalp.com\/rabbitmq-nedir-ve-windowsa-kurulumu\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gokhan-gokalp.com\/rabbitmq-nedir-ve-windowsa-kurulumu\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/gokhan-gokalp.com\/rabbitmq-nedir-ve-windowsa-kurulumu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/gokhan-gokalp.com\/"},{"@type":"ListItem","position":2,"name":"RabbitMQ Nedir ve Windows&#8217;a Kurulumu"}]},{"@type":"WebSite","@id":"https:\/\/gokhan-gokalp.com\/#website","url":"https:\/\/gokhan-gokalp.com\/","name":"G\u00f6khan G\u00f6kalp","description":"C# &amp; Python lover","publisher":{"@id":"https:\/\/gokhan-gokalp.com\/#\/schema\/person\/7e2a7fa98babd22a5fdae563c4b8cdbe"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gokhan-gokalp.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/gokhan-gokalp.com\/#\/schema\/person\/7e2a7fa98babd22a5fdae563c4b8cdbe","name":"G\u00f6khan G\u00f6kalp","pronouns":"he","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/gokhan-gokalp.com\/wp-content\/litespeed\/avatar\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1777985325","url":"https:\/\/gokhan-gokalp.com\/wp-content\/litespeed\/avatar\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1777985325","contentUrl":"https:\/\/gokhan-gokalp.com\/wp-content\/litespeed\/avatar\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1777985325","caption":"G\u00f6khan G\u00f6kalp"},"logo":{"@id":"https:\/\/gokhan-gokalp.com\/wp-content\/litespeed\/avatar\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1777985325"},"sameAs":["https:\/\/gokhan-gokalp.com"],"url":"https:\/\/gokhan-gokalp.com\/tr\/author\/gok-gokalp\/"}]}},"_links":{"self":[{"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/posts\/542","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/comments?post=542"}],"version-history":[{"count":1,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/posts\/542\/revisions"}],"predecessor-version":[{"id":550,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/posts\/542\/revisions\/550"}],"wp:attachment":[{"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/media?parent=542"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/categories?post=542"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/tags?post=542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}