2009-09-21 2 views
1

Я строю систему для своего клиента. Это очень похоже на www.getafreelancer.com. Существует 2 типа пользователей: поставщик услуг и поставщик услуг. Услуги Покупатели пост проектов. Поставщики услуг уведомляются о любых новых проектах, которые вписываются в их классификации.Cron, Email, Performance

Предположим: Приблизительно 100 квалификаций. Поставщик услуг может выбрать квалификацию 10-15. Теперь около 100 проектов публикуются ежедневно. И есть 1 миллион поставщиков услуг. И проблема в том, что мы должны отправлять уведомления по электронной почте поставщикам услуг, соответствующим их выбранной квалификации, с категорией проекта. (Для всех 100 проектов ежедневно).

Это будет выглядеть как пользователь. Проверяя их квалификацию с категорией проекта и отправляя им электронную почту. Как я могу отправить 20 * 1 миллион = 20 миллионов электронных писем ежедневно?

(В настоящее время не будет 1 млн пользователей. Но программирование должно быть сделано с будущими требованиями)

Просьба представить некоторые предложения.

Мой вопрос: мне нужно специальное оборудование для отправки 1 миллиона электронных писем?

+0

Не настоящий вопрос, пожалуйста, перепишите, чтобы задать вопрос. – markus

ответ

1

От того, как вы задаете вопрос, немного сложно понять, чего вы хотите.

Если вы хотите отправить электронное письмо в режиме реального времени, жизнь довольно проста. У некоторых покупателей есть потребность, и как только они публикуют его, вы отправляете кучу уведомлений. Это будет трудно масштабировать, но боль придет на стороне доставки электронной почты. Простое создание списка поставщиков для информирования довольно тривиально, если ваш дизайн базы данных и инфраструктура будут менее ужасными.

Если это то, что вы делаете, вы просто хотите убедиться, что у вас есть платформа доставки электронной почты, настроенная умным способом. Создайте инфраструктуру, чтобы ваша основная система могла легко делегировать партии электронной почты N подчиненным серверам, которые могут справляться с выполнением некоторого слияния почты и обеспечить достаточную пропускную способность SMPT.

Если вы хотите периодически отправлять электронную почту, чтобы провайдеры получали только одно электронное письмо с несколькими заданиями, вам нужно подумать о вещах немного по-другому.

В этом случае рассмотрим архитектуру, основанную на сегментации вашего списка поставщиков, и репликацию базы данных для обработки нагрузки чтения.

В этой модели покупатель отправляет работу. Ваша основная база данных обновляется, а некоторое количество ведомых устройств получает данные через репликацию. Каждый подчиненный отвечает за то, чтобы поддерживать поставщиков по электронной почте. Каждые N часов каждое подчиненное устройство считывает из своей выделенной базы данных только для чтения и обрабатывает свой сегмент пользователей.

Вам нужно будет разобраться с деталями повторной сегментации ваших провайдеров при вводе новой системы уведомлений в Интернете. Например, когда вы добавляете свою третью систему уведомлений, она должна в конечном итоге обслуживать примерно 1/3 нагрузки от каждой из двух существующих.

+0

У меня недостаточно знаний о подчиненных серверах. Но ваш ответ кажется логичным. Спасибо. –

+0

Мое удовольствие. Доставка почты может быть огромной головной болью. Поскольку ваш клиент, честно говоря, никогда не будет иметь миллионы поставщиков, вы должны сделать все возможное, чтобы просто планировать заранее, не беспокоясь о деталях. Тот факт, что вы представляете эти электронные письма, выходящие через cron, в отличие от создания должности, означает, что вы на правильном пути. Оттуда продолжайте абстрагироваться от того, что, по вашему мнению, вам нужно мультиплексировать, чтобы масштабировать. – timdev

1

Это лот из электронной почты. Прежде всего, маловероятно, что вы когда-нибудь будете рассылать много писем, поэтому я бы не архивировал вашу систему для такого объема. Вы должны подумать о настройке своей службы, чтобы было необходимо меньше писем (ежедневное резюме, более избирательный таргетинг, RSS-каналы).Но даже если вы отправляете 500 000 писем в день, вам понадобится мощная инфраструктура или оплатите ESP, например, VerticalResponse a лот денег. Агенты бесплатной почты (MTA) включают Postfix и SendMail. Коммерческие варианты включают Strongmail и PowerMTA. С таким большим количеством писем вам, вероятно, нужно будет следить за жалобами на спам (в зависимости от того, как ваш процесс обзора проекта). Для этого полезно использовать ReturnPath.

+0

Было полезно. Я планирую переместить некоторые вещи в RSS. Спасибо. –