Cron, e-posta, Performans

2 Cevap php

I am building a system for my client. It's a lot like www.getafreelancer.com. There are 2 types of user: Service Provider and Service Buyer. Service Buyers post projects. Service Providers are notified of any new projects posted, which fit into their classifications.

Assume: There are approx 100 qualifications. Service Provider can choose 10-15 qualification. Now approx 100 projects are posted daily. And there are 1 million service provider. And problem is we have to send email notifications to the service providers matching their chosen qualifications with the project category. (For all 100 projects daily).

Bu, kullanıcı tarafından kullanıcı geçmeden gibi olurdu. Proje kategori ile kendi yeterlilik denetleme ve onlara e-posta göndererek. Nasıl 20 * 1.000.000 = 20 milyon e-posta günlük gönderebilir?

(Şu anda yok, 1 milyon kullanıcıları olmayacaktır. Fakat programlama gelecekteki gereksinimleri ile yapılmalıdır)

Bazı öneriler verin.

Benim soru: 1000000 e-postalar göndermek için herhangi bir özel donanıma ihtiyaç mı?

2 Cevap

Eğer soruyu yoldan, ne istediğinizi anlamaya biraz zor.

Eğer yakın-gerçek zamanlı olarak e-posta göndermek isterseniz, hayat oldukça basittir. Bazı alıcı bir ihtiyaç vardır ve en kısa sürede bunu yayınlamak gibi, sen bildirimleri bir demet göndermek. Bu ölçekte zor olacak, ancak ağrı e-posta dağıtım tarafında gelecektir. Sadece bilgilendirmek için sağlayıcıların bir listesini oluşturma, veritabanı tasarımı ve altyapı korkunç daha az olduğunu varsayarak oldukça saçmadır.

O ne yaptığınızı buysa, sadece akıllı bir şekilde kurmak için e-posta dağıtım platformu var emin olmak istiyorum. Çekirdek sistem kolayca bazı posta-birleştirme yapıyor idare ve sana yeterince SMPT verim verebilir N köle sunuculara e-posta toplu devredebilir böylece altyapı tasarlayın.

Eğer sağlayıcılar çeşitli işleri ile sadece bir e-posta alacaksınız, böylece periyodik e-posta göndermek isterseniz, biraz farklı şeyler düşünmek isteyeceksiniz.

Bu durumda, salt yükünü kaldırabilecek bir sağlayıcıları listenize segmentasyon etrafında tabanlı mimarisi ve veritabanı çoğaltma düşünün.

Bu modelde, bir alıcı bir iş nakleder. Sizin ana veritabanı güncellenir ve kölelerin bazı sayısı çoğaltma yoluyla veri almak. Her slave e-posta ile up-to-date sağlayıcıları tutulmasından sorumludur. Her N saat, her köle kendi özel, salt okunur, veritabanından okur ve kullanıcıların kendi segmentinde işler.

Eğer bir yeni bildirim sistemine çevrimiçi getirmek zaman size sağlayıcıları yeniden segmentlere ayrıntıları çalışmak gerekir. Örneğin, üçüncü bildirim sistemi eklediğinizde, bu iki varolanların her birinden approxmiately 1/3 yükün hizmet bitmelidir.

Bu bir lot e-posta olduğunu. Her şeyden önce, hiç dışarı gönderme olacak olası olduğunu sayıda e-posta yani hacminin bu tür mimar sistem olmaz. Daha az e-postalar (günlük özet, daha seçici hedefleme, rss) gerekli böylece hizmetini yapılandırma düşünmelisiniz. Eğer günde 500.000 e-postaları gönderiyor olsanız bile Ama, bir ağır altyapı gerekir ya VerticalResponse bir lot para gibi ESP ödemek için gidiyoruz. Ücretsiz posta transfer ajanları (MTAs) Postfix ve SendMail içerir. Ticari seçenekleri Strongmail ve PowerMTA içerir. O kadar e-posta ile, muhtemelen (nasıl proje değerlendirme süreci bağlı) spam şikayetleri için dikkat etmeniz gerekir. ReturnPath bunun için yararlıdır.