MySQL InnoDB Cluster + Group Replication + MySQL Router Mimarisi
Paxos tabanlı Group Replication protokolüyle çalışan, native MySQL yüksek erişilebilirlik çözümü. Single-Primary modunda çalışarak çakışmaları engeller ve MySQL Router üzerinden yükü otomatik yönlendirir.

📌 MySQL InnoDB Cluster + Group Replication + MySQL Router Referans Mimari Şeması (Single-Primary Mode)
Web, Mobil ve Analitik uygulamaları doğrudan veritabanı sunucularına değil, MySQL Router'ın 6446 (R/W) ve 6447 (R/O) portlarına bağlanır.
MySQL Router, küme topolojisini ve aktif primary düğümü metadata cache tablosundan sürekli senkronize tutarak istekleri doğru hedefe iletir.
Single-Primary modunda tüm yazmalar Primary düğümde işlenir ve Paxos protokolüyle ikincil sunuculara sertifikalandırılarak aktarılır.
Primary sunucu yanıt vermeyi kestiğinde, Group Replication üyeleri otomatik üyelik protokolüyle düğümün ayrıldığını doğrular.
En yüksek `member_weight` değerine ve en güncel işlem geçmişine sahip SECONDARY düğüm 10 saniye içinde yeni PRIMARY ilan edilir.
MySQL Router metadata değişikliğini anında algılar; 6446 R/W trafiği uygulama yeniden başlatılmasına gerek kalmadan yeni Primary'ye yönlendirilir.
# MySQL InnoDB Cluster Shell Creation
dba.createCluster('prodCluster', {
ipWhitelist: '10.0.1.0/24',
memberWeight: 50,
consistency: 'AFTER'
});
cluster.addInstance('root@10.0.1.12:3306', {
recoveryMethod: 'clone'
});
cluster.addInstance('root@10.0.1.13:3306', {
recoveryMethod: 'clone'
});
# Küme Durumu Kontrolü
cluster.status();mysqlsh root@10.0.1.11:3306 -- cluster status
SELECT * FROM performance_schema.replication_group_members;
SELECT * FROM performance_schema.replication_group_member_stats;- •Resmi Oracle / MySQL native desteği
- •Harici konsensüs servisi (etcd/consul) gerektirmez
- •MySQL Shell ile tek satırda otomatik kurulum ve yönetim
- •En az 3 düğümlü küme zorunluluğu
- •Tablolarda PRIMARY KEY ve InnoDB motor zorunluluğu
- Tüm tablolarda zorunlu olarak PRIMARY KEY ve InnoDB depolama motoru bulunmalıdır.
- Küme en az 3 düğümden oluşmalıdır (Split-brain önlemek için tek sayılı düğüm önerilir).
- `binlog_format=ROW` ve `gtid_mode=ON` parametreleri tüm sunucularda aktif olmalıdır.
- MySQL Router yüksek erişilebilirliği için en az 2 adet Router instance kurulmalıdır.