Масштабирование архитектуры cron с помощью kubernetes - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть облачная распределенная база данных (AWS RDS - PostGres) с таблицей sources.Источниками могут быть веб-страница или учетная запись в социальной сети.

У меня есть служба cron, которая будет проходить каждую source и получать обновленную информацию, например комментарии или статистику.

Иногдаесли выполняются определенные условия, может быть запущено другое действие, например, если публикация в Instagram достигает 1000 лайков, комментарий со строкой, или если блог создает новую запись, отправьте письмо подписчикам.

Я быЯ хотел бы масштабировать мой сервис горизонтально через docker и k8s, если я масштабируюсь до двух сервисов, будет два задания cron, и любое конкретное действие может быть отправлено дважды.Я не хочу, чтобы n писем отправлялось для n экземпляров, которые я масштабировал

Какая архитектура подходит для этого?

1 Ответ

0 голосов
/ 11 февраля 2019

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

Если вас интересует масштабируемость, то вы, вероятно, захотите разделить свой стек на несколько слоев (работники обновления источника, обработчики действий и т. Д.), Связанные рабочими очередями, чтобы любое конкретное действие можно было масштабировать независимо.Но сначала я бы начал с прямого раздела домена.

...