@NektoSam

Как лучше отправлять сообщения в MQ (AMQP), TCP или UDP?

Добрый день,

Есть сервис сокращения ссылок , через который в день проходит около 400 тыс кликов.

Технически это реализовано как apache + php + memcached. Работает прекрасно, узких мест пока нет.

Теперь появилась необходимость проверять destination ссылки на вирусы и прочее. Ссылок миллионы, поэтому проверять их все по крону - не вариант, нужно проверять только актуальные ссылок.

Пока планируется следующий процесс

1) Пользователь запрашивает ссылку XXX
2) Скрипт проверяет в memcache статус этой ссылки и дальше разрешает или запрещает редирект
3) Если статуса нет, то через MQ отправляет задание на обработку., ссылка разрешается (допускается, что некий процент ссылок пропускаться не проверенным)
4) Второй скрипт получает задания из MQ, проверяет страницу, обновляет статус в memcache

Один вопрос. Так как все это работает в apache+php, то скрипт каждый раз запускается и умирает. Большинство MQ работают поверх TCP, что будет есть TCP соединение не будет доступно с MQ сервером? имеет ли смысл использовать udp и какой MQ полноценно работает через UDP?
  • Вопрос задан
  • 302 просмотра
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
единственный плюс UDP - отсутствие оверхэда на установление соединения. Это выгодно скажем для логирование, когда вы записываете что-то в сокет (не очень много данных, что бы влезло в пакет) и будь что будет. В случае с MQ вам все же нужна гарантия доставки сообщений.

С другой стороны, если вы будете подключаться на loopback интерфейс (MQ сервер будет на том же сервере что и источник заданий), то оверхэда практически не будет, операционная система в этом случае опускает большую часть сетевого стэка.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы