{"id":1474,"date":"2025-11-07T13:03:37","date_gmt":"2025-11-07T10:03:37","guid":{"rendered":"https:\/\/www.dchost.com\/blog\/mariadb-yuksek-erisilebilirlik-galera-cluster-mi-primary%e2%80%91replica-mi-woocommerce-icin-okuma-yazma-mimarisi\/"},"modified":"2025-11-07T13:03:37","modified_gmt":"2025-11-07T10:03:37","slug":"mariadb-yuksek-erisilebilirlik-galera-cluster-mi-primary%e2%80%91replica-mi-woocommerce-icin-okuma-yazma-mimarisi","status":"publish","type":"post","link":"https:\/\/www.dchost.com\/blog\/mariadb-yuksek-erisilebilirlik-galera-cluster-mi-primary%e2%80%91replica-mi-woocommerce-icin-okuma-yazma-mimarisi\/","title":{"rendered":"MariaDB Y\u00fcksek Eri\u015filebilirlik: Galera Cluster m\u0131, Primary\u2011Replica m\u0131? WooCommerce \u0130\u00e7in Okuma\/Yazma Mimarisi"},"content":{"rendered":"<div class=\"dchost-blog-content-wrapper\"><div id=\"toc_container\" class=\"toc_transparent no_bullets\"><p class=\"toc_title\">\u0130&ccedil;indekiler<\/p><ul class=\"toc_list\"><li><a href=\"#Bir_Siparis_Yagmurunda_Frene_Basmayan_Veritabani_Nasil_Kurulur\"><span class=\"toc_number toc_depth_1\">1<\/span> Bir Sipari\u015f Ya\u011fmurunda Frene Basmayan Veritaban\u0131 Nas\u0131l Kurulur?<\/a><\/li><li><a href=\"#WooCommerce_Trafiginin_Kalp_Atisi_Okuma_Nereye_Yazma_Nerede_Patlar\"><span class=\"toc_number toc_depth_1\">2<\/span> WooCommerce Trafi\u011finin Kalp At\u0131\u015f\u0131: Okuma Nereye, Yazma Nerede Patlar?<\/a><\/li><li><a href=\"#Galera_Clusteri_Gozunuzde_Canlandirin_Ayni_Anda_Yazmak_Gucludur_Ama_Nazik_Davranir\"><span class=\"toc_number toc_depth_1\">3<\/span> Galera Cluster\u2019\u0131 G\u00f6z\u00fcn\u00fczde Canland\u0131r\u0131n: Ayn\u0131 Anda Yazmak G\u00fc\u00e7l\u00fcd\u00fcr, Ama Nazik Davran\u0131r<\/a><\/li><li><a href=\"#PrimaryReplica_ile_Sakin_Su_Yazma_Tek_Yerden_Okuma_Diledigin_Kadar\"><span class=\"toc_number toc_depth_1\">4<\/span> Primary\u2011Replica ile Sakin Su: Yazma Tek Yerden, Okuma Diledi\u011fin Kadar<\/a><\/li><li><a href=\"#WooCommercede_OkumaYazma_Yonlendirmesi_Gercek_Hayatta_Ne_Ise_Yarar\"><span class=\"toc_number toc_depth_1\">5<\/span> WooCommerce\u2019de Okuma\/Yazma Y\u00f6nlendirmesi: Ger\u00e7ek Hayatta Ne \u0130\u015fe Yarar?<\/a><\/li><li><a href=\"#Dayaniklilik_Hatalar_ve_Gece_Gunduz_Uykusu\"><span class=\"toc_number toc_depth_1\">6<\/span> Dayan\u0131kl\u0131l\u0131k, Hatalar ve Gece G\u00fcnd\u00fcz Uykusu<\/a><\/li><li><a href=\"#Performans_Tuzaklari_Kucuk_Dokunuslarla_Buyuk_Etki\"><span class=\"toc_number toc_depth_1\">7<\/span> Performans Tuzaklar\u0131: K\u00fc\u00e7\u00fck Dokunu\u015flarla B\u00fcy\u00fck Etki<\/a><\/li><li><a href=\"#Somut_Mimariler_Bugun_Magaza_Kac_Kisiyle_Dans_Ediyor\"><span class=\"toc_number toc_depth_1\">8<\/span> Somut Mimariler: Bug\u00fcn Ma\u011faza Ka\u00e7 Ki\u015fiyle Dans Ediyor?<\/a><\/li><li><a href=\"#Proxy_Sema_ve_Guncelleme_Meselesi_Ufak_Dokunuslar\"><span class=\"toc_number toc_depth_1\">9<\/span> Proxy, \u015eema ve G\u00fcncelleme Meselesi: Ufak Dokunu\u015flar<\/a><\/li><li><a href=\"#Karar_Ani_Galera_mi_PrimaryReplica_mi_Sorunun_Cevabi_Hep_Senaryoda_Sakli\"><span class=\"toc_number toc_depth_1\">10<\/span> Karar An\u0131: Galera m\u0131, Primary\u2011Replica m\u0131? Sorunun Cevab\u0131 Hep Senaryoda Sakl\u0131<\/a><\/li><li><a href=\"#Kapanis_Magazanizin_Ritmini_Duyun_Mimariniz_Ona_Eslik_Etsin\"><span class=\"toc_number toc_depth_1\">11<\/span> Kapan\u0131\u015f: Ma\u011fazan\u0131z\u0131n Ritmini Duyun, Mimariniz Ona E\u015flik Etsin<\/a><\/li><\/ul><\/div>\n<h2 id=\"section-1\"><span id=\"Bir_Siparis_Yagmurunda_Frene_Basmayan_Veritabani_Nasil_Kurulur\">Bir Sipari\u015f Ya\u011fmurunda Frene Basmayan Veritaban\u0131 Nas\u0131l Kurulur?<\/span><\/h2>\n<p>Hi\u00e7 ba\u015f\u0131n\u0131za geldi mi? Ma\u011fazan\u0131zda g\u00fczel bir kampanya ba\u015flat\u0131rs\u0131n\u0131z, Instagram\u2019dan trafik ya\u011far, sepetler dolup ta\u015far. Sonra bir anda \u201csepete ekle\u201d butonu d\u00f6ner durur, \u00f6deme ad\u0131m\u0131 bekler, stoklar garip davran\u0131r. Ofiste ilk akla gelen su\u00e7lu genelde veritaban\u0131 olur. O g\u00fcnlerden birinde ben de \u201cBu i\u015fte bir mimari meselesi var\u201d deyip sandalyeyi geriye itmi\u015ftim. MariaDB taraf\u0131nda ayn\u0131 iki kavram hep d\u00f6ner durur: Galera Cluster ve Primary\u2011Replica. \u0130kisi de y\u00fcksek eri\u015filebilirlik der, ama hissettirdikleri, tak\u0131lmay\u0131 sevdikleri yerler farkl\u0131d\u0131r.<\/p>\n<p>Bu yaz\u0131da WooCommerce g\u00f6zl\u00fc\u011f\u00fcyle bakaca\u011f\u0131z. Okuma ve yazma trafi\u011fi nas\u0131l akar, \u00f6deme ve stok ad\u0131mlar\u0131nda ba\u015f\u0131m\u0131za neler gelir, hangi senaryoda Galera\u2019n\u0131n senkron kafas\u0131 bize iyi gelir, hangi durumda Primary\u2011Replica\u2019n\u0131n s\u00fckuneti daha do\u011fru hissettirir\u2026 Mesela \u201cokuma a\u011f\u0131rl\u0131kl\u0131 saatlerde \u015f\u00f6yle, yo\u011fun sepet ve stok \u00e7at\u0131\u015fmalar\u0131nda b\u00f6yle\u201d diye ak\u0131\u015f\u0131n i\u00e7inden konu\u015faca\u011f\u0131z. Arada pratik t\u00fcyolar, proxy ipu\u00e7lar\u0131, izleme ve yedekleme \u00f6nerileri de d\u00fc\u015fecek. En sonunda da \u201cBug\u00fcn benim ma\u011faza i\u00e7in hangisi?\u201d sorusuna sade bir yol haritas\u0131 \u00e7izece\u011fiz.<\/p>\n<h2 id=\"section-2\"><span id=\"WooCommerce_Trafiginin_Kalp_Atisi_Okuma_Nereye_Yazma_Nerede_Patlar\">WooCommerce Trafi\u011finin Kalp At\u0131\u015f\u0131: Okuma Nereye, Yazma Nerede Patlar?<\/span><\/h2>\n<p>WooCommerce\u2019i bir sohbet gibi d\u00fc\u015f\u00fcn\u00fcn. \u00dcr\u00fcn sayfalar\u0131n\u0131 gezenler bol bol soru sorar: bu \u00fcr\u00fcn ne, varyasyonlar\u0131 ne, stokta var m\u0131? Bunlar\u0131n \u00e7o\u011fu okuma. Kasa taraf\u0131na gelince c\u00fcmleler k\u0131sal\u0131r ama kal\u0131nla\u015f\u0131r: sipari\u015fi olu\u015ftur, adresi yaz, kuponu uygula, stoktan d\u00fc\u015f, \u00f6deme durumunu g\u00fcncelle. \u0130\u015fte oras\u0131 yazmad\u0131r ve en k\u00fc\u00e7\u00fck tak\u0131lma, m\u00fc\u015fterinin sabr\u0131n\u0131 kolayca t\u00fcketir.<\/p>\n<p>As\u0131l ilgin\u00e7 k\u0131s\u0131m \u015fu: Yazma y\u00fck\u00fc bazen sand\u0131\u011f\u0131m\u0131z kadar k\u00fc\u00e7\u00fck de\u011fil. Sepet, oturum, ge\u00e7ici se\u00e7enekler\u2026 E\u011fer bunlar ak\u0131ll\u0131ca bir \u00f6nbelle\u011fe ya da oturum deposuna ta\u015f\u0131nmad\u0131ysa veritaban\u0131na minik minik i\u011fneler bat\u0131r\u0131l\u0131r. Benim deneyimimde, kampanyalarda en \u00e7ok zorlanan \u015fey genelde \u201ck\u0131smi ama s\u00fcrekli yazma\u201d olur. O y\u00fczden MariaDB taraf\u0131nda hangi mimariyi se\u00e7ersek se\u00e7elim, WooCommerce\u2019in bu k\u00fc\u00e7\u00fck yazmalar\u0131n\u0131 azaltmak b\u00fcy\u00fck rahatl\u0131k sa\u011flar. Bunun yolu da genelde nesne \u00f6nbelle\u011fi ve sa\u011flam bir sayfa \u00f6nbelle\u011finden ge\u00e7er. Mesela <a href=\"https:\/\/www.dchost.com\/blog\/wordpress-ve-woocommerce-icin-redis-mi-memcached-mi-kalici-nesne-onbellegi-ttl-ve-eviction-ayarlarini-ne-zaman-nasil-yaparsin\/\">WooCommerce i\u00e7in kal\u0131c\u0131 nesne \u00f6nbelle\u011fi se\u00e7erken Redis mi Memcached mi<\/a> sorusunu \u00e7\u00f6zmek, InnoDB\u2019nin \u00fczerinden epey y\u00fck al\u0131r. Bir de vitrini nefes ald\u0131rmak i\u00e7in tam sayfa \u00f6nbellekleme \u00e7ok iyi gelir; bunun i\u00e7in <a href=\"https:\/\/www.dchost.com\/blog\/wordpresste-tam-sayfa-onbellekleme-nasil-kurulur-nginx-fastcgi-cache-varnish-ve-litespeed-cache-ile-woocommercee-nazikce-dokunmak\/\">nazik bir tam sayfa \u00f6nbellekleme rehberi<\/a> daha ilk g\u00fcnden meyvesini verir.<\/p>\n<h2 id=\"section-3\"><span id=\"Galera_Clusteri_Gozunuzde_Canlandirin_Ayni_Anda_Yazmak_Gucludur_Ama_Nazik_Davranir\">Galera Cluster\u2019\u0131 G\u00f6z\u00fcn\u00fczde Canland\u0131r\u0131n: Ayn\u0131 Anda Yazmak G\u00fc\u00e7l\u00fcd\u00fcr, Ama Nazik Davran\u0131r<\/span><\/h2>\n<p>Galera, \u201cher d\u00fc\u011f\u00fcm yazabilir\u201d diyen senkron bir d\u00fcnya kurar. Yazd\u0131\u011f\u0131n\u0131z \u015fey, di\u011fer d\u00fc\u011f\u00fcmlerde de onay almadan \u201ctamam\u201d say\u0131lmaz. Bu kula\u011fa sihir gibi gelir \u00e7\u00fcnk\u00fc bir d\u00fc\u011f\u00fcm gitti\u011finde bile di\u011ferleri ayn\u0131 veriyi bilir. Fakat bunun da bir mizac\u0131 var: Yazd\u0131\u011f\u0131n\u0131z her \u015feyin di\u011ferlerine h\u0131zl\u0131ca ula\u015fmas\u0131 gerekir, yoksa \u201cbekle, tamamlanmadan ge\u00e7emeyiz\u201d der. Bu da \u00f6zellikle uzak mesafede veya d\u00fc\u011f\u00fcmlerden biri yava\u015fsa hissedilir.<\/p>\n<p>WooCommerce taraf\u0131nda Galera\u2019n\u0131n p\u0131r\u0131lt\u0131s\u0131, sipari\u015fi g\u00fcvenle i\u015fleme k\u0131sm\u0131nda parlar. Stock d\u00fc\u015f\u00fc\u015f\u00fc, \u00f6deme durum g\u00fcncellemesi gibi kalb\u00ee anlarda \u201ctek ger\u00e7ek\u201d duygusu g\u00fc\u00e7l\u00fcd\u00fcr. Ama i\u015f ayn\u0131 anda \u00e7ok say\u0131da yazma geldi\u011finde, \u00fcstelik bunlar\u0131n i\u00e7inde ayn\u0131 \u00fcr\u00fcn\u00fcn stok sat\u0131rlar\u0131na dokunanlar kar\u0131\u015ft\u0131\u011f\u0131nda, Galera \u201c\u015fu an bir nefes alal\u0131m\u201d diyebilir. Buna ak\u0131\u015f kontrol\u00fc ve \u00e7ak\u0131\u015fma kontrol\u00fcn\u00fcn do\u011fal sonucu diye bak\u0131n. Mesela \u015f\u00f6yle d\u00fc\u015f\u00fcn\u00fcn: Ayn\u0131 beden ti\u015f\u00f6rt i\u00e7in y\u00fcz ki\u015fi son ad\u0131mda. Hepsi ayn\u0131 sat\u0131r\u0131 kurcal\u0131yor. Galera hepsini s\u0131raya sokar, gerekirse bir k\u0131sm\u0131n\u0131 geri iter. G\u00fcvenlidir, ama bazen sab\u0131rs\u0131z kullan\u0131c\u0131ya uzun gelebilir.<\/p>\n<p>Bu y\u00fczden ben Galera\u2019y\u0131 tercih etti\u011fim WooCommerce kurulumlar\u0131nda, yazma trafi\u011fini bir d\u00fc\u011f\u00fcmde toplay\u0131p di\u011fer d\u00fc\u011f\u00fcmleri daha \u00e7ok okuma i\u00e7in kullanmay\u0131 severim. Evet, her d\u00fc\u011f\u00fcm yazabilir; ancak pratikte \u00f6deme, stok ve sipari\u015f g\u00fcncellemesi gibi yo\u011fun yazma anlar\u0131n\u0131 tek bir yola almak, \u00e7ak\u0131\u015fmalar\u0131 azalt\u0131r. Bu bir zorunluluk de\u011fil, ama genelde daha p\u00fcr\u00fczs\u00fcz bir his b\u0131rak\u0131r.<\/p>\n<p>Kurulumda akl\u0131n\u0131zda olsun: D\u00fc\u011f\u00fcm say\u0131s\u0131 tek olsun, d\u00fc\u011f\u00fcmler birbirine yak\u0131n ve h\u0131zl\u0131 konu\u015fsun, veritaban\u0131 boyutu b\u00fcy\u00fcd\u00fck\u00e7e ilk senkron i\u015flerini planl\u0131 yap\u0131n. Yedekleme i\u00e7in ak\u0131ll\u0131 bir strateji koymay\u0131 da unutmay\u0131n; g\u00fcnl\u00fck i\u015flerin ortas\u0131nda bir d\u00fc\u011f\u00fcm ilk defa veri alacaksa sa\u011flam bir \u00e7o\u011faltma y\u00f6ntemi gerekir. Offsite yedekler i\u00e7in <a href=\"https:\/\/www.dchost.com\/blog\/restic-ve-borg-ile-s3-uyumlu-uzak-yedekleme-surumleme-sifreleme-ve-saklama-ne-zaman-nasil\/\">uzak yedekleme rehberine<\/a> bir g\u00f6z atmak, gelecekte geceleri rahat uyumay\u0131 sa\u011flar.<\/p>\n<h2 id=\"section-4\"><span id=\"PrimaryReplica_ile_Sakin_Su_Yazma_Tek_Yerden_Okuma_Diledigin_Kadar\">Primary\u2011Replica ile Sakin Su: Yazma Tek Yerden, Okuma Diledi\u011fin Kadar<\/span><\/h2>\n<p>Primary\u2011Replica d\u00fcnyas\u0131nda hik\u00e2ye daha klasik akar. Bir d\u00fc\u011f\u00fcm yazman\u0131n evi olur; di\u011ferleri ondan \u00f6\u011frenir. Bu \u00f6\u011frenme genelde gecikmeli olur, bazen anl\u0131k, bazen birka\u00e7 saniye. WooCommerce\u2019de vitrinin b\u00fcy\u00fck k\u0131sm\u0131 okuma oldu\u011fu i\u00e7in, bu model \u00e7o\u011fu ma\u011fazada g\u00fczel \u00e7al\u0131\u015f\u0131r. \u00dcr\u00fcn listeleri, filtreler, blog yaz\u0131lar\u0131\u2026 Bunlar replika \u00fczerinden ak\u0131p gider. Birden trafik patlay\u0131nca yeni bir replika eklemek gibi hamleler, g\u00fcn\u00fc kurtarmay\u0131 kolayla\u015ft\u0131r\u0131r.<\/p>\n<p>Fakat \u00f6deme ad\u0131m\u0131na gelince k\u00fc\u00e7\u00fck bir ince ayar gerekir. \u201c\u015eimdi az \u00f6nce verdi\u011fim sipari\u015fi g\u00f6remiyorum\u201d ya da \u201ckuponu uygulad\u0131m ama indirim g\u00f6r\u00fcnm\u00fcyor\u201d gibi \u015fikayetler genelde okuman\u0131n yanl\u0131\u015f yere y\u00f6nlenmesinden \u00e7\u0131kar. \u00c7\u00f6z\u00fcm basit: kritik anlarda okumay\u0131 da primary\u2019ye y\u00f6nlendirmek. Sepet, kasa, hesap sayfalar\u0131, sipari\u015f detaylar\u0131n\u0131n hemen g\u00f6r\u00fcld\u00fc\u011f\u00fc anlar\u2026 Bu k\u0131s\u0131mlarda tutarl\u0131l\u0131\u011f\u0131n tad\u0131 ba\u015fkad\u0131r. Uygulama taraf\u0131nda sorgu ay\u0131rmak m\u00fcmk\u00fcn de\u011filse, veritaban\u0131 \u00f6n\u00fcnde ak\u0131ll\u0131 bir vekil kullanmak g\u00fczel olur. ProxySQL ya da MaxScale gibi ara\u00e7lar \u201cyaz\u0131y\u0131 buraya, okumay\u0131 \u015furaya\u201d mant\u0131\u011f\u0131n\u0131 konu\u015fur hale getirir. Bu ara\u00e7lar konusunda daha teknik bilgiye merakl\u0131ysan\u0131z <a href=\"https:\/\/mariadb.com\/kb\/en\/replication-overview\/\" rel=\"nofollow noopener\" target=\"_blank\">MariaDB \u00e7o\u011faltma genel bak\u0131\u015f<\/a> sayfalar\u0131na g\u00f6z atmak, kafadaki resimleri netle\u015ftirir.<\/p>\n<p>Bir de \u015funu hep not d\u00fc\u015f\u00fcyorum: Primary\u2011Replica\u2019da \u00e7o\u011faltma gecikmesi oldu\u011funda kullan\u0131c\u0131 hemen hisseder mi? \u00c7o\u011fu zaman hay\u0131r, \u00e7\u00fcnk\u00fc vitrin i\u00e7erikleri \u00e7ok h\u0131zl\u0131 g\u00fcncellenmesi gerekmeyen \u015feylerdir. Ama stok gibi anl\u0131k g\u00f6r\u00fcnen alanlarda \u201cokumay\u0131 primary\u2019ye zorlamak\u201d arad\u0131\u011f\u0131n\u0131z huzuru verir. Bunu yapman\u0131n yolu ister uygulama i\u00e7inde se\u00e7ici ba\u011flant\u0131, ister proxy \u00fczerinden ak\u0131ll\u0131 kurallar olabilir. \u00d6nemli olan, kritikte \u201c\u00f6\u011fretmen\u201d olan d\u00fc\u011f\u00fcmden konu\u015fmak.<\/p>\n<h2 id=\"section-5\"><span id=\"WooCommercede_OkumaYazma_Yonlendirmesi_Gercek_Hayatta_Ne_Ise_Yarar\">WooCommerce\u2019de Okuma\/Yazma Y\u00f6nlendirmesi: Ger\u00e7ek Hayatta Ne \u0130\u015fe Yarar?<\/span><\/h2>\n<p>Bir g\u00fcn bir ma\u011fazada \u00f6deme ad\u0131m\u0131nda karars\u0131z bir sabitle kar\u015f\u0131la\u015ft\u0131k. Baz\u0131 sipari\u015fler, \u201cba\u015far\u0131l\u0131\u201d desek de ekranlar\u0131nda eski sepet bilgisi g\u00f6r\u00fcn\u00fcyordu. Hik\u00e2yeyi izleyince g\u00f6rd\u00fck ki, okuma replikaya gidiyor, yazma primary\u2019de oluyor; replika da \u201cbirazdan yeti\u015firim\u201d diyor. Basit dokunu\u015flar yapt\u0131k: \u00f6deme ve sepetle ilgili sayfalarda okuma da primary\u2019ye gitti, sorun bitti. Bu t\u00fcr dokunu\u015flar bazen tek sat\u0131r bir ayarla, bazen proxy \u00fczerinde bir kural ile \u00e7\u00f6z\u00fcl\u00fcr.<\/p>\n<p>Mesela \u015f\u00f6yle d\u00fc\u015f\u00fcn\u00fcn: \u00dcr\u00fcn katalo\u011funu gezen on bin ki\u015fi var. Hepsini primary\u2019ye \u00e7ekmek anlams\u0131z. Replikalar bu kalabal\u0131\u011f\u0131 ta\u015f\u0131r. Ama \u00f6deme ad\u0131m\u0131nda y\u00fcz ki\u015fi var ve hepsi hassas. Burada \u201ctek ger\u00e7ek kaynaktan oku\u201d demek mant\u0131kl\u0131d\u0131r. WooCommerce taraf\u0131nda baz\u0131 eklentiler tek ba\u011flant\u0131 mant\u0131\u011f\u0131yla \u00e7al\u0131\u015f\u0131r; sorgu baz\u0131nda ayr\u0131m yapamazs\u0131n\u0131z. B\u00f6yle durumlarda veritaban\u0131 \u00f6n\u00fcnde \u201csadece SELECT olan, ama \u015fu tablolar\u0131 i\u00e7ermeyen\u201d gibi kurallar tan\u0131mlamak iyi sonu\u00e7 verir. ProxySQL\u2019in okuma-yazma ay\u0131rma yetenekleri bu noktada hayat kolayla\u015ft\u0131r\u0131r; merakl\u0131s\u0131 i\u00e7in <a href=\"https:\/\/mariadb.com\/kb\/en\/galera-cluster\/\" rel=\"nofollow noopener\" target=\"_blank\">Galera Cluster<\/a> ve okuma-yazma stratejileri hakk\u0131nda MariaDB\u2019nin belgeleri sade bir \u00e7er\u00e7eve sunar.<\/p>\n<p>Bu arada veritaban\u0131n\u0131n s\u0131rt\u0131ndan gereksiz y\u00fck\u00fc almak i\u00e7in \u00f6nbellek ve schema d\u00fczeni ba\u015f roldedir. \u0130nce ayar\u0131 seviyorsan\u0131z, <a href=\"https:\/\/www.dchost.com\/blog\/woocommerce-icin-mysql-innodb-tuning-kontrol-listesi-buffer-pool-indeksleme-ve-slow-query-analizi-nasil-akillica-yapilir\/\">WooCommerce i\u00e7in InnoDB ayarlar\u0131 ve yava\u015f sorgu analizi<\/a> rehberini sindire sindire okumak iyi gelir. Bir parantez de oturumlar ve sepet verileri i\u00e7in a\u00e7ay\u0131m; Redis gibi bir yap\u0131 ile bunlar\u0131 veritaban\u0131ndan uzakla\u015ft\u0131rmak \u00e7o\u011fu senaryoda fark edilir.<\/p>\n<h2 id=\"section-6\"><span id=\"Dayaniklilik_Hatalar_ve_Gece_Gunduz_Uykusu\">Dayan\u0131kl\u0131l\u0131k, Hatalar ve Gece G\u00fcnd\u00fcz Uykusu<\/span><\/h2>\n<p>Galera\u2019y\u0131 se\u00e7ti\u011finizde, bir d\u00fc\u011f\u00fcm\u00fcn gidi\u015fi d\u00fcnyay\u0131 karartmaz. Di\u011ferleri ayn\u0131 veriye sahiptir. Yeter ki k\u00fcme \u00e7o\u011funlu\u011fu ayakta kals\u0131n. A\u011f gecikmesi artarsa k\u00fcme sab\u0131rl\u0131 davran\u0131r ama her yazmay\u0131 onaylamak istedi\u011fi i\u00e7in bunu kullan\u0131c\u0131 bazen k\u00fc\u00e7\u00fck bir bekleme olarak hisseder. \u00d6te yandan Primary\u2011Replica\u2019da primary giderse, birka\u00e7 dakikal\u0131k lider atamas\u0131, y\u00f6nlendirme ve k\u00fc\u00e7\u00fck bir dikkat gerekir. Bu s\u00fcre\u00e7 iyi oturtuldu\u011funda kullan\u0131c\u0131 bunu fark etmez, ama mimaride \u201ckim primary oldu\u201d sorusuna cevap veren bir orkestrat\u00f6r \u015fartt\u0131r.<\/p>\n<p>Her iki d\u00fcnyada da en iyi arkada\u015f\u0131n\u0131z g\u00f6zlem olacakt\u0131r. Replika gecikmesi, Galera\u2019da ak\u0131\u015f kontrol\u00fc, yava\u015f sorgular, veritaban\u0131 ba\u011flant\u0131 havuzunun sa\u011fl\u0131\u011f\u0131\u2026 Bunlar\u0131 g\u00f6z\u00fcn\u00fcz\u00fcn \u00f6n\u00fcne al\u0131rsan\u0131z, ar\u0131zalar s\u00fcrpriz olmaz. Ben genelde Prometheus ve Grafana ile panolar kurup, \u201cCheckout p95 s\u00fcresi y\u00fckselirse haber ver\u201d gibi uyar\u0131lar tan\u0131mlamay\u0131 seviyorum. Ba\u015flamak i\u00e7in temel bir rehber ar\u0131yorsan\u0131z, <a href=\"https:\/\/www.dchost.com\/blog\/vps-izleme-ve-uyari-nasil-kurulur-prometheus-grafana-ve-node-exporter-ile-sessiz-alarmlari-konusturmak\/\">VPS izleme ve uyar\u0131 kurulumuna dair<\/a> yaz\u0131 g\u00fczel bir ilk ad\u0131m olur.<\/p>\n<p>Ve yedekler\u2026 Y\u00fcksek eri\u015filebilirlik, yedeklemenin yerine ge\u00e7mez. Bir restoranda iki a\u015f\u00e7\u0131 olmas\u0131 nas\u0131l mutfak yang\u0131n\u0131nda tarifi geri getirmiyorsa, HA da silinen veriyi geri getirmez. Galera\u2019da SST\/IST gibi veri ta\u015f\u0131ma y\u00f6ntemleri var, Primary\u2011Replica\u2019da da replike g\u00fcnl\u00fcklerle h\u0131zl\u0131 toparlanmalar m\u00fcmk\u00fcn. Yine de ayr\u0131 ve test edilmi\u015f bir yedek plan\u0131, i\u00e7e sinen tek ger\u00e7ek g\u00fcvencedir.<\/p>\n<h2 id=\"section-7\"><span id=\"Performans_Tuzaklari_Kucuk_Dokunuslarla_Buyuk_Etki\">Performans Tuzaklar\u0131: K\u00fc\u00e7\u00fck Dokunu\u015flarla B\u00fcy\u00fck Etki<\/span><\/h2>\n<p>WooCommerce\u2019in en \u00e7ok can\u0131n\u0131 yakan \u015feylerden biri \u201ctek bir tablonun hep ayn\u0131 sat\u0131r\u0131n\u0131n itilip kak\u0131lmas\u0131\u201dd\u0131r. Stok sat\u0131rlar\u0131 buna g\u00fczel \u00f6rnek. Onlar i\u00e7in uygulama taraf\u0131nda kilitli okumalar, en kritik anlarda tek d\u00fc\u011f\u00fcme y\u00f6nlendirme, hatta busy \u00fcr\u00fcnleri bir s\u00fcre \u00f6zel bir kuyru\u011fa al\u0131p stok g\u00fcncellemeyi \u201ch\u0131zl\u0131 ama d\u00fczenli\u201d bir hale getirmek i\u015fe yarar. Bu, Galera\u2019da \u00e7ak\u0131\u015fma geri \u00e7evirmelerini azalt\u0131r, Primary\u2011Replica\u2019da da primary\u2019nin i\u015fini sadele\u015ftirir.<\/p>\n<p>Bir ba\u015fka k\u00fc\u00e7\u00fck ama etkili dokunu\u015f, sayfay\u0131 m\u00fcmk\u00fcn olan en d\u0131\u015f katmanda \u00f6nbelle\u011fe almakt\u0131r. \u00dcr\u00fcn listeleme sayfalar\u0131 ve blog i\u00e7erikleri \u00e7o\u011fu zaman saatlerce ayn\u0131d\u0131r. Vitrine bir nefes ald\u0131rmak i\u00e7in Nginx seviyesinde tam sayfa \u00f6nbellek \u015fahane bir arkada\u015ft\u0131r. Kurulumuna dair ayr\u0131nt\u0131l\u0131 ve s\u0131cak anlat\u0131ml\u0131 bir rehber ararsan\u0131z, <a href=\"https:\/\/www.dchost.com\/blog\/wordpresste-tam-sayfa-onbellekleme-nasil-kurulur-nginx-fastcgi-cache-varnish-ve-litespeed-cache-ile-woocommercee-nazikce-dokunmak\/\">tam sayfa \u00f6nbellek rehberi<\/a> elinizi tutar. Ard\u0131ndan kal\u0131c\u0131 nesne \u00f6nbelle\u011fi ile veritaban\u0131na giden tekrar eden sorgular\u0131 susturursunuz. Bu ikili kuruldu\u011funda, veritaban\u0131 mimarinizin hangi modelde olaca\u011f\u0131na karar vermek daha kolay olur, \u00e7\u00fcnk\u00fc \u00fczerindeki bas\u0131n\u00e7 zaten azalm\u0131\u015ft\u0131r.<\/p>\n<p>Bir de kapasite planlamas\u0131. Ben basit bir pratik kullan\u0131yorum: kampanya \u00f6ncesinde \u00fcretimde ne varsa bir \u201ckurcalama\u201d senaryosu \u00e7al\u0131\u015ft\u0131r\u0131yorum. \u00dcr\u00fcn aramalar\u0131, filtreler, varyasyon sayfalar\u0131, pe\u015f pe\u015fe sepet eklemeleri, sahte \u00f6deme ad\u0131mlar\u0131\u2026 Hepsi k\u0131sa bir prova. Bu s\u0131rada veritaban\u0131 panelinde p95 ve p99 s\u00fcrelerini, en uzun sorgular\u0131 ve replikasyon gecikmesini izliyorum. K\u00fc\u00e7\u00fck bir \u00e7\u0131k\u0131nt\u0131 varsa kampanya \u00f6ncesi d\u00fczeltmek gibisi yok.<\/p>\n<h2 id=\"section-8\"><span id=\"Somut_Mimariler_Bugun_Magaza_Kac_Kisiyle_Dans_Ediyor\">Somut Mimariler: Bug\u00fcn Ma\u011faza Ka\u00e7 Ki\u015fiyle Dans Ediyor?<\/span><\/h2>\n<p>Minik ama canl\u0131 bir ma\u011faza. Trafik d\u00fczenli, kampanyalar m\u00fctevaz\u0131. Burada g\u00fc\u00e7l\u00fc bir tekil MariaDB, iyi ayarlanm\u0131\u015f InnoDB tamponlar\u0131 ve d\u00fczenli yedek \u00e7o\u011fu zaman yeter. Sayfan\u0131n \u00f6nbelle\u011fi ve nesne \u00f6nbelle\u011fi de yerini ald\u0131ysa, veritaban\u0131n\u0131n y\u00fcz\u00fc g\u00fclmeye ba\u015flar.<\/p>\n<p>Orta \u00f6l\u00e7ekli, g\u00fcnde birka\u00e7 kez \u201chafif f\u0131rt\u0131na\u201d g\u00f6ren ma\u011faza. Primary\u2011Replica burada \u00e7ok huzurlu hissettirir. Yazma primary\u2019ye, okuma replikalara. Checkout, sepet, hesap sayfalar\u0131nda okumay\u0131 da primary\u2019ye zorlayacak kurallar. \u00dcst\u00fcne ProxySQL veya benzeri bir katmanla ismine g\u00f6re ayr\u0131lm\u0131\u015f sorgular. Bu yap\u0131 bir s\u00fcre sizi s\u0131rt\u0131nda ta\u015f\u0131r. Bu seviyede <a href=\"https:\/\/woocommerce.com\/document\/server-requirements\/\" rel=\"nofollow noopener\" target=\"_blank\">WooCommerce\u2019in sunucu gereksinimlerine ve \u00f6nerilerine<\/a> kulak vermek de iyi bir checklist sa\u011flar.<\/p>\n<p>Yo\u011fun kampanya, anl\u0131k patlamalar, \u00e7ok e\u015fzamanl\u0131 \u00f6deme ve stok hareketi. Galera burada g\u00fc\u00e7l\u00fc bir se\u00e7enek olur, \u00e7\u00fcnk\u00fc veri b\u00fct\u00fcnl\u00fc\u011f\u00fc an\u0131nda sa\u011flan\u0131r. Ama ak\u0131\u015f kontrol\u00fc ve \u00e7ak\u0131\u015fmalarla nazik davranmak gerekir. Yazmay\u0131 bir d\u00fc\u011f\u00fcme toplamak, di\u011ferlerini a\u011f\u0131rl\u0131kla okuma i\u00e7in kullanmak, d\u00fc\u011f\u00fcmleri d\u00fc\u015f\u00fck gecikmeli bir a\u011fda tutmak\u2026 Bu ayarlar yap\u0131l\u0131nca Galera\u2019dan hem g\u00fcven hem de ak\u0131\u015fkanl\u0131k al\u0131n\u0131r. Bir de b\u00fcy\u00fck sorgular\u0131 k\u00fc\u00e7\u00fck lokmalara b\u00f6lmek ve gereksiz s\u00fctunlar\u0131 b\u0131rakmamak ho\u015f bir jesttir.<\/p>\n<p>Her iki senaryonun ortak noktas\u0131 \u015fu: Veritaban\u0131na gitmeden \u00f6nce m\u00fcmk\u00fcn oldu\u011funca i\u015finizi d\u0131\u015far\u0131da halledin. Nesne \u00f6nbelle\u011fine atabildi\u011finizi at\u0131n, statik sayfalar\u0131 \u00f6nbelle\u011fe al\u0131n, yava\u015f sorgular\u0131 t\u0131ra\u015flay\u0131n. Bu temeli sa\u011flam kurduktan sonra, \u201cBenim dans pistim hangisi?\u201d sorusunun cevab\u0131 kendili\u011finden belirir.<\/p>\n<h2 id=\"section-9\"><span id=\"Proxy_Sema_ve_Guncelleme_Meselesi_Ufak_Dokunuslar\">Proxy, \u015eema ve G\u00fcncelleme Meselesi: Ufak Dokunu\u015flar<\/span><\/h2>\n<p>Okuma\/yazma ayr\u0131m\u0131 yap\u0131lacaksa, proxy katman\u0131 i\u015fin ince zek\u00e2s\u0131d\u0131r. ProxySQL veya MaxScale ile \u201cSELECT\u2019leri \u015furaya, \u015fu tablolar\u0131 i\u00e7eren SELECT\u2019leri ise primary\u2019ye\u201d gibi kurallar tan\u0131mlamak m\u00fcmk\u00fcnd\u00fcr. Y\u00f6netimi kolay bir yap\u0131 kurdu\u011funuzda, geli\u015ftirici ekip her sorguyu tek tek d\u00fc\u015f\u00fcnmek zorunda kalmaz. Yine de checkout ak\u0131\u015flar\u0131 gibi kritik yollar\u0131 etiketlemek ve o anki okuman\u0131n da primary\u2019de yap\u0131lmas\u0131n\u0131 garanti etmek sa\u011fl\u0131kl\u0131 bir al\u0131\u015fkanl\u0131k olur.<\/p>\n<p>\u015eema g\u00fcncellemeleri ve eklenti d\u00fcnyas\u0131 da ba\u015fka bir ba\u015fl\u0131k. WooCommerce\u2019de bir eklenti, veritaban\u0131nda yeni bir s\u00fctun ister. Galera\u2019da bu t\u00fcr de\u011fi\u015fiklikler t\u00fcm d\u00fc\u011f\u00fcmlerde ayn\u0131 anda g\u00f6r\u00fcnmek zorunda oldu\u011fu i\u00e7in, k\u0131sa bir planlama ve bak\u0131m\u0131 uygun bir zaman penceresine almak huzur verir. Primary\u2011Replica\u2019da ise de\u011fi\u015fiklik primary\u2019den akar; replikalar\u0131n pe\u015finden gelmesini izlersiniz. Her durumda canl\u0131da \u015fema de\u011fi\u015fikli\u011fi yapacaksan\u0131z, k\u00fc\u00e7\u00fck par\u00e7alara b\u00f6lmek ve yo\u011fun saatlerden ka\u00e7mak g\u00f6n\u00fcl rahatl\u0131\u011f\u0131 sa\u011flar.<\/p>\n<p>Bu arada altyap\u0131da HTTP\/2 veya HTTP\/3 gibi iyile\u015ftirmeler bile dolayl\u0131 etkiler yarat\u0131r. \u0130stemciler h\u0131zl\u0131 kaynaklara eri\u015fince, backend daha d\u00fczenli nefes al\u0131r. Bununla ilgili kurulum rehberini merak edenler i\u00e7in <a href=\"https:\/\/www.dchost.com\/blog\/nginx-ve-cloudflareda-http-2-ve-http-3-quic-nasil-etkinlestirilir-wordpress-icin-uctan-uca-kurulum-ve-test-rehberi\/\">u\u00e7tan uca HTTP\/2 ve HTTP\/3 kurulumu<\/a> faydal\u0131 bir refakat\u00e7i olur.<\/p>\n<h2 id=\"section-10\"><span id=\"Karar_Ani_Galera_mi_PrimaryReplica_mi_Sorunun_Cevabi_Hep_Senaryoda_Sakli\">Karar An\u0131: Galera m\u0131, Primary\u2011Replica m\u0131? Sorunun Cevab\u0131 Hep Senaryoda Sakl\u0131<\/span><\/h2>\n<p>Bir m\u00fc\u015fterim \u015f\u00f6yle demi\u015fti: \u201cBenim \u00f6nceli\u011fim, sipari\u015flerin ta\u015f gibi g\u00fcvenle yaz\u0131lmas\u0131 ve d\u00fc\u011f\u00fcm d\u00fc\u015fse bile itirazs\u0131z devam edebilmek.\u201d Bu c\u00fcmle \u00e7o\u011fu zaman Galera\u2019n\u0131n sesidir. Ama bir di\u011feri, \u201cOkuma \u00e7ok, yazma az; kampanyada i\u00e7erik ak\u0131yor ama \u00f6deme ad\u0131m\u0131 g\u00f6rece sakin\u201d dedi\u011finde ben Primary\u2011Replica\u2019ya daha bir s\u0131cak bakar\u0131m. Burada sihirli form\u00fcl yok; ma\u011fazan\u0131n ritmi var. Ne kadar e\u015fzamanl\u0131 yazma var, stoklar ayn\u0131 anda \u00e7ok mu kurcalan\u0131yor, d\u00fc\u011f\u00fcmler ayn\u0131 a\u011fda m\u0131, gecikme ne durumda\u2026 Bunlar soruldu\u011funda cevap kendini g\u00f6sterir.<\/p>\n<p>Tek bir ipucu b\u0131rakay\u0131m: Karar vermeden \u00f6nce bir ile \u00fc\u00e7 g\u00fcn aras\u0131 ger\u00e7ek trafi\u011fi izleyin. Checkout ak\u0131\u015f\u0131n\u0131n an be an s\u00fcrelerini, \u00fcr\u00fcn sayfalar\u0131n\u0131n sorgu yo\u011funlu\u011funu, yava\u015f sorgu g\u00fcnl\u00fc\u011f\u00fcn\u00fcn en \u00e7ok g\u00f6r\u00fclenlerini not edin. Sonra bu notlarla \u201cokuma nereden, yazma nereden\u201d karar\u0131n\u0131 verin. \u00dcst\u00fcne \u00f6nbellek ve sayfa \u00f6nbelle\u011fi ile veritaban\u0131na giden gereksiz yollar\u0131 kapat\u0131n. B\u00f6yle yap\u0131nca hangisini se\u00e7seniz, mimarinizle bar\u0131\u015f\u0131k kal\u0131rs\u0131n\u0131z.<\/p>\n<h2 id=\"section-11\"><span id=\"Kapanis_Magazanizin_Ritmini_Duyun_Mimariniz_Ona_Eslik_Etsin\">Kapan\u0131\u015f: Ma\u011fazan\u0131z\u0131n Ritmini Duyun, Mimariniz Ona E\u015flik Etsin<\/span><\/h2>\n<p>Bug\u00fcn beraber \u015funu konu\u015ftuk: WooCommerce asl\u0131nda iki hik\u00e2ye anlat\u0131yor. Vitrin, yani okunas\u0131 d\u00fcnya; kasa, yani yaz\u0131las\u0131 d\u00fcnya. MariaDB taraf\u0131nda Galera, \u201cher yerde ayn\u0131 anda\u201d derken g\u00fcveni b\u00fcy\u00fct\u00fcyor; Primary\u2011Replica, \u201cyazma burada, okuma orada\u201d diyerek \u00f6l\u00e7e\u011fi kolayla\u015ft\u0131r\u0131yor. Hangisini se\u00e7ece\u011finiz, sizin ma\u011fazan\u0131n melodisine ba\u011fl\u0131. \u00c7ok e\u015fzamanl\u0131 yazma ve stok \u00e7at\u0131\u015fmalar\u0131 m\u0131? Galera\u2019y\u0131 nazik\u00e7e kurgulay\u0131n. Okuma deniz, yazma dere gibi ak\u0131yorsa, Primary\u2011Replica\u2019n\u0131n sakinli\u011fini de\u011ferlendirin.<\/p>\n<p>Pratik birka\u00e7 tavsiye b\u0131rak\u0131yorum. Sipari\u015f ve stokla ilgili kritik anlarda okumay\u0131 da primary\u2019ye y\u00f6nlendirin. Nesne \u00f6nbelle\u011fi ve tam sayfa \u00f6nbelle\u011fi ile veritaban\u0131n\u0131 rahatlat\u0131n. \u0130zleme kurmadan kampanyaya girmeyin, uyar\u0131lar\u0131n\u0131z cebinizde dursun. Yedekleri test etmeden kendinizi g\u00fcvende sanmay\u0131n. Tak\u0131ld\u0131\u011f\u0131n\u0131z yerde, bir kahve molas\u0131 verip k\u00fc\u00e7\u00fck bir uygulama g\u00fcncellemesiyle b\u00fcy\u00fck bir nefes alaca\u011f\u0131n\u0131z\u0131 unutmay\u0131n. Umar\u0131m bu rehber yol g\u00f6sterici olmu\u015ftur. Sorular\u0131n\u0131z olursa yaz\u0131n, bir dahaki yaz\u0131da belki sizin senaryonuzu konu\u015furuz.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>\u0130&ccedil;indekiler1 Bir Sipari\u015f Ya\u011fmurunda Frene Basmayan Veritaban\u0131 Nas\u0131l Kurulur?2 WooCommerce Trafi\u011finin Kalp At\u0131\u015f\u0131: Okuma Nereye, Yazma Nerede Patlar?3 Galera Cluster\u2019\u0131 G\u00f6z\u00fcn\u00fczde Canland\u0131r\u0131n: Ayn\u0131 Anda Yazmak G\u00fc\u00e7l\u00fcd\u00fcr, Ama Nazik Davran\u0131r4 Primary\u2011Replica ile Sakin Su: Yazma Tek Yerden, Okuma Diledi\u011fin Kadar5 WooCommerce\u2019de Okuma\/Yazma Y\u00f6nlendirmesi: Ger\u00e7ek Hayatta Ne \u0130\u015fe Yarar?6 Dayan\u0131kl\u0131l\u0131k, Hatalar ve Gece G\u00fcnd\u00fcz Uykusu7 Performans Tuzaklar\u0131: [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1475,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26],"tags":[],"class_list":["post-1474","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-teknoloji"],"_links":{"self":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/1474","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/comments?post=1474"}],"version-history":[{"count":0,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/1474\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/media\/1475"}],"wp:attachment":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/media?parent=1474"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/categories?post=1474"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/tags?post=1474"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}