Şimdi Ara

E-ticaret sitelerinden giden şifre sıfırlama maillerinin saatlerce gecikme sorununu çözdüm

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
2
Cevap
0
Favori
26
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
Öne Çıkar
0 oy
Sayfa: 1
Giriş
Mesaj
  • Herkese selamlar,


    Geçen gün e-ticaret altyapısında sunuculardan birinde çok garip bir şikayet aldım. Müşteriler "Şifremi Unuttum" butonuna bastıktan sonra mail ya hiç gelmiyor ya da 2-3 saat sonra geliyormuş. Bu süre zarfında adamlar alışveriş sepetini terk edip başka siteye gitmiş oluyor.


    SSH ile sunucuya bağlanıp mail loglarını (/var/log/mail.log) açtığımda Postfix kuyruğu (queue) dolup taşmış. Binlerce bilgilendirme maili, bülten veya bildirim önde yığılmış. Şifre sıfırlama gibi kritik ve acil mailler de o kuyruğun en arkasında saatlerce beklemiş.


    Bu kronik sorunu Postfix tarafında nasıl çözdüğümü ve acil mailleri önceliğe alacak şekilde kuyruk mimarisini nasıl düzenlediğimi sizlere anlatacağım. Bilhassa E-ticaret veya üyelikli site yönetenler inceleyebilirler.


    Varsayılan ayarlarda Postfix, kendisine gelen tüm mailleri tek bir kuyruğa (active queue) yığı ve "ilk gelen ilk çıkar" (FIFO - First In, First Out) mantığıyla sırayla gönderir.


    • Eğer siteniz toplu mail (bülten, promosyon) atıyorsa veya spam/gecikmeli yanıt veren dış sunuculara mail gönderiyorsa, Postfix o mailleri göndermeye çalışırken kilitlenir.
    • Şifre sıfırlama veya sipariş onay mailli gibi "kritik" olması gereken işlemler de o koca kuyrukta arkada sıra bekler.


    Bu sorunu kökten çözmek için Postfix konfigürasyonunu optimize edip ve kuyruk yönetimini tazeledim.


    1. Adım: Kuyruktaki Yığılmayı ve Durumu Kontrol Etme

    Öncelikle sunucunuzda şu an kuyrukta kaç tane mail beklediğini görmek için şu komutu çalıştırın;


    Kod

    Yığını:
    mailq


    Eğer ekranda binlerce satır akıyorsa ve Connection timed out veya Deferred statüsünde mailler birikmişse kuyruk tıkanmış demektir.


    2. Adım: Postfix Ana Konfigürasyonunu Düzenleme (main.cf)

    Postfix'in kuyruk yönetimini hızlandırmak ve tıkanıklıkları önlemek için /etc/postfix/main.cf dosyasını açıyoruz;


    Kod

    Yığını:
    nano /etc/postfix/main.cf


    Dosyanın uygun bir yerine şu performans parametrelerini ekleyin veya güncelleyin:

    Ini, TOML


    Kod

    Yığını:
    # Eşzamanlı maksimum bağlantı sayısını artırarak gönderimi hızlandırır default_destination_concurrency_limit = 20 initial_destination_concurrency = 10 # Mesaj kuyruğunu işleme sıklığını artırıyoruz (varsayılanlar yavaştır) queue_run_delay = 300s minimal_backoff_time = 180s maximum_backoff_time = 4000s # TCP bağlantı zaman aşımı sürelerini düşürerek yanıt vermeyen sunucularda takılı kalmayı önler smtp_connect_timeout = 30s smtp_helo_timeout = 30s


    3. Adım: Kritik Mailler İçin Ayrı Bir Postfix Instance Kurulumu


    Büyük e-ticaret sitelerinde toplu mailler ile şifre sıfırlama mailleri asla aynı kuyruktan atılmaz. Bunun için Postfix'e ikinci bir instance (bağımsız port/kanal) kurarak şifre sıfırlama maillerini direkt Mailbaby veya harici bir SMTP relay üzerinden anında gönderecek şekilde ayırabilirsiniz.


    Eğer tek sunucu üzerinden yürüyecekseniz, mevcut kuyruğu temizlemek için şu komutu kullanabilirsiniz:E-ticaret sitelerinden giden şifre sıfırlama maillerinin saatlerce gecikme sorununu çözdümE-ticaret sitelerinden giden şifre sıfırlama maillerinin saatlerce gecikme sorununu çözdüm


    Kod

    Yığını:
    # Kuyruktaki tüm bekleyen (deferred) mailleri zorla tekrar göndermeyi tetikle postqueue -f


    4. Adım: PHP / E-Ticaret Yazılımı Tarafı (Asenkron Kuyruk - Queue)

    Sadece Postfix değil, e-ticaret yazılımınızın mail gönderirken PHP'yi kitlememesi gerekir.


    • Mail gönderimlerini doğrudan tarayıcı isteği (HTTP request) sırasında synchronous (senkron) yapmak yerine, Cron veya Redis/Beanstalkd tabanlı asenkron kuyruk sistemlerine (Background Processing) devredin. Böylece site arayüzü mail sunucusunun yanıt vermesini beklemez, mail arka planda anında kuyruğa alınır.


    Bu optimizasyonlar yapıldıktan sonra şifre sıfırlama maillerindeki o gecikmeler tamamen ortadan kalktı ve mailler saniyeler içinde kullanıcıların kutusuna düşmeye başladı.




    _____________________________
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.