{"id":910,"date":"2016-10-24T00:06:49","date_gmt":"2016-10-23T21:06:49","guid":{"rendered":"https:\/\/gokhan-gokalp.com\/?p=910"},"modified":"2017-12-01T09:28:17","modified_gmt":"2017-12-01T07:28:17","slug":"apache-kafka-nedir","status":"publish","type":"post","link":"https:\/\/gokhan-gokalp.com\/tr\/apache-kafka-nedir\/","title":{"rendered":"Apache Kafka Serisi 01 &#8211; Apache Kafka&#8217;ya Giri\u015f"},"content":{"rendered":"<p>Merhaba arkada\u015flar.<\/p>\n<p>Bu makale konusunda sizlere\u00a0son d\u00f6nemlerde pop\u00fclerle\u015fmekte olan\u00a0y\u00fcksek performansl\u0131 da\u011f\u0131t\u0131k mesajla\u015fma sistemi Apache Kafka&#8217;n\u0131n, genel hatlar\u0131na\u00a0de\u011finiyor olaca\u011f\u0131m.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2016\/10\/Apache_kafka.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-911 lazyload\" data-src=\"\/wp-content\/uploads\/2016\/10\/Apache_kafka.png\" alt=\"apache_kafka\" width=\"534\" height=\"130\" data-srcset=\"https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/10\/Apache_kafka.png 534w, https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/10\/Apache_kafka-300x73.png 300w\" data-sizes=\"(max-width: 534px) 100vw, 534px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 534px; --smush-placeholder-aspect-ratio: 534\/130;\" \/><\/a><\/p>\n<p>Distributed messaging system konusuna girmeden \u00f6nce, her \u015feyin temeli olan\u00a0<strong>big data<\/strong> olay\u0131na biraz de\u011finelim.\u00a0G\u00fcn\u00fcm\u00fcz teknolojisinde big data denilen \u015fey, git gide h\u0131zla b\u00fcy\u00fcmeye ve her an olu\u015fabilen bir hale gelmi\u015ftir. En basit \u00f6rnek olarak Google \u00fczerinde bizler her saniye yeni veriler olu\u015fturmaktay\u0131z. \u0130statistiklere g\u00f6re sadece Google \u00fczerinde anl\u0131k 40.000 civar\u0131nda arama sonu\u00e7lar\u0131 olu\u015fmaktad\u0131r. Buda g\u00fcnl\u00fck olarak yakla\u015f\u0131k 3.4 civar\u0131na ve y\u0131ll\u0131k olarak ise 1.2\u00a0trillion search verisi yapmaktad\u0131r.<\/p>\n<p>Bu verilerin anl\u0131k olarak devasa boyutlara ula\u015fmas\u0131yla beraber ise, real-time&#8217;a yak\u0131n bir s\u00fcrede geri ula\u015f\u0131labilme ihtiya\u00e7lar\u0131 do\u011fmu\u015ftur. \u0130\u015fte bu noktada <strong>Apache Kafka<\/strong>&#8216;n\u0131n temel \u00f6nemi, <strong>big data<\/strong> ak\u0131\u015f\u0131n\u0131 d\u00fc\u015f\u00fck bir <strong>latency<\/strong> ile\u00a0sa\u011flamaya \u00e7al\u0131\u015fmas\u0131d\u0131r. Bu proje ilk ba\u015fta LinkedIn b\u00fcnyesinde geli\u015ftirilip, sonras\u0131nda ise open-source bir hale gelmi\u015ftir.\u00a0Apache Kafka d\u00fc\u015f\u00fck <strong>latency<\/strong> oran\u0131 ile <strong>real-time<\/strong> veri ak\u0131\u015f\u0131n\u0131 sa\u011flayabilmek i\u00e7in verileri log kayd\u0131na benzer bir yap\u0131da tutarak, farkl\u0131 sistemlere MQ(Messaging Queue) \u015feklinde sunmaktad\u0131r. Dilerseniz Kafka terminolojisine biraz giri\u015f yapal\u0131m.<\/p>\n<h4>Kafka Terminolojisi<\/h4>\n<p><a href=\"\/wp-content\/uploads\/2016\/10\/kafka-flow-2.jpg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-914 lazyload\" data-src=\"\/wp-content\/uploads\/2016\/10\/kafka-flow-2.jpg\" alt=\"kafka-flow-2\" width=\"800\" height=\"199\" data-srcset=\"https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/10\/kafka-flow-2.jpg 800w, https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/10\/kafka-flow-2-300x75.jpg 300w\" data-sizes=\"(max-width: 800px) 100vw, 800px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 800px; --smush-placeholder-aspect-ratio: 800\/199;\" \/><\/a><\/p>\n<ul>\n<li><strong>Topic<\/strong> kullan\u0131c\u0131 tan\u0131ml\u0131 category ismidir. Hangi message yay\u0131nlanacaksa kafka message&#8217;lar\u0131 <strong>Topic<\/strong>&#8216;lerde tutar<\/li>\n<li><strong>Producer<\/strong>&#8216;lar ise topic&#8217;lere mesajlar\u0131 g\u00f6nderenlerdir<\/li>\n<li><strong>Consumer<\/strong>&#8216;lar ise topic&#8217;leri dinleyenlerdir<\/li>\n<li><strong>Broker<\/strong>&#8216;lar ise grup halindeki sunuculard\u0131r. Bir cluster&#8217;\u0131 olu\u015ftururlar<\/li>\n<li>Aralar\u0131ndaki haberle\u015fme ise <strong>TCP<\/strong> protokol\u00fc \u00fczerinden ger\u00e7ekle\u015fti\u011fi i\u00e7in dil ba\u011f\u0131ms\u0131zd\u0131r<\/li>\n<\/ul>\n<p>Kafka&#8217;n\u0131n genel terminolojisine bakt\u0131ktan sonra, dilerseniz <strong>Topic<\/strong> konusunu biraz a\u00e7al\u0131m.<\/p>\n<h4>Topic Yap\u0131s\u0131<\/h4>\n<h4><a href=\"\/wp-content\/uploads\/2016\/10\/Kafka-Partition-Diagram.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-915 lazyload\" data-src=\"\/wp-content\/uploads\/2016\/10\/Kafka-Partition-Diagram.png\" alt=\"kafka-partition-diagram\" width=\"469\" height=\"462\" data-srcset=\"https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/10\/Kafka-Partition-Diagram.png 469w, https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/10\/Kafka-Partition-Diagram-300x296.png 300w, https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/10\/Kafka-Partition-Diagram-100x100.png 100w\" data-sizes=\"(max-width: 469px) 100vw, 469px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 469px; --smush-placeholder-aspect-ratio: 469\/462;\" \/><\/a><\/h4>\n<p>Kafka&#8217;da message&#8217;lar\u0131n tutuldu\u011fu yerin, topic&#8217;ler oldu\u011funu s\u00f6ylemi\u015ftik. Bu topic&#8217;ler bir veya birden fazla partition&#8217;lardan yani b\u00f6l\u00fcmlerden meydana gelirler.\u00a0Message&#8217;lar ise\u00a0partition&#8217;lara yukar\u0131daki \u015fekilde de g\u00f6r\u00fclebilece\u011fi \u00fczere\u00a0<strong>s\u0131ral\u0131\u00a0<\/strong>ve <strong>immutable<\/strong> olarak eklenirler. Topic&#8217;ler i\u00e7erisindeki bu message&#8217;lar, unique olarak belirlenir ve her bir s\u0131raya <strong>offset<\/strong> ad\u0131 verilir.\u00a0Topic&#8217;lere gelen her bir message, yukar\u0131da \u015fekilde oldu\u011fu gibi dizi sonuna s\u0131ral\u0131 bir \u015fekilde ekleniyor ve\u00a0offset numaras\u0131 s\u0131ras\u0131yla\u00a0art\u0131yor. Ekleme i\u015flemi ise immutable olarak ger\u00e7ekle\u015fti\u011fi i\u00e7in\u00a0ilgili message&#8217;\u0131n partition ve offset bilgisi\u00a0de\u011fi\u015fmiyor. Bu i\u015flem sayesinde istenilen message, herhangi bir okuma i\u015fleminden\u00a0sonra bile kaybolmuyor,\u00a0tekrar\u00a0eri\u015febilmek m\u00fcmk\u00fcn oluyor.<\/p>\n<p>Kafka&#8217;n\u0131n distributed taraf\u0131ndaki harika bir \u00f6zelli\u011fi ise\u00a0her bir client, ayr\u0131 bir b\u00f6l\u00fcme\u00a0yazabilir veya ayr\u0131 bir b\u00f6l\u00fcm\u00a0\u00fczerinden okuma i\u015flemini\u00a0ger\u00e7ekle\u015ftirebilmektedir.\u00a0Kafka&#8217;n\u0131n bu partitioning mimarisi sayesinde paralel okuyabilme ve yazabilme i\u015flemleri de\u00a0m\u00fcmk\u00fcn\u00a0olabilmektedir.<\/p>\n<h4>Replication &amp; Failure<\/h4>\n<p><a href=\"\/wp-content\/uploads\/2016\/10\/kafka_replication_diagram.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-917 lazyload\" data-src=\"\/wp-content\/uploads\/2016\/10\/kafka_replication_diagram.png\" alt=\"kafka_replication_diagram\" width=\"580\" height=\"166\" data-srcset=\"https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/10\/kafka_replication_diagram.png 580w, https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/10\/kafka_replication_diagram-300x86.png 300w\" data-sizes=\"(max-width: 580px) 100vw, 580px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 580px; --smush-placeholder-aspect-ratio: 580\/166;\" \/><\/a><\/p>\n<p>Her bir b\u00f6l\u00fcm cluster&#8217;daki di\u011fer broker&#8217;lara, istenildi\u011fi taktirde yedekleme i\u00e7in kopyalanabilirler. Yukar\u0131da g\u00f6rselde oldu\u011fu gibi her bir b\u00f6l\u00fcm\u00fcn, bir leader&#8217;\u0131 olur ve di\u011ferleri(follower) bu\u00a0leader&#8217;\u0131 takip ederler. D\u0131\u015far\u0131dan okuma yazma i\u015flemleri de sadece leader b\u00f6l\u00fcme yap\u0131l\u0131r. Ayr\u0131ca leader, gelen t\u00fcm yazma i\u015flemlerini s\u0131raya koymakla ve bu yazma i\u015flemlerini di\u011fer replica&#8217;lara(followers) ayn\u0131 s\u0131rayla yaymakla sorumludur. Failure durumu i\u00e7in ise bir broker&#8217;da herhangi bir b\u00f6l\u00fcm hata verirse, o b\u00f6l\u00fcm\u00fcn di\u011fer follower&#8217;lar\u0131ndan birisi leader haline gelir ve hizmet vermeye devam eder.<\/p>\n<h4>Producer Yap\u0131s\u0131<\/h4>\n<p>Topic&#8217;lere message g\u00f6nderenlerin de,\u00a0Producer&#8217;lar oldu\u011funu s\u00f6ylemi\u015ftik. Producer&#8217;lar hangi message&#8217;in hangi b\u00f6l\u00fcme gidece\u011fine karar verebilirler. Bu karar verme i\u015flemini bir scheduling algoritmas\u0131 olan <strong>round-robin<\/strong> \u015feklinde veya <strong>semantic partitioning<\/strong> ile ger\u00e7ekle\u015ftirir.<\/p>\n<p>\u00d6rne\u011fin bir message\u00a0g\u00f6nderilirken\u00a0message key verilmi\u015f ise g\u00f6nderilen bu message, message key&#8217;e g\u00f6re ilgili topic&#8217;in semantic partitioning b\u00f6l\u00fcm\u00fcne\u00a0yaz\u0131lmaktad\u0131r. Yani\u00a0istedi\u011fimiz message&#8217;lar\u0131 ayn\u0131 partition i\u00e7erisine g\u00f6ndermek istedi\u011fimizde kullanabiliriz.<\/p>\n<h4>Consumer Yap\u0131s\u0131<\/h4>\n<p><a href=\"\/wp-content\/uploads\/2016\/10\/apache-kafka-consumer-Kopya.jpg\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-922 lazyload\" data-src=\"\/wp-content\/uploads\/2016\/10\/apache-kafka-consumer-Kopya.jpg\" alt=\"apache-kafka-consumer-kopya\" width=\"449\" height=\"277\" data-srcset=\"https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/10\/apache-kafka-consumer-Kopya.jpg 449w, https:\/\/gokhan-gokalp.com\/wp-content\/uploads\/2016\/10\/apache-kafka-consumer-Kopya-300x185.jpg 300w\" data-sizes=\"(max-width: 449px) 100vw, 449px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 449px; --smush-placeholder-aspect-ratio: 449\/277;\" \/><\/a><\/p>\n<p>Kafka, i\u00e7erisinde <strong>Message Queue<\/strong> ve <strong>Publish-Subscribe<\/strong> olmak \u00fczere iki\u00a0model bar\u0131nd\u0131r\u0131r. Queue modelinde consumer&#8217;lar server&#8217;dan tek tek okumaktad\u0131r ve her bir kay\u0131t bu consumer&#8217;lardan birisine gitmektedir. Publish-Subscribe modelinde ise kay\u0131tlar, t\u00fcm consumer&#8217;lara broadcast olmaktad\u0131r.<\/p>\n<p>Bu iki modelin g\u00fc\u00e7l\u00fc yanlar\u0131n\u0131n oldu\u011fu gibi zay\u0131f yanlar\u0131 da mevcuttur:<\/p>\n<ul>\n<li><strong>Queue<\/strong> modeli multiple consumer olarak verilerin ayr\u0131 bir \u015fekilde\u00a0process edilebilmesini sa\u011flar ve\u00a0processing i\u015flemlerini scale edebilmeye olanak sa\u011flamaktad\u0131r. Dezavantaj\u0131 ise\u00a0queu&#8217;lar multi-subscriber de\u011fildir ve\u00a0veriyi sadece bir process bir kere okur ve biter.<\/li>\n<li><strong>Publish-Subscriber<\/strong> modeli ise\u00a0veriyi multiple process&#8217;lere boradcast etmeye olanak sa\u011flar. Fakat b\u00fct\u00fcn message&#8217;lar t\u00fcm subscriber&#8217;lara gitti\u011fi i\u00e7in process&#8217;leri scale etmenin yolu bulunmamaktad\u0131r.<\/li>\n<\/ul>\n<p>Yukar\u0131da \u015fekilde g\u00f6r\u00fcld\u00fc\u011f\u00fc gibi her bir consumer, bir consumer group&#8217;a aittir. Bunlara ek olarak group i\u00e7erisindeki consumer say\u0131s\u0131 b\u00f6l\u00fcm say\u0131s\u0131ndan fazla olsa bile, kafka en fazla b\u00f6l\u00fcm say\u0131s\u0131 kadar bir group i\u00e7erisindeki consumer&#8217;\u0131n okumas\u0131na izin\u00a0vermektedir.<\/p>\n<h4>Peki ne\u00a0zaman kullan\u0131lmal\u0131?<\/h4>\n<ul>\n<li>MQ yap\u0131s\u0131na ihtiya\u00e7 duyuldu\u011funda<\/li>\n<li>Log toplanmas\u0131 gerekti\u011finde<\/li>\n<li>Event sourcing i\u015flemlerinde<\/li>\n<li>Stream i\u015fleme yap\u0131lar\u0131nda<\/li>\n<\/ul>\n<p>ve web activity tracking i\u015flemlerinde g\u00fc\u00e7l\u00fc bir \u015fekilde kullan\u0131labilmektedir.<\/p>\n<p>Kimler kullan\u0131yor k\u0131sm\u0131na bakt\u0131\u011f\u0131m\u0131zda ise tabi ilk olarak LinkedIn,\u00a0Yahoo, Twitter, Netflix, Spotify, Uber, PayPal ve Foursquare gibi b\u00fcy\u00fck verilere sahip olan firmalar kar\u015f\u0131m\u0131za \u00e7\u0131kmaktad\u0131r.<\/p>\n<p>Apache Kafka konusunda de\u011fineceklerim \u015fimdilik bu kadar. Apache Kafka&#8217;n\u0131n kurulumu ve \u00f6rnek kullan\u0131m\u0131 hakk\u0131ndaki konular\u0131 ise bir sonraki makale serisinde ele almay\u0131 planl\u0131yorum.<\/p>\n<p>Umar\u0131m keyifli\u00a0bir giri\u015f bilgisi olmu\u015ftur.<\/p>\n<p>Takipte kal\u0131n.<\/p>\n<h5>Kaynaklar<\/h5>\n<blockquote><p>http:\/\/www.forbes.com\/sites\/bernardmarr\/2015\/09\/30\/big-data-20-mind-boggling-facts-everyone-must-read\/#703040d6c1d3<br \/>\nhttps:\/\/engineering.linkedin.com\/kafka\/intra-cluster-replication-apache-kafka<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"5Ub8TO8wNA\"><p><a href=\"https:\/\/jakubkorab.net\/2015\/12\/message-distribution-and-topic-partitioning-in-kafka.html\">Message Distribution and Topic Partitioning in Kafka<\/a><\/p><\/blockquote>\n<p><iframe class=\"wp-embedded-content lazyload\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Message Distribution and Topic Partitioning in Kafka&#8221; &#8212; Jakub Korab\" data-src=\"https:\/\/jakubkorab.net\/2015\/12\/message-distribution-and-topic-partitioning-in-kafka.html\/embed#?secret=Z40e3epdpJ#?secret=5Ub8TO8wNA\" data-secret=\"5Ub8TO8wNA\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" data-load-mode=\"1\"><\/iframe><br \/>\nhttps:\/\/www.infoq.com\/articles\/apache-kafka<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Merhaba arkada\u015flar. Bu makale konusunda sizlere\u00a0son d\u00f6nemlerde pop\u00fclerle\u015fmekte olan\u00a0y\u00fcksek performansl\u0131 da\u011f\u0131t\u0131k mesajla\u015fma sistemi Apache Kafka&#8217;n\u0131n, genel hatlar\u0131na\u00a0de\u011finiyor olaca\u011f\u0131m. Distributed messaging system konusuna girmeden \u00f6nce, her \u015feyin temeli olan\u00a0big data olay\u0131na biraz de\u011finelim.\u00a0G\u00fcn\u00fcm\u00fcz teknolojisinde big data denilen \u015fey, git gide h\u0131zla b\u00fcy\u00fcmeye ve her an olu\u015fabilen&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/gokhan-gokalp.com\/tr\/apache-kafka-nedir\/\">Devam\u0131n\u0131 okuyun<span class=\"screen-reader-text\">Apache Kafka Serisi 01 &#8211; Apache Kafka&#8217;ya Giri\u015f<\/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":[285],"tags":[316,318,317,320,319],"class_list":["post-910","post","type-post","status-publish","format-standard","hentry","category-messaging","tag-apache-kafka","tag-apache-kafka-messaging","tag-apache-kafka-nedir","tag-apache-kafka-publish-subscriber","tag-big-data","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>Apache Kafka Serisi 01 - Apache Kafka&#039;ya Giri\u015f - 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\/apache-kafka-nedir\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Apache Kafka Serisi 01 - Apache Kafka&#039;ya Giri\u015f - G\u00f6khan G\u00f6kalp\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gokhan-gokalp.com\/apache-kafka-nedir\/\" \/>\n<meta property=\"og:site_name\" content=\"G\u00f6khan G\u00f6kalp\" \/>\n<meta property=\"article:published_time\" content=\"2016-10-23T21:06:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-12-01T07:28:17+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=\"5 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/apache-kafka-nedir\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/apache-kafka-nedir\\\/\"},\"author\":{\"name\":\"G\u00f6khan G\u00f6kalp\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#\\\/schema\\\/person\\\/7e2a7fa98babd22a5fdae563c4b8cdbe\"},\"headline\":\"Apache Kafka Serisi 01 &#8211; Apache Kafka&#8217;ya Giri\u015f\",\"datePublished\":\"2016-10-23T21:06:49+00:00\",\"dateModified\":\"2017-12-01T07:28:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/apache-kafka-nedir\\\/\"},\"wordCount\":1060,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#\\\/schema\\\/person\\\/7e2a7fa98babd22a5fdae563c4b8cdbe\"},\"keywords\":[\"Apache Kafka\",\"Apache Kafka Messaging\",\"Apache Kafka Nedir\",\"Apache Kafka Publish-Subscriber\",\"Big Data\"],\"articleSection\":[\"Messaging\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/gokhan-gokalp.com\\\/apache-kafka-nedir\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/apache-kafka-nedir\\\/\",\"url\":\"https:\\\/\\\/gokhan-gokalp.com\\\/apache-kafka-nedir\\\/\",\"name\":\"Apache Kafka Serisi 01 - Apache Kafka'ya Giri\u015f - G\u00f6khan G\u00f6kalp\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/#website\"},\"datePublished\":\"2016-10-23T21:06:49+00:00\",\"dateModified\":\"2017-12-01T07:28:17+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/apache-kafka-nedir\\\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/gokhan-gokalp.com\\\/apache-kafka-nedir\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/apache-kafka-nedir\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/gokhan-gokalp.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Apache Kafka Serisi 01 &#8211; Apache Kafka&#8217;ya Giri\u015f\"}]},{\"@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=1776170659\",\"url\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wp-content\\\/litespeed\\\/avatar\\\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659\",\"contentUrl\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wp-content\\\/litespeed\\\/avatar\\\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659\",\"caption\":\"G\u00f6khan G\u00f6kalp\"},\"logo\":{\"@id\":\"https:\\\/\\\/gokhan-gokalp.com\\\/wp-content\\\/litespeed\\\/avatar\\\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659\"},\"sameAs\":[\"https:\\\/\\\/gokhan-gokalp.com\"],\"url\":\"https:\\\/\\\/gokhan-gokalp.com\\\/tr\\\/author\\\/gok-gokalp\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Apache Kafka Serisi 01 - Apache Kafka'ya Giri\u015f - 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\/apache-kafka-nedir\/","og_locale":"tr_TR","og_type":"article","og_title":"Apache Kafka Serisi 01 - Apache Kafka'ya Giri\u015f - G\u00f6khan G\u00f6kalp","og_url":"https:\/\/gokhan-gokalp.com\/apache-kafka-nedir\/","og_site_name":"G\u00f6khan G\u00f6kalp","article_published_time":"2016-10-23T21:06:49+00:00","article_modified_time":"2017-12-01T07:28:17+00:00","author":"G\u00f6khan G\u00f6kalp","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"G\u00f6khan G\u00f6kalp","Tahmini okuma s\u00fcresi":"5 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/gokhan-gokalp.com\/apache-kafka-nedir\/#article","isPartOf":{"@id":"https:\/\/gokhan-gokalp.com\/apache-kafka-nedir\/"},"author":{"name":"G\u00f6khan G\u00f6kalp","@id":"https:\/\/gokhan-gokalp.com\/#\/schema\/person\/7e2a7fa98babd22a5fdae563c4b8cdbe"},"headline":"Apache Kafka Serisi 01 &#8211; Apache Kafka&#8217;ya Giri\u015f","datePublished":"2016-10-23T21:06:49+00:00","dateModified":"2017-12-01T07:28:17+00:00","mainEntityOfPage":{"@id":"https:\/\/gokhan-gokalp.com\/apache-kafka-nedir\/"},"wordCount":1060,"commentCount":2,"publisher":{"@id":"https:\/\/gokhan-gokalp.com\/#\/schema\/person\/7e2a7fa98babd22a5fdae563c4b8cdbe"},"keywords":["Apache Kafka","Apache Kafka Messaging","Apache Kafka Nedir","Apache Kafka Publish-Subscriber","Big Data"],"articleSection":["Messaging"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/gokhan-gokalp.com\/apache-kafka-nedir\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/gokhan-gokalp.com\/apache-kafka-nedir\/","url":"https:\/\/gokhan-gokalp.com\/apache-kafka-nedir\/","name":"Apache Kafka Serisi 01 - Apache Kafka'ya Giri\u015f - G\u00f6khan G\u00f6kalp","isPartOf":{"@id":"https:\/\/gokhan-gokalp.com\/#website"},"datePublished":"2016-10-23T21:06:49+00:00","dateModified":"2017-12-01T07:28:17+00:00","breadcrumb":{"@id":"https:\/\/gokhan-gokalp.com\/apache-kafka-nedir\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gokhan-gokalp.com\/apache-kafka-nedir\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/gokhan-gokalp.com\/apache-kafka-nedir\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/gokhan-gokalp.com\/"},{"@type":"ListItem","position":2,"name":"Apache Kafka Serisi 01 &#8211; Apache Kafka&#8217;ya Giri\u015f"}]},{"@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=1776170659","url":"https:\/\/gokhan-gokalp.com\/wp-content\/litespeed\/avatar\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659","contentUrl":"https:\/\/gokhan-gokalp.com\/wp-content\/litespeed\/avatar\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659","caption":"G\u00f6khan G\u00f6kalp"},"logo":{"@id":"https:\/\/gokhan-gokalp.com\/wp-content\/litespeed\/avatar\/e645f66b6264ced10d7b6d8b1f85509b.jpg?ver=1776170659"},"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\/910","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=910"}],"version-history":[{"count":7,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/posts\/910\/revisions"}],"predecessor-version":[{"id":1922,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/posts\/910\/revisions\/1922"}],"wp:attachment":[{"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/media?parent=910"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/categories?post=910"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gokhan-gokalp.com\/tr\/wp-json\/wp\/v2\/tags?post=910"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}