{"id":29829,"date":"2025-09-20T11:00:25","date_gmt":"2025-09-20T08:00:25","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/"},"modified":"2025-09-20T11:00:25","modified_gmt":"2025-09-20T08:00:25","slug":"kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/","title":{"rendered":"Kafka ile Basit Bir Ba\u015flang\u0131\u00e7: Docker ve Spring Boot ile Pratik K\u0131lavuz"},"content":{"rendered":"<p>Kafka ile Basit Bir Ba\u015flang\u0131\u00e7: Docker ve Spring Boot ile Pratik K\u0131lavuz<\/p>\n<p>Y\u00fcksek hacimli veri i\u015fleme ihtiyac\u0131n\u0131z var ama Kafka&#8217;n\u0131n karma\u015f\u0131k d\u00fcnyas\u0131nda kaybolmaktan m\u0131 korkuyorsunuz?  Bu makale, Docker ve Spring Boot&#8217;un g\u00fcc\u00fcnden yararlanarak Kafka&#8217;ya h\u0131zl\u0131 ve pratik bir giri\u015f sunuyor.  Basitten ileri seviyeye kadar ad\u0131m ad\u0131m ilerleyerek, ger\u00e7ek d\u00fcnya senaryolar\u0131yla desteklenen pratik \u00f6rneklerle Kafka&#8217;y\u0131 kavraman\u0131z\u0131 sa\u011flayaca\u011f\u0131z.  Haz\u0131rsan\u0131z, bu heyecan verici yolculu\u011fa birlikte ba\u015flayal\u0131m!<\/p>\n<h2>Kafka Nedir ve Neden Kullanmal\u0131y\u0131m?<\/h2>\n<p>Kafka, da\u011f\u0131t\u0131lm\u0131\u015f, y\u00fcksek performansl\u0131 bir mesaj kuyru\u011fu sistemidir.  Basit\u00e7e anlatmak gerekirse, uygulamalar\u0131n\u0131z aras\u0131nda verileri g\u00fcvenilir ve \u00f6l\u00e7eklenebilir bir \u015fekilde iletmenizi sa\u011flar.  Bu, \u00f6zellikle ger\u00e7ek zamanl\u0131 veri i\u015fleme, log y\u00f6netimi ve olay odakl\u0131 mimarilerde b\u00fcy\u00fck avantaj sa\u011flar.  \u00d6rne\u011fin, bir e-ticaret sitesi sipari\u015f i\u015flemlerini Kafka \u00fczerinden ger\u00e7ek zamanl\u0131 olarak i\u015fleyebilir, b\u00f6ylece m\u00fc\u015fterilere an\u0131nda sipari\u015f durumlar\u0131n\u0131 bildirebilir.  Ayn\u0131 zamanda, sistemdeki hatalar\u0131 tespit etmek ve performans\u0131 iyile\u015ftirmek i\u00e7in log verilerini Kafka ile centralize edebilirsiniz.  K\u0131sacas\u0131, Kafka, modern, \u00f6l\u00e7eklenebilir uygulamalar i\u00e7in olmazsa olmaz bir bile\u015fen haline gelmi\u015ftir.<\/p>\n<p>Di\u011fer mesaj kuyru\u011fu sistemlerine k\u0131yasla Kafka&#8217;n\u0131n sundu\u011fu en \u00f6nemli avantajlar; y\u00fcksek performans, \u00f6l\u00e7eklenebilirlik, dayan\u0131kl\u0131l\u0131k ve mesajlar\u0131n kal\u0131c\u0131l\u0131\u011f\u0131d\u0131r.  Bu sayede, b\u00fcy\u00fck miktardaki verinin kay\u0131p olmadan i\u015flenmesi ve sistemin y\u00fck alt\u0131nda bile stabil \u00e7al\u0131\u015fmas\u0131 sa\u011flan\u0131r.  Ayr\u0131ca, Kafka&#8217;n\u0131n a\u00e7\u0131k kaynak olmas\u0131, geni\u015f bir toplulu\u011fa ve zengin bir ekosisteme sahip olmas\u0131 onu tercih edilebilir k\u0131lar.<\/p>\n<h2>Kafka&#8217;n\u0131n Temel Kavramlar\u0131: Konular, \u00dcreticiler ve T\u00fcketiciler<\/h2>\n<p>Kafka&#8217;y\u0131 anlamak i\u00e7in \u00fc\u00e7 temel kavram\u0131 \u00f6\u011frenmemiz gerekiyor: Konular (Topics), \u00dcreticiler (Producers) ve T\u00fcketiciler (Consumers).  Bir <strong>konu<\/strong>, mesajlar\u0131n yay\u0131nland\u0131\u011f\u0131 ve t\u00fcketildi\u011fi bir kategori gibidir.  \u00d6rne\u011fin, &#8220;siparisler&#8221;, &#8220;loglar&#8221; veya &#8220;kullanici_aktiviteleri&#8221; gibi konular olu\u015fturabilirsiniz.  Bir <strong>\u00fcretici<\/strong>, mesajlar\u0131 belirli bir konuya yay\u0131nlayan uygulamad\u0131r.  Bir e-ticaret sisteminde, sipari\u015f olu\u015fturuldu\u011funda bir \u00fcretici bu bilgiyi &#8220;siparisler&#8221; konusuna yay\u0131nlayacakt\u0131r.  <strong>T\u00fcketiciler<\/strong> ise konulardan mesajlar\u0131 okuyan ve i\u015fleyen uygulamalard\u0131r.  \u00d6rne\u011fin, bir t\u00fcketici &#8220;siparisler&#8221; konusunu izleyerek yeni sipari\u015fleri i\u015fleyebilir ve m\u00fc\u015fterilere bildirim g\u00f6nderebilir.  Bu \u00fc\u00e7 bile\u015fen birlikte \u00e7al\u0131\u015farak, verilerin uygulamalar aras\u0131nda g\u00fcvenilir ve verimli bir \u015fekilde aktar\u0131lmas\u0131n\u0131 sa\u011flar.<\/p>\n<h2>Docker ile Kafka Kurulumu: Ad\u0131m Ad\u0131m<\/h2>\n<p>Kafka&#8217;y\u0131 yerel makinenizde kurmak karma\u015f\u0131k olabilir.  \u0130\u015fte bu noktada Docker devreye giriyor!  Docker sayesinde, Kafka&#8217;y\u0131 kolayca kurup \u00e7al\u0131\u015ft\u0131rabilirsiniz. \u00d6ncelikle, Docker&#8217;\u0131 makinenize kurman\u0131z gerekiyor.  Daha sonra, a\u015fa\u011f\u0131daki komutla resmi Kafka Docker imaj\u0131n\u0131 indirip \u00e7al\u0131\u015ft\u0131rabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">docker-compose up -d<\/pre>\n<p><\/code><\/p>\n<p>Bu komut, <code>docker-compose.yml<\/code> dosyan\u0131zda tan\u0131mlanan t\u00fcm servisleri ba\u015flat\u0131r.  Bu dosya, Kafka broker'lar\u0131n\u0131, ZooKeeper'\u0131 (Kafka'n\u0131n koordinasyon servisi) ve di\u011fer gerekli bile\u015fenleri i\u00e7erir.  Bu dosyan\u0131n \u00f6rnek bir i\u00e7eri\u011fi a\u015fa\u011f\u0131daki gibidir:<\/p>\n<pre><code class=\"language-yaml\">version: \"3.9\"\nservices:\n  zookeeper:\n    image: confluentinc\/cp-zookeeper:7.2.2\n    container_name: zookeeper\n    ports:\n      - \"2181:2181\"\n  kafka:\n    image: confluentinc\/cp-kafka:7.2.2\n    container_name: kafka\n    depends_on:\n      - zookeeper\n    ports:\n      - \"9092:9092\"\n    environment:\n      KAFKA_ADVERTISED_HOST_NAME: localhost\n      KAFKA_ADVERTISED_PORT: 9092\n      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181\n      KAFKA_CREATE_TOPICS: \"topic1:1:1\" # Olu\u015fturulacak konu, partition ve replication factor<\/pre>\n<p><\/code><\/p>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra, Kafka kurulumunuz tamamlanm\u0131\u015f olacakt\u0131r.  <code>docker ps<\/code> komutu ile \u00e7al\u0131\u015fan konteynerleri kontrol edebilirsiniz. Daha detayl\u0131 bilgi i\u00e7in <a href=\"https:\/\/fatihsoysal.com\">fatihsoysal.com<\/a> sitesini ziyaret edebilirsiniz.<\/p>\n<h2>Spring Boot ile Kafka \u00dcretici ve T\u00fcketici Uygulamalar\u0131<\/h2>\n<p>Kafka ile entegre \u00e7al\u0131\u015fan Spring Boot uygulamalar\u0131 geli\u015ftirmek olduk\u00e7a kolayd\u0131r.  \u00d6ncelikle, <code>spring-kafka<\/code> ba\u011f\u0131ml\u0131l\u0131\u011f\u0131n\u0131 <code>pom.xml<\/code> dosyan\u0131za eklemeniz gerekir:<\/p>\n<pre><code class=\"language-xml\"><dependency>\n    <groupId>org.springframework.kafka<\/groupId>\n    <artifactId>spring-kafka<\/artifactId>\n<\/dependency><\/pre>\n<p><\/code><\/p>\n<p>Daha sonra, bir \u00fcretici s\u0131n\u0131f\u0131 olu\u015fturabilirsiniz. Bu s\u0131n\u0131f, mesajlar\u0131 Kafka konusuna yay\u0131nlamak i\u00e7in kullan\u0131l\u0131r:<\/p>\n<pre><code class=\"language-java\">@Service\npublic class MyProducer {\n\n    @Autowired\n    private KafkaTemplate<String, String> kafkaTemplate;\n\n    public void sendMessage(String topic, String message) {\n        kafkaTemplate.send(topic, message);\n    }\n}<\/pre>\n<p><\/code><\/p>\n<p>Bir t\u00fcketici s\u0131n\u0131f\u0131 ise, belirli bir konudan mesajlar\u0131 al\u0131p i\u015fler:<\/p>\n<pre><code class=\"language-java\">@Service\npublic class MyConsumer {\n\n    @KafkaListener(topics = \"topic1\", groupId = \"group1\")\n    public void consume(String message) {\n        System.out.println(\"Received message: \" + message);\n    }\n}<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rneklerde, <code>KafkaTemplate<\/code> ve <code>@KafkaListener<\/code> anotasyonlar\u0131 Spring Kafka'n\u0131n temel bile\u015fenleridir.  <code>groupId<\/code>, t\u00fcketicilerin hangi mesajlar\u0131 okuyaca\u011f\u0131n\u0131 belirler.  Ayn\u0131 <code>groupId<\/code>'li t\u00fcketiciler, mesajlar\u0131 ortakla\u015fa t\u00fcketirler.  Farkl\u0131 <code>groupId<\/code>'li t\u00fcketiciler ise, ayn\u0131 mesajlar\u0131 ba\u011f\u0131ms\u0131z olarak t\u00fcketirler.<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryolar\u0131: Vaka \u00c7al\u0131\u015fmalar\u0131<\/h2>\n<p>Kafka'n\u0131n g\u00fcc\u00fcn\u00fc anlamak i\u00e7in birka\u00e7 ger\u00e7ek d\u00fcnya senaryosunu inceleyelim.  \u00d6rne\u011fin, b\u00fcy\u00fck bir e-ticaret \u015firketinde, sipari\u015fler, \u00f6deme i\u015flemleri, envanter y\u00f6netimi gibi i\u015flemler Kafka \u00fczerinden ger\u00e7ek zamanl\u0131 olarak i\u015flenebilir.  Her i\u015flem, ilgili konuya bir mesaj olarak yay\u0131nlan\u0131r ve farkl\u0131 t\u00fcketiciler bu mesajlar\u0131 alarak ilgili i\u015flemleri ger\u00e7ekle\u015ftirir.  Bu sayede, sistem y\u00fcksek y\u00fck alt\u0131nda bile stabil \u00e7al\u0131\u015f\u0131r ve \u00f6l\u00e7eklenebilirlik kolayca sa\u011flan\u0131r.<\/p>\n<p>Bir ba\u015fka \u00f6rnek ise log y\u00f6netimidir.  Bir uygulamada olu\u015fan t\u00fcm loglar, Kafka \u00fczerinden merkezi bir konuya yay\u0131nlan\u0131r.  Farkl\u0131 t\u00fcketiciler bu loglar\u0131 i\u015fleyerek, hata tespiti, performans analizi gibi i\u015flemleri ger\u00e7ekle\u015ftirebilir.  Bu y\u00f6ntem, loglar\u0131n daha verimli bir \u015fekilde y\u00f6netilmesini ve analiz edilmesini sa\u011flar.<\/p>\n<h2>Kafka'da Performans Optimizasyonu: \u0130pu\u00e7lar\u0131 ve P\u00fcf Noktalar\u0131<\/h2>\n<p>Kafka'n\u0131n performans\u0131n\u0131 en \u00fcst d\u00fczeye \u00e7\u0131karmak i\u00e7in birka\u00e7 \u00f6nemli ipucu ve p\u00fcf noktas\u0131n\u0131 g\u00f6z \u00f6n\u00fcnde bulundurmal\u0131s\u0131n\u0131z.  \u00d6ncelikle, <strong>partition say\u0131s\u0131n\u0131<\/strong> do\u011fru se\u00e7meniz gerekir. \u00c7ok fazla partition, y\u00f6netim y\u00fck\u00fcn\u00fc art\u0131r\u0131rken, az say\u0131da partition performans\u0131 d\u00fc\u015f\u00fcrebilir.  \u0130deal partition say\u0131s\u0131, uygulaman\u0131z\u0131n gereksinimlerine ve veri da\u011f\u0131l\u0131m\u0131na ba\u011fl\u0131d\u0131r.  Ayr\u0131ca, <strong>\u00fcretici ve t\u00fcketici ayarlar\u0131n\u0131<\/strong> optimize etmeniz gerekir.  \u00d6rne\u011fin, \u00fcreticinin buffer boyutu ve batch boyutunu do\u011fru ayarlayarak performans\u0131 art\u0131rabilirsiniz.  T\u00fcketicilerde ise, paralel i\u015flem say\u0131s\u0131n\u0131 ve polling stratejisini do\u011fru se\u00e7mek \u00f6nemlidir.<\/p>\n<p>Bunun yan\u0131nda, <strong>mesajlar\u0131n boyutunu<\/strong> minimize etmeli ve <strong>s\u0131k\u0131\u015ft\u0131rma<\/strong> tekniklerini kullanmal\u0131s\u0131n\u0131z.  B\u00fcy\u00fck boyutlu mesajlar, a\u011f trafi\u011fini ve i\u015flem s\u00fcresini art\u0131r\u0131r.  S\u0131k\u0131\u015ft\u0131rma ise, a\u011f trafi\u011fini azaltarak performans\u0131 iyile\u015ftirir.  Son olarak, <strong>izleme ve monit\u00f6ring<\/strong> ara\u00e7lar\u0131n\u0131 kullanarak sistemin performans\u0131n\u0131 takip etmek ve olas\u0131 sorunlar\u0131 \u00f6nceden tespit etmek \u00f6nemlidir.<\/p>\n<h2>G\u00fcvenlik Hususlar\u0131: Dikkat Edilmesi Gerekenler<\/h2>\n<p>Kafka g\u00fcvenli\u011fi, verilerinizi korumak i\u00e7in olduk\u00e7a \u00f6nemlidir.  SSL\/TLS \u015fifrelemesi kullanarak, \u00fcreticiler ve t\u00fcketiciler ile Kafka broker'lar\u0131 aras\u0131ndaki ileti\u015fimi g\u00fcvence alt\u0131na alabilirsiniz.  Ayr\u0131ca, yetkilendirme ve kimlik do\u011frulama mekanizmalar\u0131 kullanarak, yetkisiz eri\u015fimi \u00f6nleyebilirsiniz.  Kafka'n\u0131n g\u00fcvenlik ayarlar\u0131n\u0131 do\u011fru \u015fekilde yap\u0131land\u0131rmak, verilerinizi korumak i\u00e7in olduk\u00e7a \u00f6nemlidir.  Daha fazla bilgi i\u00e7in <a href=\"https:\/\/fatihsoysal.com\">fatihsoysal.com<\/a> sitesini ziyaret edebilirsiniz.<\/p>\n<div style=\"background-color:#fdd; padding:10px; border:1px solid #faa; margin:10px;\">\n    <b>Dikkat:<\/b>  G\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 \u00f6nlemek i\u00e7in, Kafka kurulumunuzu d\u00fczenli olarak g\u00fcncelleyin ve g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 gidermek i\u00e7in gerekli yamalar\u0131 uygulay\u0131n.\n<\/div>\n<h2>\u00d6\u011frenme Yol Haritas\u0131<\/h2>\n<h3>Yeni Ba\u015flayanlar \u0130\u00e7in:<\/h3>\n<ul>\n<li>Kafka'n\u0131n temel kavramlar\u0131n\u0131 \u00f6\u011frenin (konular, \u00fcreticiler, t\u00fcketiciler).<\/li>\n<li>Docker ile Kafka'y\u0131 kurun ve basit bir \u00fcretici-t\u00fcketici uygulamas\u0131 geli\u015ftirin.<\/li>\n<li>Spring Boot ile basit bir Kafka uygulamas\u0131 olu\u015fturun.<\/li>\n<\/ul>\n<h3>Orta Seviye:<\/h3>\n<ul>\n<li>Kafka'n\u0131n farkl\u0131 konfig\u00fcrasyonlar\u0131n\u0131 inceleyin ve performans optimizasyonlar\u0131 yap\u0131n.<\/li>\n<li>Kafka Streams API'sini \u00f6\u011frenin ve ger\u00e7ek zamanl\u0131 veri i\u015fleme uygulamalar\u0131 geli\u015ftirin.<\/li>\n<li>Kafka Connect'i kullanarak di\u011fer sistemlerle entegrasyon sa\u011flay\u0131n.<\/li>\n<\/ul>\n<h3>\u0130leri Seviye:<\/h3>\n<ul>\n<li>Kafka'n\u0131n g\u00fcvenlik \u00f6zelliklerini derinlemesine inceleyin ve g\u00fcvenli uygulamalar geli\u015ftirin.<\/li>\n<li>Kafka'n\u0131n \u00f6l\u00e7eklenebilirli\u011fini ve y\u00fcksek kullan\u0131labilirli\u011fini sa\u011flamak i\u00e7in geli\u015fmi\u015f teknikleri \u00f6\u011frenin.<\/li>\n<li>Kafka'n\u0131n farkl\u0131 mimari modellerindeki kullan\u0131m\u0131n\u0131 ara\u015ft\u0131r\u0131n.<\/li>\n<\/ul>\n<h2>Sonu\u00e7<\/h2>\n<p>Bu makalede, Docker ve Spring Boot kullanarak Kafka'ya pratik bir giri\u015f sa\u011flad\u0131k.  Basitten ileri seviyeye kadar ad\u0131m ad\u0131m ilerleyerek, ger\u00e7ek d\u00fcnya senaryolar\u0131yla desteklenen pratik \u00f6rnekler verdik.  Kafka'n\u0131n sundu\u011fu avantajlar\u0131 ve g\u00fcvenlik hususlar\u0131n\u0131 ele ald\u0131k.  Umar\u0131z bu makale, Kafka'y\u0131 \u00f6\u011frenme yolculu\u011funuzda size yard\u0131mc\u0131 olmu\u015ftur.  Daha fazla bilgi i\u00e7in <a href=\"https:\/\/fatihsoysal.com\">fatihsoysal.com<\/a> sitesini ziyaret edebilirsiniz.<\/p>\n<h2>S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<ul>\n<li><b>Kafka'n\u0131n alternatifleri nelerdir?<\/b>  RabbitMQ, ActiveMQ ve Amazon SQS gibi di\u011fer mesaj kuyru\u011fu sistemleri de mevcuttur. Ancak, Kafka'n\u0131n y\u00fcksek performans ve \u00f6l\u00e7eklenebilirlik \u00f6zellikleri onu farkl\u0131 k\u0131lar.<\/li>\n<li><b>Kafka'y\u0131 hangi dillerle kullanabilirim?<\/b>  Java, Python, Go, Node.js gibi bir\u00e7ok dilde Kafka ile entegre uygulamalar geli\u015ftirebilirsiniz.<\/li>\n<li><b>Kafka'n\u0131n kurulumu ne kadar zaman al\u0131r?<\/b> Docker kullanarak Kafka'y\u0131 birka\u00e7 dakika i\u00e7inde kurabilirsiniz.<\/li>\n<li><b>Kafka'n\u0131n \u00f6\u011frenme e\u011frisi ne kadar dik?<\/b> Temel kavramlar\u0131 \u00f6\u011frenmek nispeten kolayd\u0131r, ancak ileri seviye konular\u0131 \u00f6\u011frenmek daha fazla zaman ve \u00e7aba gerektirebilir.<\/li>\n<li><b>Kafka'n\u0131n maliyeti nedir?<\/b>  A\u00e7\u0131k kaynakl\u0131 bir yaz\u0131l\u0131m oldu\u011fu i\u00e7in Kafka'n\u0131n kullan\u0131m\u0131 \u00fccretsizdir.<\/li>\n<\/ul>\n<p>Yazar: Fatih Soysal<\/p>\n","protected":false},"excerpt":{"rendered":"Kafka ile Basit Bir Ba\u015flang\u0131\u00e7: Docker ve Spring Boot ile Pratik K\u0131lavuz Y\u00fcksek hacimli veri i\u015fleme ihtiyac\u0131n\u0131z var&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1407],"tags":[],"class_list":{"0":"post-29829","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-docker","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Kafka ile Basit Bir Ba\u015flang\u0131\u00e7: Docker ve Spring Boot ile Pratik K\u0131lavuz<\/title>\n<meta name=\"description\" content=\"Y\u00fcksek hacimli veri i\u015fleme ihtiyac\u0131n\u0131z var ama Kafka&#039;n\u0131n karma\u015f\u0131k d\u00fcnyas\u0131nda kaybolmaktan m\u0131 korkuyorsunuz? Bu makale, Docker ve Spring Boot&#039;un g\u00fcc\u00fcnden yararlanarak Kafka&#039;ya h\u0131zl\u0131 ve pratik bir giri\u015f sunuyor. Basitten ileri seviyeye kadar ad\u0131m ad\u0131m ilerleyerek, ger\u00e7ek d\u00fcnya senaryolar\u0131yla desteklenen pratik \u00f6rneklerle Kafka&#039;y\u0131 kavraman\u0131z\u0131 sa\u011flayaca\u011f\u0131z. Haz\u0131rsan\u0131z, bu heyecan verici yolculu\u011fa birlikte ba\u015flayal\u0131m!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kafka ile Basit Bir Ba\u015flang\u0131\u00e7: Docker ve Spring Boot ile Pratik K\u0131lavuz\" \/>\n<meta property=\"og:description\" content=\"Y\u00fcksek hacimli veri i\u015fleme ihtiyac\u0131n\u0131z var ama Kafka&#039;n\u0131n karma\u015f\u0131k d\u00fcnyas\u0131nda kaybolmaktan m\u0131 korkuyorsunuz? Bu makale, Docker ve Spring Boot&#039;un g\u00fcc\u00fcnden yararlanarak Kafka&#039;ya h\u0131zl\u0131 ve pratik bir giri\u015f sunuyor. Basitten ileri seviyeye kadar ad\u0131m ad\u0131m ilerleyerek, ger\u00e7ek d\u00fcnya senaryolar\u0131yla desteklenen pratik \u00f6rneklerle Kafka&#039;y\u0131 kavraman\u0131z\u0131 sa\u011flayaca\u011f\u0131z. Haz\u0131rsan\u0131z, bu heyecan verici yolculu\u011fa birlikte ba\u015flayal\u0131m!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-20T08:00:25+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Kafka ile Basit Bir Ba\u015flang\u0131\u00e7: Docker ve Spring Boot ile Pratik K\u0131lavuz\",\"datePublished\":\"2025-09-20T08:00:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/\"},\"wordCount\":1459,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Docker\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/\",\"name\":\"Kafka ile Basit Bir Ba\u015flang\u0131\u00e7: Docker ve Spring Boot ile Pratik K\u0131lavuz\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-09-20T08:00:25+00:00\",\"description\":\"Y\u00fcksek hacimli veri i\u015fleme ihtiyac\u0131n\u0131z var ama Kafka'n\u0131n karma\u015f\u0131k d\u00fcnyas\u0131nda kaybolmaktan m\u0131 korkuyorsunuz? Bu makale, Docker ve Spring Boot'un g\u00fcc\u00fcnden yararlanarak Kafka'ya h\u0131zl\u0131 ve pratik bir giri\u015f sunuyor. Basitten ileri seviyeye kadar ad\u0131m ad\u0131m ilerleyerek, ger\u00e7ek d\u00fcnya senaryolar\u0131yla desteklenen pratik \u00f6rneklerle Kafka'y\u0131 kavraman\u0131z\u0131 sa\u011flayaca\u011f\u0131z. Haz\u0131rsan\u0131z, bu heyecan verici yolculu\u011fa birlikte ba\u015flayal\u0131m!\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kafka ile Basit Bir Ba\u015flang\u0131\u00e7: Docker ve Spring Boot ile Pratik K\u0131lavuz\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Kafka ile Basit Bir Ba\u015flang\u0131\u00e7: Docker ve Spring Boot ile Pratik K\u0131lavuz","description":"Y\u00fcksek hacimli veri i\u015fleme ihtiyac\u0131n\u0131z var ama Kafka'n\u0131n karma\u015f\u0131k d\u00fcnyas\u0131nda kaybolmaktan m\u0131 korkuyorsunuz? Bu makale, Docker ve Spring Boot'un g\u00fcc\u00fcnden yararlanarak Kafka'ya h\u0131zl\u0131 ve pratik bir giri\u015f sunuyor. Basitten ileri seviyeye kadar ad\u0131m ad\u0131m ilerleyerek, ger\u00e7ek d\u00fcnya senaryolar\u0131yla desteklenen pratik \u00f6rneklerle Kafka'y\u0131 kavraman\u0131z\u0131 sa\u011flayaca\u011f\u0131z. Haz\u0131rsan\u0131z, bu heyecan verici yolculu\u011fa birlikte ba\u015flayal\u0131m!","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:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/","og_locale":"tr_TR","og_type":"article","og_title":"Kafka ile Basit Bir Ba\u015flang\u0131\u00e7: Docker ve Spring Boot ile Pratik K\u0131lavuz","og_description":"Y\u00fcksek hacimli veri i\u015fleme ihtiyac\u0131n\u0131z var ama Kafka'n\u0131n karma\u015f\u0131k d\u00fcnyas\u0131nda kaybolmaktan m\u0131 korkuyorsunuz? Bu makale, Docker ve Spring Boot'un g\u00fcc\u00fcnden yararlanarak Kafka'ya h\u0131zl\u0131 ve pratik bir giri\u015f sunuyor. Basitten ileri seviyeye kadar ad\u0131m ad\u0131m ilerleyerek, ger\u00e7ek d\u00fcnya senaryolar\u0131yla desteklenen pratik \u00f6rneklerle Kafka'y\u0131 kavraman\u0131z\u0131 sa\u011flayaca\u011f\u0131z. Haz\u0131rsan\u0131z, bu heyecan verici yolculu\u011fa birlikte ba\u015flayal\u0131m!","og_url":"https:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-09-20T08:00:25+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"8 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Kafka ile Basit Bir Ba\u015flang\u0131\u00e7: Docker ve Spring Boot ile Pratik K\u0131lavuz","datePublished":"2025-09-20T08:00:25+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/"},"wordCount":1459,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Docker"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/","url":"https:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/","name":"Kafka ile Basit Bir Ba\u015flang\u0131\u00e7: Docker ve Spring Boot ile Pratik K\u0131lavuz","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-09-20T08:00:25+00:00","description":"Y\u00fcksek hacimli veri i\u015fleme ihtiyac\u0131n\u0131z var ama Kafka'n\u0131n karma\u015f\u0131k d\u00fcnyas\u0131nda kaybolmaktan m\u0131 korkuyorsunuz? Bu makale, Docker ve Spring Boot'un g\u00fcc\u00fcnden yararlanarak Kafka'ya h\u0131zl\u0131 ve pratik bir giri\u015f sunuyor. Basitten ileri seviyeye kadar ad\u0131m ad\u0131m ilerleyerek, ger\u00e7ek d\u00fcnya senaryolar\u0131yla desteklenen pratik \u00f6rneklerle Kafka'y\u0131 kavraman\u0131z\u0131 sa\u011flayaca\u011f\u0131z. Haz\u0131rsan\u0131z, bu heyecan verici yolculu\u011fa birlikte ba\u015flayal\u0131m!","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/kafka-ile-basit-bir-baslangic-docker-ve-spring-boot-ile-pratik-kilavuz\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Kafka ile Basit Bir Ba\u015flang\u0131\u00e7: Docker ve Spring Boot ile Pratik K\u0131lavuz"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/29829","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=29829"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/29829\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=29829"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=29829"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=29829"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}