{"id":37056,"date":"2025-12-26T21:40:51","date_gmt":"2025-12-26T18:40:51","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=37056"},"modified":"2025-12-26T21:40:51","modified_gmt":"2025-12-26T18:40:51","slug":"apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi\/","title":{"rendered":"Apache Kafka Verilerini CentOS 7 \u00dczerinde Yedekleme, \u0130\u00e7eri Aktarma ve Ta\u015f\u0131ma Rehberi"},"content":{"rendered":"<p><body><\/p>\n<h2>Apache Kafka Verilerini CentOS 7 \u00dczerinde Yedekleme, \u0130\u00e7eri Aktarma ve Ta\u015f\u0131ma Rehberi<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn veri odakl\u0131 d\u00fcnyas\u0131nda, ger\u00e7ek zamanl\u0131 veri ak\u0131\u015f platformlar\u0131 i\u015fletmeler i\u00e7in hayati \u00f6neme sahiptir. Apache Kafka, y\u00fcksek performansl\u0131, da\u011f\u0131t\u0131k ve dayan\u0131kl\u0131 bir mesajla\u015fma sistemi olarak bu platformlar\u0131n ba\u015f\u0131nda gelmektedir. Finans, perakende, IoT ve bir\u00e7ok di\u011fer sekt\u00f6rde kritik i\u015f s\u00fcre\u00e7lerinin temelini olu\u015fturan Kafka, s\u00fcrekli veri ak\u0131\u015f\u0131n\u0131 y\u00f6netir. Ancak, herhangi bir kritik sistemde oldu\u011fu gibi, Kafka verilerinin g\u00fcvenli\u011fini sa\u011flamak, olas\u0131 veri kay\u0131plar\u0131n\u0131 \u00f6nlemek ve sistem s\u00fcreklili\u011fini temin etmek i\u00e7in d\u00fczenli yedekleme, etkili veri i\u00e7eri aktarma ve sorunsuz ta\u015f\u0131ma stratejileri vazge\u00e7ilmezdir.<\/p>\n<p>CentOS 7, sunucu ortamlar\u0131nda yayg\u0131n olarak kullan\u0131lan kararl\u0131 ve g\u00fcvenilir bir i\u015fletim sistemidir. Bu makale, CentOS 7 \u00fczerinde \u00e7al\u0131\u015fan bir Apache Kafka k\u00fcmesindeki verileri nas\u0131l yedekleyece\u011finizi, yedeklenen verileri nas\u0131l geri y\u00fckleyece\u011finizi ve Kafka verilerini veya broker&#8217;lar\u0131n\u0131 farkl\u0131 senaryolarda nas\u0131l ta\u015f\u0131yaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klamaktad\u0131r. Amac\u0131m\u0131z, veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc korurken operasyonel kesintileri en aza indiren pratik ve g\u00fcvenilir y\u00f6ntemler sunmakt\u0131r.<\/p>\n<h3>\u00d6n Ko\u015fullar ve Haz\u0131rl\u0131k<\/h3>\n<p>Bu rehberdeki ad\u0131mlar\u0131 uygulayabilmek i\u00e7in a\u015fa\u011f\u0131daki \u00f6n ko\u015fullar\u0131n sa\u011flanm\u0131\u015f olmas\u0131 gerekmektedir:<\/p>\n<p>*   <strong>CentOS 7 \u0130\u015fletim Sistemi:<\/strong> En az bir adet CentOS 7 sunucusu kurulu ve g\u00fcncel olmal\u0131d\u0131r.<br \/>\n*   <strong>Java Geli\u015ftirme Kiti (JDK):<\/strong> Apache Kafka Java tabanl\u0131 oldu\u011fu i\u00e7in, sunucuda uygun bir JDK s\u00fcr\u00fcm\u00fcn\u00fcn (tercihen OpenJDK 8 veya \u00fczeri) y\u00fckl\u00fc olmas\u0131 gerekmektedir.<\/p>\n<pre><code class=\"language-bash\">sudo yum install java-1.8.0-openjdk-devel -y<\/code><\/pre>\n<p>*   <strong>Apache Kafka ve ZooKeeper Kurulumu:<\/strong> CentOS 7 \u00fczerinde \u00e7al\u0131\u015fan bir Apache Kafka k\u00fcmesi ve onun ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 olan ZooKeeper&#8217;\u0131n kurulu ve yap\u0131land\u0131r\u0131lm\u0131\u015f olmas\u0131 gerekmektedir. Bu rehber, Kafka&#8217;n\u0131n <code>\/opt\/kafka<\/code> dizinine kuruldu\u011funu ve veri dizinlerinin varsay\u0131lan olarak <code>\/tmp\/kafka-logs<\/code> veya \u00f6zel bir dizinde (<code>\/data\/kafka<\/code>) bulundu\u011funu varsayacakt\u0131r. Kendi kurulum yolunuza g\u00f6re komutlar\u0131 ayarlaman\u0131z gerekebilir.<br \/>\n*   <strong>Yeterli Disk Alan\u0131:<\/strong> Yedekleme ve ta\u015f\u0131ma i\u015flemleri i\u00e7in kaynak ve hedef sistemlerde yeterli disk alan\u0131 bulundu\u011fundan emin olun. Yedeklenecek veya ta\u015f\u0131nacak verinin en az iki kat\u0131 kadar bo\u015f alan \u00f6nerilir.<br \/>\n*   <strong>A\u011f Ba\u011flant\u0131s\u0131:<\/strong> K\u00fcmeler aras\u0131 ta\u015f\u0131ma i\u015flemleri i\u00e7in sunucular aras\u0131nda stabil ve h\u0131zl\u0131 bir a\u011f ba\u011flant\u0131s\u0131 gereklidir.<br \/>\n*   <strong>K\u00f6k veya Sudo Yetkisi:<\/strong> Gerekli dosya sistemi i\u015flemleri ve servis y\u00f6netimi i\u00e7in <code>root<\/code> yetkisi veya <code>sudo<\/code> kullanma yetkisi olmal\u0131d\u0131r.<br \/>\n*   <strong>G\u00fcvenlik Duvar\u0131 Ayarlar\u0131:<\/strong> Kafka ve ZooKeeper&#8217;\u0131n kulland\u0131\u011f\u0131 portlar\u0131n (varsay\u0131lan olarak Kafka i\u00e7in 9092, ZooKeeper i\u00e7in 2181) sunucular aras\u0131 ileti\u015fim i\u00e7in a\u00e7\u0131k oldu\u011fundan emin olun.<\/p>\n<h3>Apache Kafka Verilerini Yedekleme<\/h3>\n<p>Kafka verilerini yedeklemenin farkl\u0131 yakla\u015f\u0131mlar\u0131 vard\u0131r. Se\u00e7im, veri kayb\u0131 tolerans\u0131n\u0131za, kurtarma s\u00fcresi hedeflerinize (RTO) ve kurtarma noktas\u0131 hedeflerinize (RPO) ba\u011fl\u0131d\u0131r.<\/p>\n<h4>1. Dosya Sistemi Seviyesinde Yedekleme (Offline Yedekleme)<\/h4>\n<p>Bu y\u00f6ntem, Kafka broker&#8217;\u0131n\u0131n veri dizinlerinin do\u011frudan kopyalanmas\u0131n\u0131 i\u00e7erir. Veri tutarl\u0131l\u0131\u011f\u0131 sa\u011flamak i\u00e7in Kafka broker&#8217;lar\u0131n\u0131n durdurulmas\u0131 gerekmektedir. Bu, en basit ve en g\u00fcvenilir yedekleme y\u00f6ntemlerinden biridir, ancak sistemde k\u0131sa s\u00fcreli bir kesinti gerektirir.<\/p>\n<p><strong>Ad\u0131mlar:<\/strong><\/p>\n<p>1.  <strong>Kafka Broker&#8217;\u0131n\u0131 Durdurma:<\/strong> Veri tutarl\u0131l\u0131\u011f\u0131n\u0131 sa\u011flamak i\u00e7in yedekleme i\u015flemine ba\u015flamadan \u00f6nce ilgili Kafka broker&#8217;\u0131n\u0131 veya t\u00fcm k\u00fcmedeki broker&#8217;lar\u0131 durdurun.<\/p>\n<pre><code class=\"language-bash\">sudo systemctl stop kafka\n    # Veya manuel olarak:\n    \/opt\/kafka\/bin\/kafka-server-stop.sh<\/code><\/pre>\n<p>    ZooKeeper&#8217;\u0131 durdurman\u0131za gerek yoktur, \u00e7\u00fcnk\u00fc Kafka verileri ZooKeeper&#8217;da de\u011fil, broker&#8217;lar\u0131n disklerinde tutulur. Ancak, e\u011fer ZooKeeper verilerini de yedeklemek isterseniz, onu da durdurup veri dizinini (<code>dataDir<\/code> i\u00e7inde belirtilen) yedekleyebilirsiniz.<\/p>\n<p>2.  <strong>Kafka Veri Dizinlerini Belirleme:<\/strong> Kafka broker&#8217;\u0131n\u0131z\u0131n <code>server.properties<\/code> dosyas\u0131nda <code>log.dirs<\/code> parametresi ile belirtilen veri dizinlerini bulun. Varsay\u0131lan olarak bu <code>\/tmp\/kafka-logs<\/code> olabilir, ancak \u00fcretim ortamlar\u0131nda genellikle \u00f6zel bir dizin (<code>\/data\/kafka<\/code>) kullan\u0131l\u0131r.<\/p>\n<pre><code class=\"language-bash\">grep \"log.dirs\" \/opt\/kafka\/config\/server.properties\n    # \u00d6rnek \u00e7\u0131kt\u0131: log.dirs=\/data\/kafka\/kafka-logs<\/code><\/pre>\n<p>    Bu \u00f6rnekte, <code>\/data\/kafka\/kafka-logs<\/code> dizini yedeklenecek ana dizindir.<\/p>\n<p>3.  <strong>Veri Dizinlerini Yedekleme:<\/strong> <code>rsync<\/code> veya <code>cp<\/code> komutlar\u0131n\u0131 kullanarak veri dizinlerini g\u00fcvenli bir yedekleme konumuna kopyalay\u0131n. <code>rsync<\/code>, b\u00fcy\u00fck dizinler ve art\u0131ml\u0131 yedeklemeler i\u00e7in daha uygundur.<\/p>\n<p>    *   <strong>Tam Yedekleme (rsync ile):<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo rsync -avh --progress \/data\/kafka\/kafka-logs \/mnt\/backup\/kafka_data_$(date +%Y%m%d%H%M%S)<\/code><\/pre>\n<p>        Bu komut, <code>\/data\/kafka\/kafka-logs<\/code> dizinini, tarih ve saat damgas\u0131 i\u00e7eren yeni bir dizin alt\u0131nda <code>\/mnt\/backup<\/code> konumuna kopyalar. <code>--progress<\/code> ilerlemeyi g\u00f6sterir, <code>-a<\/code> ar\u015fiv modunu (izinler, sahiplik vb. korur), <code>-v<\/code> ayr\u0131nt\u0131l\u0131 \u00e7\u0131kt\u0131y\u0131 ve <code>-h<\/code> insan taraf\u0131ndan okunabilir boyutlar\u0131 sa\u011flar.<\/p>\n<p>    *   <strong>Tam Yedekleme (cp ile):<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo cp -rp \/data\/kafka\/kafka-logs \/mnt\/backup\/kafka_data_$(date +%Y%m%d%H%M%S)<\/code><\/pre>\n<p>        <code>-r<\/code> \u00f6zyinelemeli kopyalama, <code>-p<\/code> izinleri ve zaman damgalar\u0131n\u0131 korur.<\/p>\n<p>4.  <strong>Kafka Broker&#8217;\u0131n\u0131 Ba\u015flatma:<\/strong> Yedekleme i\u015flemi tamamland\u0131ktan sonra Kafka broker&#8217;\u0131n\u0131 tekrar ba\u015flat\u0131n.<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start kafka\n    # Veya manuel olarak:\n    \/opt\/kafka\/bin\/kafka-server-start.sh -daemon \/opt\/kafka\/config\/server.properties<\/code><\/pre>\n<p><strong>LVM Anl\u0131k G\u00f6r\u00fcnt\u00fcleri (Snapshot) ile Yedekleme (\u0130ste\u011fe Ba\u011fl\u0131):<\/strong><br \/>\nE\u011fer Kafka veri dizinleriniz Logical Volume Manager (LVM) taraf\u0131ndan y\u00f6netilen bir disk b\u00f6l\u00fcm\u00fcndeyse, broker&#8217;\u0131 durdurmaya gerek kalmadan tutarl\u0131 bir anl\u0131k g\u00f6r\u00fcnt\u00fc alabilirsiniz. Bu, anl\u0131k g\u00f6r\u00fcnt\u00fc al\u0131rken k\u0131sa bir s\u00fcre i\u00e7in I\/O&#8217;yu dondurur, ancak broker&#8217;\u0131 tamamen durdurmaktan daha az kesinti yarat\u0131r.<\/p>\n<p>1.  <strong>LVM Anl\u0131k G\u00f6r\u00fcnt\u00fcs\u00fc Olu\u015fturma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo lvcreate --size 10G --snapshot --name kafka_snapshot \/dev\/vg_kafka\/lv_kafka_data<\/code><\/pre>\n<p>    Burada <code>\/dev\/vg_kafka\/lv_kafka_data<\/code>, Kafka verilerinin bulundu\u011fu mant\u0131ksal birimdir. 10G, anl\u0131k g\u00f6r\u00fcnt\u00fcn\u00fcn boyutu i\u00e7in yeterli bir yer olmal\u0131d\u0131r.<\/p>\n<p>2.  <strong>Anl\u0131k G\u00f6r\u00fcnt\u00fcy\u00fc Ba\u011flama ve Yedekleme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo mount \/dev\/vg_kafka\/kafka_snapshot \/mnt\/kafka_snapshot\n    sudo rsync -avh --progress \/mnt\/kafka_snapshot\/kafka-logs \/mnt\/backup\/kafka_data_$(date +%Y%m%d%H%M%S)<\/code><\/pre>\n<p>3.  <strong>Anl\u0131k G\u00f6r\u00fcnt\u00fcy\u00fc Ay\u0131rma ve Silme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo umount \/mnt\/kafka_snapshot\n    sudo lvremove \/dev\/vg_kafka\/kafka_snapshot<\/code><\/pre>\n<h4>2. Mant\u0131ksal Yedekleme (Topic Baz\u0131nda Veri D\u0131\u015fa Aktarma)<\/h4>\n<p>Bu y\u00f6ntem, belirli topic&#8217;lerdeki verileri bir dosyaya aktarmak i\u00e7in Kafka&#8217;n\u0131n <code>kafka-console-consumer<\/code> arac\u0131n\u0131 kullan\u0131r. Bu, t\u00fcm k\u00fcmenin yedeklenmesinden ziyade belirli topic&#8217;leri veya veri alt k\u00fcmelerini yedeklemek i\u00e7in kullan\u0131\u015fl\u0131d\u0131r. Kesinti gerektirmez, ancak b\u00fcy\u00fck topic&#8217;ler i\u00e7in pratik olmayabilir ve mesaj offsetlerini korumaz.<\/p>\n<p><strong>Ad\u0131mlar:<\/strong><\/p>\n<p>1.  <strong>Topic Verilerini D\u0131\u015fa Aktarma:<\/strong> <code>kafka-console-consumer<\/code> kullanarak belirli bir topic&#8217;teki t\u00fcm mesajlar\u0131 standart \u00e7\u0131kt\u0131ya y\u00f6nlendirin ve bir dosyaya kaydedin.<\/p>\n<pre><code class=\"language-bash\">\/opt\/kafka\/bin\/kafka-console-consumer.sh --bootstrap-server localhost:9092 \\\n        --topic my_topic --from-beginning --property print.timestamp=true \\\n        --property print.key=true --property print.value=true > \/mnt\/backup\/my_topic_backup_$(date +%Y%m%d%H%M%S).txt<\/code><\/pre>\n<p>    *   <code>--bootstrap-server<\/code>: Kafka broker&#8217;\u0131n\u0131n adresi.<br \/>\n    *   <code>--topic<\/code>: Yedeklenecek topic&#8217;in ad\u0131.<br \/>\n    *   <code>--from-beginning<\/code>: Topic&#8217;in en ba\u015f\u0131ndan itibaren t\u00fcm mesajlar\u0131 okur.<br \/>\n    *   <code>--property print.timestamp=true<\/code>, <code>--property print.key=true<\/code>, <code>--property print.value=true<\/code>: Mesaj\u0131n zaman damgas\u0131n\u0131, anahtar\u0131n\u0131 ve de\u011ferini \u00e7\u0131kt\u0131da g\u00f6sterir. Bu, geri y\u00fckleme s\u0131ras\u0131nda veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flamak i\u00e7in \u00f6nemlidir.<\/p>\n<p>2.  <strong>Alternatif (Avro, JSON formatlar\u0131 i\u00e7in):<\/strong> E\u011fer verileriniz belirli bir formatta (Avro, JSON) ise, bunlar\u0131 i\u015fleyebilen \u00f6zel bir consumer uygulamas\u0131 yazmak veya Kafka Connect gibi ara\u00e7lar\u0131 kullanmak daha uygun olabilir.<\/p>\n<h3>Apache Kafka Verilerini \u0130\u00e7eri Aktarma (Geri Y\u00fckleme)<\/h3>\n<p>Yedeklenen Kafka verilerini geri y\u00fcklemek, yedekleme y\u00f6ntemine ba\u011fl\u0131 olarak farkl\u0131l\u0131k g\u00f6sterir.<\/p>\n<h4>1. Dosya Sistemi Seviyesinde Geri Y\u00fckleme<\/h4>\n<p>Bu y\u00f6ntem, daha \u00f6nce al\u0131nan dosya sistemi yede\u011fini kullanarak bir Kafka broker&#8217;\u0131n\u0131 veya k\u00fcmesini \u00f6nceki bir duruma geri d\u00f6nd\u00fcrmek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p><strong>Ad\u0131mlar:<\/strong><\/p>\n<p>1.  <strong>Kafka Broker&#8217;\u0131n\u0131 Durdurma:<\/strong> Geri y\u00fckleme i\u015flemine ba\u015flamadan \u00f6nce hedef Kafka broker&#8217;\u0131n\u0131 durdurun.<\/p>\n<pre><code class=\"language-bash\">sudo systemctl stop kafka<\/code><\/pre>\n<p>2.  <strong>Mevcut Veri Dizinlerini Temizleme (\u0130ste\u011fe Ba\u011fl\u0131\/Dikkatli):<\/strong> E\u011fer tamamen temiz bir geri y\u00fckleme yap\u0131yorsan\u0131z, mevcut Kafka veri dizinlerini silmeniz veya ba\u015fka bir yere ta\u015f\u0131man\u0131z gerekebilir. <strong>Bu ad\u0131m dikkatli yap\u0131lmal\u0131d\u0131r, \u00e7\u00fcnk\u00fc yanl\u0131\u015f dizinleri silmek veri kayb\u0131na yol a\u00e7abilir.<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo rm -rf \/data\/kafka\/kafka-logs\/*<\/code><\/pre>\n<p>    Veya daha g\u00fcvenli bir \u015fekilde, mevcut dizini yeniden adland\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo mv \/data\/kafka\/kafka-logs \/data\/kafka\/kafka-logs_old\n    sudo mkdir -p \/data\/kafka\/kafka-logs\n    sudo chown kafka:kafka \/data\/kafka\/kafka-logs # Kullan\u0131c\u0131 ve grup izinlerini ayarlay\u0131n<\/code><\/pre>\n<p>3.  <strong>Yedeklenen Verileri Kopyalama:<\/strong> Yedekleme konumundan, yedeklenen Kafka veri dizinlerini (<code>kafka-logs<\/code>) orijinal konumuna (<code>\/data\/kafka\/kafka-logs<\/code>) kopyalay\u0131n.<\/p>\n<pre><code class=\"language-bash\">sudo rsync -avh --progress \/mnt\/backup\/kafka_data_YYYYMMDDHHMMSS\/kafka-logs\/ \/data\/kafka\/kafka-logs\/<\/code><\/pre>\n<p>    Kaynak dizinin sonundaki <code>\/<\/code> i\u015fareti \u00f6nemlidir; bu, dizinin i\u00e7eri\u011finin kopyalanmas\u0131n\u0131 sa\u011flar, dizinin kendisinin de\u011fil.<\/p>\n<p>4.  <strong>\u0130zinleri Kontrol Etme:<\/strong> Kafka&#8217;n\u0131n veri dizinlerine eri\u015fim i\u00e7in do\u011fru kullan\u0131c\u0131 ve grup izinlerine sahip oldu\u011fundan emin olun. Genellikle bu <code>kafka<\/code> kullan\u0131c\u0131s\u0131 ve grubudur.<\/p>\n<pre><code class=\"language-bash\">sudo chown -R kafka:kafka \/data\/kafka\/kafka-logs<\/code><\/pre>\n<p>5.  <strong>Kafka Broker&#8217;\u0131n\u0131 Ba\u015flatma:<\/strong> Veriler kopyaland\u0131ktan ve izinler ayarland\u0131ktan sonra Kafka broker&#8217;\u0131n\u0131 ba\u015flat\u0131n.<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start kafka<\/code><\/pre>\n<p>    Broker, yedeklenen verilerle birlikte ba\u015flayacakt\u0131r.<\/p>\n<h4>2. Mant\u0131ksal Veri \u0130\u00e7eri Aktarma<\/h4>\n<p>Daha \u00f6nce <code>kafka-console-consumer<\/code> ile d\u0131\u015fa aktar\u0131lan topic verilerini geri y\u00fcklemek i\u00e7in <code>kafka-console-producer<\/code> kullan\u0131l\u0131r.<\/p>\n<p><strong>Ad\u0131mlar:<\/strong><\/p>\n<p>1.  <strong>Hedef Topic&#8217;i Olu\u015fturma (Gerekliyse):<\/strong> E\u011fer hedef topic mevcut de\u011filse, \u00f6ncelikle onu olu\u015fturman\u0131z gerekmektedir.<\/p>\n<pre><code class=\"language-bash\">\/opt\/kafka\/bin\/kafka-topics.sh --create --topic my_topic_restored --bootstrap-server localhost:9092 \\\n        --partitions 3 --replication-factor 1<\/code><\/pre>\n<p>2.  <strong>Verileri \u0130\u00e7eri Aktarma:<\/strong> Yedeklenen dosyay\u0131 <code>kafka-console-producer<\/code> arac\u0131l\u0131\u011f\u0131yla hedef topice g\u00f6nderin. E\u011fer mesaj anahtarlar\u0131 ve zaman damgalar\u0131 yedekleme s\u0131ras\u0131nda kaydedildiyse, bunlar\u0131 da do\u011fru \u015fekilde i\u015flemek i\u00e7in producer yap\u0131land\u0131rmas\u0131n\u0131 ayarlaman\u0131z gerekebilir.<\/p>\n<pre><code class=\"language-bash\">cat \/mnt\/backup\/my_topic_backup_YYYYMMDDHHMMSS.txt | \/opt\/kafka\/bin\/kafka-console-producer.sh \\\n        --broker-list localhost:9092 --topic my_topic_restored \\\n        --property parse.key=true --property key.separator=\":\" --property parse.timestamp=true --property timestamp.format=\"yyyy-MM-dd'T'HH:mm:ss.SSSZ\"<\/code><\/pre>\n<p>    <strong>Not:<\/strong> Yukar\u0131daki \u00f6rnek, <code>print.key=true<\/code> ve <code>print.timestamp=true<\/code> ile yedeklenen format\u0131 varsaymaktad\u0131r. <code>parse.key<\/code> ve <code>parse.timestamp<\/code> property&#8217;leri, producer&#8217;\u0131n bu bilgileri ayr\u0131\u015ft\u0131rmas\u0131n\u0131 sa\u011flar. Yedekleme dosyas\u0131n\u0131n format\u0131na g\u00f6re bu property&#8217;leri ve ay\u0131r\u0131c\u0131lar\u0131 (<code>key.separator<\/code>) ayarlaman\u0131z gerekebilir.<\/p>\n<p>3.  <strong>Veri B\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc Do\u011frulama:<\/strong> \u0130\u00e7eri aktarma i\u015fleminden sonra, verilerin do\u011fru bir \u015fekilde aktar\u0131ld\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in <code>kafka-console-consumer<\/code> ile hedef topic&#8217;ten baz\u0131 mesajlar\u0131 okuyun ve orijinal verilerle kar\u015f\u0131la\u015ft\u0131r\u0131n.<\/p>\n<h3>Apache Kafka Verilerini Ta\u015f\u0131ma (Migration)<\/h3>\n<p>Kafka verilerini ta\u015f\u0131ma, farkl\u0131 senaryolar\u0131 kapsar: bir broker&#8217;\u0131 yeni bir sunucuya ta\u015f\u0131mak, topic partition&#8217;lar\u0131n\u0131 k\u00fcme i\u00e7indeki farkl\u0131 broker&#8217;lara da\u011f\u0131tmak veya iki ayr\u0131 Kafka k\u00fcmesi aras\u0131nda veri senkronizasyonu yapmak.<\/p>\n<h4>1. Offline Broker Ta\u015f\u0131ma (Yeni Sunucuya veya Dizinlere)<\/h4>\n<p>Bu y\u00f6ntem, bir Kafka broker&#8217;\u0131n\u0131n t\u00fcm verilerini yeni bir sunucuya veya mevcut sunucudaki farkl\u0131 bir disk dizinine ta\u015f\u0131mak i\u00e7in kullan\u0131l\u0131r. Bu, dosya sistemi yedeklemesine benzer \u015fekilde bir kesinti gerektirir.<\/p>\n<p><strong>Ad\u0131mlar:<\/strong><\/p>\n<p>1.  <strong>Kafka Broker&#8217;\u0131n\u0131 Durdurma:<\/strong> Ta\u015f\u0131nacak broker&#8217;\u0131 durdurun.<\/p>\n<pre><code class=\"language-bash\">sudo systemctl stop kafka<\/code><\/pre>\n<p>2.  <strong>Veri Dizinlerini Kopyalama:<\/strong> Mevcut <code>log.dirs<\/code> dizinlerinin i\u00e7eri\u011fini yeni hedef konuma kopyalay\u0131n.<br \/>\n    *   <strong>Ayn\u0131 Sunucuda Dizin De\u011fi\u015fikli\u011fi:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo rsync -avh --progress \/old\/data\/kafka-logs\/ \/new\/data\/kafka-logs\/<\/code><\/pre>\n<p>    *   <strong>Yeni Sunucuya Ta\u015f\u0131ma (SCP ile):<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo scp -rp \/data\/kafka\/kafka-logs user@new_server_ip:\/data\/kafka\/kafka-logs<\/code><\/pre>\n<p>        Bu komut, t\u00fcm veri dizinini yeni sunucudaki hedef konuma kopyalar. Yeni sunucuda ayn\u0131 dizin yap\u0131s\u0131n\u0131n ve izinlerin oldu\u011fundan emin olun.<\/p>\n<p>3.  <strong><code>server.properties<\/code> Dosyas\u0131n\u0131 G\u00fcncelleme:<\/strong> Kafka broker&#8217;\u0131n\u0131n <code>server.properties<\/code> dosyas\u0131nda <code>log.dirs<\/code> parametresini yeni veri dizini yolunu g\u00f6sterecek \u015fekilde g\u00fcncelleyin. E\u011fer broker ID (<code>broker.id<\/code>) de de\u011fi\u015fiyorsa, bunu da g\u00fcncelleyin.<\/p>\n<pre><code class=\"language-properties\"># Eski: log.dirs=\/old\/data\/kafka-logs\n    # Yeni:\n    log.dirs=\/new\/data\/kafka-logs<\/code><\/pre>\n<p>4.  <strong>\u0130zinleri Kontrol Etme:<\/strong> Yeni dizinde veya yeni sunucuda Kafka kullan\u0131c\u0131s\u0131 i\u00e7in do\u011fru izinlerin ayarland\u0131\u011f\u0131ndan emin olun.<\/p>\n<pre><code class=\"language-bash\">sudo chown -R kafka:kafka \/new\/data\/kafka-logs<\/code><\/pre>\n<p>5.  <strong>Kafka Broker&#8217;\u0131n\u0131 Ba\u015flatma:<\/strong> Broker&#8217;\u0131 yeni yap\u0131land\u0131rma ile ba\u015flat\u0131n.<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start kafka<\/code><\/pre>\n<p>    E\u011fer broker ID de\u011fi\u015ftiyse, ZooKeeper&#8217;daki eski broker ID&#8217;sine ait meta veriler otomatik olarak g\u00fcncellenecektir.<\/p>\n<h4>2. Online Broker Ta\u015f\u0131ma ve K\u00fcme Geni\u015fletme (Partition Reassignment)<\/h4>\n<p>Bu y\u00f6ntem, mevcut Kafka k\u00fcmesindeki topic partition&#8217;lar\u0131n\u0131 aktif olarak \u00e7al\u0131\u015fan broker&#8217;lar aras\u0131nda yeniden da\u011f\u0131tmak veya yeni eklenen broker&#8217;lara ta\u015f\u0131mak i\u00e7in kullan\u0131l\u0131r. Bu i\u015flem online olarak ve kesintisiz bir \u015fekilde ger\u00e7ekle\u015ftirilebilir.<\/p>\n<p><strong>Ad\u0131mlar:<\/strong><\/p>\n<p>1.  <strong>Hedef Broker&#8217;lar\u0131 Ekleme (Gerekliyse):<\/strong> E\u011fer yeni broker&#8217;lara ta\u015f\u0131yorsan\u0131z, \u00f6ncelikle bu broker&#8217;lar\u0131 k\u00fcmeye ekleyin ve ba\u015flat\u0131n.<\/p>\n<p>2.  <strong>Ta\u015f\u0131ma Plan\u0131 Olu\u015fturma:<\/strong> <code>kafka-reassign-partitions.sh<\/code> arac\u0131n\u0131 kullanarak ta\u015f\u0131nacak topic&#8217;leri ve partition&#8217;lar\u0131 i\u00e7eren bir JSON dosyas\u0131 olu\u015fturun.<\/p>\n<p>    *   <strong>JSON Giri\u015f Dosyas\u0131 (<code>topics-to-move.json<\/code>) Olu\u015fturma:<\/strong><\/p>\n<pre><code class=\"language-json\">{\n          \"topics\": [\n            {\n              \"topic\": \"my_topic_1\"\n            },\n            {\n              \"topic\": \"my_topic_2\"\n            }\n          ],\n          \"version\": 1\n        }<\/code><\/pre>\n<p>        Bu dosya, ta\u015f\u0131nacak topic&#8217;leri belirtir.<\/p>\n<p>    *   <strong>Ta\u015f\u0131ma Aday\u0131 Plan\u0131 Olu\u015fturma:<\/strong> Bu komut, belirtilen topic&#8217;lerin partition&#8217;lar\u0131n\u0131 yeni broker&#8217;lara veya mevcut broker&#8217;lar aras\u0131nda nas\u0131l da\u011f\u0131t\u0131laca\u011f\u0131na dair bir JSON plan\u0131 \u00f6nerir.<\/p>\n<pre><code class=\"language-bash\">\/opt\/kafka\/bin\/kafka-reassign-partitions.sh --bootstrap-server localhost:9092 \\\n            --topics-to-move-json-file topics-to-move.json \\\n            --broker-list \"1,2,3,4\" --generate<\/code><\/pre>\n<p>        *   <code>--broker-list<\/code>: Partition&#8217;lar\u0131n da\u011f\u0131t\u0131laca\u011f\u0131 broker ID&#8217;lerinin virg\u00fclle ayr\u0131lm\u0131\u015f listesi.<br \/>\n        *   <code>--generate<\/code>: Mevcut atamay\u0131 (<code>Current partition replica assignment<\/code>) ve \u00f6nerilen atamay\u0131 (<code>Proposed partition replica assignment<\/code>) i\u00e7eren bir JSON \u00e7\u0131kt\u0131s\u0131 \u00fcretir.<\/p>\n<p>        <strong>\u00d6rnek \u00c7\u0131kt\u0131:<\/strong><\/p>\n<pre><code class=\"language-json\">Current partition replica assignment\n        {\"version\":1,\"partitions\":[{\"topic\":\"my_topic_1\",\"partition\":0,\"replicas\":[1,2],\"log_dirs\":[\"any\",\"any\"]},{\"topic\":\"my_topic_1\",\"partition\":1,\"replicas\":[2,3],\"log_dirs\":[\"any\",\"any\"]}]}\n        Proposed partition replica assignment\n        {\"version\":1,\"partitions\":[{\"topic\":\"my_topic_1\",\"partition\":0,\"replicas\":[3,4],\"log_dirs\":[\"any\",\"any\"]},{\"topic\":\"my_topic_1\",\"partition\":1,\"replicas\":[4,1],\"log_dirs\":[\"any\",\"any\"]}]}<\/code><\/pre>\n<p>        <code>Proposed partition replica assignment<\/code> k\u0131sm\u0131n\u0131 kopyalay\u0131p <code>reassignment-plan.json<\/code> adl\u0131 yeni bir dosyaya kaydedin.<\/p>\n<p>3.  <strong>Ta\u015f\u0131ma \u0130\u015flemini Ba\u015flatma:<\/strong> Olu\u015fturulan <code>reassignment-plan.json<\/code> dosyas\u0131n\u0131 kullanarak ta\u015f\u0131ma i\u015flemini ba\u015flat\u0131n.<\/p>\n<pre><code class=\"language-bash\">\/opt\/kafka\/bin\/kafka-reassign-partitions.sh --bootstrap-server localhost:9092 \\\n        --reassignment-json-file reassignment-plan.json --execute<\/code><\/pre>\n<p>4.  <strong>Ta\u015f\u0131ma Durumunu Do\u011frulama:<\/strong> Ta\u015f\u0131ma i\u015fleminin ilerlemesini ve tamamland\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in ayn\u0131 komutu <code>--verify<\/code> parametresiyle \u00e7al\u0131\u015ft\u0131r\u0131n.<\/p>\n<pre><code class=\"language-bash\">\/opt\/kafka\/bin\/kafka-reassign-partitions.sh --bootstrap-server localhost:9092 \\\n        --reassignment-json-file reassignment-plan.json --verify<\/code><\/pre>\n<p>    T\u00fcm partition&#8217;lar ta\u015f\u0131nd\u0131\u011f\u0131nda &#8220;Reassignment of partitions completed successfully&#8221; mesaj\u0131n\u0131 g\u00f6receksiniz.<\/p>\n<p><strong>\u00d6nemli Notlar:<\/strong><br \/>\n*   Ta\u015f\u0131ma i\u015flemi s\u0131ras\u0131nda a\u011f ve disk I\/O&#8217;su artabilir, bu da broker performans\u0131n\u0131 etkileyebilir.<br \/>\n*   Replikasyon fakt\u00f6r\u00fcn\u00fc de\u011fi\u015ftirmek i\u00e7in de bu arac\u0131 kullanabilirsiniz.<\/p>\n<h4>3. K\u00fcmeler Aras\u0131 Veri Ta\u015f\u0131ma (MirrorMaker ile)<\/h4>\n<p>Apache Kafka MirrorMaker, bir Kafka k\u00fcmesindeki topic&#8217;leri ba\u015fka bir Kafka k\u00fcmesine asenkron olarak yans\u0131tan bir ara\u00e7t\u0131r. Bu, felaket kurtarma (DR), k\u00fcme y\u00fckseltmeleri veya co\u011frafi olarak da\u011f\u0131t\u0131lm\u0131\u015f veri merkezleri aras\u0131nda veri replikasyonu i\u00e7in idealdir.<\/p>\n<p><strong>MirrorMaker 1 (Eski S\u00fcr\u00fcm):<\/strong> Kafka da\u011f\u0131t\u0131m\u0131n\u0131n bir par\u00e7as\u0131 olarak gelir. Consumer ve Producer API&#8217;lerini kullan\u0131r.<\/p>\n<p><strong>Ad\u0131mlar:<\/strong><\/p>\n<p>1.  <strong>Yap\u0131land\u0131rma Dosyalar\u0131n\u0131 Haz\u0131rlama:<\/strong> MirrorMaker&#8217;\u0131n \u00e7al\u0131\u015faca\u011f\u0131 sunucuda (genellikle hedef k\u00fcmenin yak\u0131n\u0131nda) iki yap\u0131land\u0131rma dosyas\u0131 olu\u015fturun:<\/p>\n<p>    *   <strong><code>consumer.properties<\/code> (Kaynak K\u00fcmeden Okuma \u0130\u00e7in):<\/strong><\/p>\n<pre><code class=\"language-properties\">bootstrap.servers=source_kafka_broker_1:9092,source_kafka_broker_2:9092\n        group.id=mirrormaker_consumer_group\n        exclude.internal.topics=true<\/code><\/pre>\n<p>    *   <strong><code>producer.properties<\/code> (Hedef K\u00fcmeye Yazma \u0130\u00e7in):<\/strong><\/p>\n<pre><code class=\"language-properties\">bootstrap.servers=target_kafka_broker_1:9092,target_kafka_broker_2:9092\n        acks=all<\/code><\/pre>\n<p>2.  <strong>MirrorMaker&#8217;\u0131 Ba\u015flatma:<\/strong><\/p>\n<pre><code class=\"language-bash\">\/opt\/kafka\/bin\/kafka-mirror-maker.sh --consumer.config config\/consumer.properties \\\n        --producer.config config\/producer.properties --whitelist \"topic_to_mirror|another_topic\"<\/code><\/pre>\n<p>    <em>   <code>--whitelist<\/code>: Yans\u0131t\u0131lacak topic&#8217;leri belirten bir d\u00fczenli ifade (regex). <code>.<\/em><\/code> t\u00fcm topic&#8217;leri yans\u0131t\u0131r.<\/p>\n<p><strong>MirrorMaker 2.0 (Kafka Connect Tabanl\u0131):<\/strong> Kafka 2.4 ve \u00fczeri s\u00fcr\u00fcmlerde tan\u0131t\u0131lan MirrorMaker 2.0, Kafka Connect \u00e7er\u00e7evesi \u00fczerine in\u015fa edilmi\u015ftir ve daha g\u00fc\u00e7l\u00fc, \u00f6l\u00e7eklenebilir ve esnek bir replikasyon \u00e7\u00f6z\u00fcm\u00fc sunar.<\/p>\n<p><strong>Ad\u0131mlar:<\/strong><\/p>\n<p>1.  <strong>Yap\u0131land\u0131rma Dosyas\u0131n\u0131 Haz\u0131rlama (<code>mm2.properties<\/code>):<\/strong><\/p>\n<pre><code class=\"language-properties\"># Genel MirrorMaker yap\u0131land\u0131rmas\u0131\n    clusters = source, target\n    source.bootstrap.servers = source_kafka_broker_1:9092\n    target.bootstrap.servers = target_kafka_broker_1:9092\n\n    # Replikasyon ayarlar\u0131\n    source->target.enabled = true\n    source->target.topics = .*\n    source->target.replication.factor = 1 # Hedef k\u00fcmedeki topic'ler i\u00e7in replikasyon fakt\u00f6r\u00fc\n    source->target.consumer.group.filters = .* # Consumer gruplar\u0131n\u0131 da replike etmek i\u00e7in\n    source->target.sync.group.offsets = true # Consumer offsetlerini senkronize etmek i\u00e7in<\/code><\/pre>\n<p>2.  <strong>MirrorMaker 2.0&#8217;\u0131 Ba\u015flatma:<\/strong><\/p>\n<pre><code class=\"language-bash\">\/opt\/kafka\/bin\/connect-mirror-maker.sh config\/mm2.properties<\/code><\/pre>\n<p>    MirrorMaker 2.0, Kafka Connect worker&#8217;\u0131 olarak \u00e7al\u0131\u015f\u0131r ve birden fazla connector&#8217;\u0131 y\u00f6netir (source, sink, checkpoint, offset sync).<\/p>\n<p><strong>\u00d6nemli Notlar:<\/strong><br \/>\n*   MirrorMaker, topic adlar\u0131n\u0131 hedef k\u00fcmede genellikle kaynak k\u00fcme ad\u0131yla \u00f6n ekler (\u00f6rn. <code>source.my_topic<\/code>). Bu davran\u0131\u015f\u0131 yap\u0131land\u0131rmak m\u00fcmk\u00fcnd\u00fcr.<br \/>\n*   MirrorMaker 2.0, \u00e7ok daha esnek ve y\u00f6netilebilir olup, uzun vadeli replikasyon stratejileri i\u00e7in tercih edilmelidir.<\/p>\n<h3>Veri B\u00fct\u00fcnl\u00fc\u011f\u00fc ve Do\u011frulama<\/h3>\n<p>Yedekleme, geri y\u00fckleme veya ta\u015f\u0131ma i\u015flemlerinden sonra verilerin b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc ve do\u011frulu\u011funu do\u011frulamak kritik \u00f6neme sahiptir.<\/p>\n<p>1.  <strong>Topic Mesaj Say\u0131lar\u0131n\u0131 Kar\u015f\u0131la\u015ft\u0131rma:<\/strong><br \/>\n    Kaynak ve hedef topic&#8217;lerdeki mesaj say\u0131lar\u0131n\u0131 kar\u015f\u0131la\u015ft\u0131r\u0131n.<\/p>\n<pre><code class=\"language-bash\">\/opt\/kafka\/bin\/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic my_topic --time -1<\/code><\/pre>\n<p>    Bu komut, topic&#8217;in en son offset&#8217;ini verir. Partition baz\u0131nda detayl\u0131 kontrol i\u00e7in <code>kafka-consumer-groups.sh<\/code> kullan\u0131labilir.<\/p>\n<p>2.  <strong>Consumer Offsetlerini Kontrol Etme:<\/strong><br \/>\n    E\u011fer consumer gruplar\u0131n\u0131 da ta\u015f\u0131d\u0131ysan\u0131z veya senkronize ettiyseniz, onlar\u0131n offsetlerini kontrol edin.<\/p>\n<pre><code class=\"language-bash\">\/opt\/kafka\/bin\/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group my_consumer_group<\/code><\/pre>\n<p>3.  <strong>\u00d6rnek Veri \u00c7ekme ve Kar\u015f\u0131la\u015ft\u0131rma:<\/strong><br \/>\n    Kaynak ve hedef topic&#8217;lerden belirli bir miktar mesaj\u0131 okuyun ve i\u00e7eriklerini kar\u015f\u0131la\u015ft\u0131r\u0131n.<\/p>\n<pre><code class=\"language-bash\">\/opt\/kafka\/bin\/kafka-console-consumer.sh --bootstrap-server localhost:9092 \\\n        --topic my_topic --from-beginning --max-messages 100 > source_data.txt\n    \/opt\/kafka\/bin\/kafka-console-consumer.sh --bootstrap-server localhost:9092 \\\n        --topic my_topic_restored --from-beginning --max-messages 100 > target_data.txt\n    diff source_data.txt target_data.txt<\/code><\/pre>\n<p>4.  <strong>Kafka Metriklerini \u0130zleme:<\/strong><br \/>\n    Ta\u015f\u0131ma veya geri y\u00fckleme sonras\u0131 Kafka broker&#8217;lar\u0131n\u0131n performans metriklerini (CPU, bellek, disk I\/O, a\u011f trafi\u011fi, gecikme s\u00fcreleri) izleyin. JMX, Prometheus\/Grafana veya di\u011fer izleme ara\u00e7lar\u0131 kullan\u0131labilir.<\/p>\n<h3>En \u0130yi Uygulamalar ve \u00d6nemli Hususlar<\/h3>\n<p>*   <strong>Yedekleme ve Ta\u015f\u0131ma Planlar\u0131n\u0131 Test Edin:<\/strong> \u00dcretim ortam\u0131nda herhangi bir i\u015flem yapmadan \u00f6nce, t\u00fcm yedekleme, geri y\u00fckleme ve ta\u015f\u0131ma prosed\u00fcrlerini bir test ortam\u0131nda titizlikle uygulay\u0131n ve do\u011frulay\u0131n.<br \/>\n*   <strong>Veri Tutarl\u0131l\u0131\u011f\u0131 ve Kay\u0131p Tolerans\u0131:<\/strong> \u0130\u015fletmenizin veri kayb\u0131 tolerans\u0131n\u0131 (RPO) ve kurtarma s\u00fcresi hedeflerini (RTO) net bir \u015fekilde belirleyin. Bu hedefler, hangi yedekleme ve ta\u015f\u0131ma stratejisinin sizin i\u00e7in en uygun oldu\u011funu belirleyecektir.<br \/>\n*   <strong>G\u00fcvenlik:<\/strong> Yedekleme dosyalar\u0131n\u0131 ve ta\u015f\u0131ma s\u0131ras\u0131nda kullan\u0131lan kimlik bilgilerini g\u00fcvenli bir \u015fekilde saklay\u0131n. Kafka ACL&#8217;lerini ve \u015fifrelemeyi kullanarak veri g\u00fcvenli\u011fini sa\u011flay\u0131n.<br \/>\n*   <strong>Kaynak Planlamas\u0131:<\/strong> Yedekleme ve ta\u015f\u0131ma i\u015flemleri s\u0131ras\u0131nda ek disk alan\u0131, a\u011f bant geni\u015fli\u011fi ve CPU kaynaklar\u0131na ihtiya\u00e7 duyulabilir. Bu kaynaklar\u0131 \u00f6nceden planlay\u0131n.<br \/>\n*   <strong>Otomasyon:<\/strong> Yedekleme i\u015flemlerini otomatikle\u015ftirmek i\u00e7in cron i\u015fleri veya yap\u0131land\u0131rma y\u00f6netim ara\u00e7lar\u0131 (Ansible, Puppet) kullan\u0131n. Bu, insan hatas\u0131n\u0131 azalt\u0131r ve s\u00fcre\u00e7leri standartla\u015ft\u0131r\u0131r.<br \/>\n*   <strong>ZooKeeper&#8217;\u0131n Rol\u00fc:<\/strong> Kafka&#8217;n\u0131n meta verileri (topic yap\u0131land\u0131rmas\u0131, partition atamalar\u0131, consumer offsetleri) ZooKeeper&#8217;da saklan\u0131r. Kafka verilerini yedeklerken ZooKeeper verilerini de yedeklemeyi d\u00fc\u015f\u00fcnebilirsiniz, ancak genellikle Kafka broker&#8217;lar\u0131n\u0131n veri dizinleri birincil yedekleme hedefidir.<br \/>\n*   <strong>Kafka S\u00fcr\u00fcm Uyumlulu\u011fu:<\/strong> K\u00fcmeler aras\u0131 ta\u015f\u0131ma veya y\u00fckseltme yaparken Kafka s\u00fcr\u00fcm uyumlulu\u011funu g\u00f6z \u00f6n\u00fcnde bulundurun. MirrorMaker 2.0, farkl\u0131 Kafka s\u00fcr\u00fcmleri aras\u0131nda replikasyon i\u00e7in daha esnektir.<br \/>\n*   <strong>Belgeleme:<\/strong> T\u00fcm yedekleme ve ta\u015f\u0131ma prosed\u00fcrlerini, yap\u0131land\u0131rma dosyalar\u0131n\u0131 ve al\u0131nan kararlar\u0131 detayl\u0131 bir \u015fekilde belgeleyin. Bu, gelecekteki operasyonlar ve sorun giderme i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Apache Kafka, modern veri mimarilerinin temel ta\u015f\u0131d\u0131r ve bu platformdaki verilerin g\u00fcvenli\u011fi ve eri\u015filebilirli\u011fi i\u015f s\u00fcreklili\u011fi i\u00e7in hayati \u00f6neme sahiptir. CentOS 7 \u00fczerinde Kafka verilerini yedekleme, i\u00e7eri aktarma ve ta\u015f\u0131ma, farkl\u0131 operasyonel ihtiya\u00e7lara y\u00f6nelik \u00e7e\u015fitli y\u00f6ntemler sunar. Dosya sistemi tabanl\u0131 offline yedeklemeden, <code>kafka-reassign-partitions.sh<\/code> ile online k\u00fcme geni\u015fletmeye ve MirrorMaker ile k\u00fcmeler aras\u0131 replikasyona kadar, her y\u00f6ntemin kendine \u00f6zg\u00fc avantajlar\u0131 ve uygulama senaryolar\u0131 bulunmaktad\u0131r.<\/p>\n<p>Bu rehber, Kafka verilerinizi g\u00fcvence alt\u0131na almak ve dinamik i\u015f gereksinimlerine yan\u0131t vermek i\u00e7in gerekli temel bilgileri ve pratik ad\u0131mlar\u0131 sa\u011flam\u0131\u015ft\u0131r. Her zaman oldu\u011fu gibi, herhangi bir \u00fcretim ortam\u0131 de\u011fi\u015fikli\u011finden \u00f6nce kapsaml\u0131 testler yapmak ve iyi bir planlama ile hareket etmek, veri kayb\u0131n\u0131 \u00f6nlemenin ve sistem s\u00fcreklili\u011fini sa\u011flaman\u0131n anahtar\u0131d\u0131r. Kafka ekosisteminin s\u00fcrekli geli\u015fti\u011fini unutmay\u0131n; bu nedenle, en son ara\u00e7lar\u0131 ve en iyi uygulamalar\u0131 takip etmek, veri y\u00f6netimi stratejilerinizi g\u00fcncel tutman\u0131za yard\u0131mc\u0131 olacakt\u0131r.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Apache Kafka Verilerini CentOS 7 \u00dczerinde Yedekleme, \u0130\u00e7eri Aktarma ve Ta\u015f\u0131ma Rehberi\nGiri\u015f\nG\u00fcn\u00fcm\u00fcz\u00fcn veri odakl\u0131 d\u00fcnyas\u0131nda, ger\u00e7ek zam","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":[241],"tags":[],"class_list":{"0":"post-37056","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-linux","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>Apache Kafka Verilerini CentOS 7 \u00dczerinde Yedekleme, \u0130\u00e7eri Aktarma ve Ta\u015f\u0131ma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/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:\/\/fatihsoysal.com\/blog\/apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Apache Kafka Verilerini CentOS 7 \u00dczerinde Yedekleme, \u0130\u00e7eri Aktarma ve Ta\u015f\u0131ma Rehberi\" \/>\n<meta property=\"og:description\" content=\"Apache Kafka Verilerini CentOS 7 \u00dczerinde Yedekleme, \u0130\u00e7eri Aktarma ve Ta\u015f\u0131ma Rehberi Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn veri odakl\u0131 d\u00fcnyas\u0131nda, ger\u00e7ek zam\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-26T18:40:51+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=\"18 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Apache Kafka Verilerini CentOS 7 \u00dczerinde Yedekleme, \u0130\u00e7eri Aktarma ve Ta\u015f\u0131ma Rehberi\",\"datePublished\":\"2025-12-26T18:40:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi\/\"},\"wordCount\":2821,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Linux\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi\/\",\"name\":\"Apache Kafka Verilerini CentOS 7 \u00dczerinde Yedekleme, \u0130\u00e7eri Aktarma ve Ta\u015f\u0131ma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-26T18:40:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Apache Kafka Verilerini CentOS 7 \u00dczerinde Yedekleme, \u0130\u00e7eri Aktarma ve Ta\u015f\u0131ma Rehberi\"}]},{\"@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":"Apache Kafka Verilerini CentOS 7 \u00dczerinde Yedekleme, \u0130\u00e7eri Aktarma ve Ta\u015f\u0131ma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","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\/apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"Apache Kafka Verilerini CentOS 7 \u00dczerinde Yedekleme, \u0130\u00e7eri Aktarma ve Ta\u015f\u0131ma Rehberi","og_description":"Apache Kafka Verilerini CentOS 7 \u00dczerinde Yedekleme, \u0130\u00e7eri Aktarma ve Ta\u015f\u0131ma Rehberi Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn veri odakl\u0131 d\u00fcnyas\u0131nda, ger\u00e7ek zam","og_url":"https:\/\/fatihsoysal.com\/blog\/apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-26T18:40:51+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"18 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Apache Kafka Verilerini CentOS 7 \u00dczerinde Yedekleme, \u0130\u00e7eri Aktarma ve Ta\u015f\u0131ma Rehberi","datePublished":"2025-12-26T18:40:51+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi\/"},"wordCount":2821,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Linux"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi\/","name":"Apache Kafka Verilerini CentOS 7 \u00dczerinde Yedekleme, \u0130\u00e7eri Aktarma ve Ta\u015f\u0131ma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-26T18:40:51+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/apache-kafka-verilerini-centos-7-uzerinde-yedekleme-iceri-aktarma-ve-tasima-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Apache Kafka Verilerini CentOS 7 \u00dczerinde Yedekleme, \u0130\u00e7eri Aktarma ve Ta\u015f\u0131ma Rehberi"}]},{"@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\/37056","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=37056"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37056\/revisions"}],"predecessor-version":[{"id":37057,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37056\/revisions\/37057"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37056"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37056"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37056"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}