Size: a a a

Ваdоо PHP Мееtuр

2021 February 10

YV

Yushkevich Vitaly in Ваdоо PHP Мееtuр
Michael Gorishnyi
по постгресу почитаю, спасибо
есть подход мультиплексирования запросов. Под mysql тоже что-то было на этот счет
источник

w

who is john galt in Ваdоо PHP Мееtuр
Michael Gorishnyi
тогда узким место становится связь с этим "кто-то другой"
непонятно что нужно сделать. но как упоминалось раньше "кто-то другой" класть данные в базу или выполнять какие-то действия
источник

YV

Yushkevich Vitaly in Ваdоо PHP Мееtuр
но суть в том, что для кролика можно это реализовать самому
источник

YV

Yushkevich Vitaly in Ваdоо PHP Мееtuр
я привел пример про mysql для "keywords for google". можно создать промежуточный слой, который будет держать коннекты с кролликом постоянно (это может быть как php в формате всяких RR, так и что-то другое, например демон на go)
источник

S

Slach in Ваdоо PHP Мееtuр
Michael Gorishnyi
Всем привет. Скажите, кто сталкивался с проблемой, как решали. Работа c rabbitmq. Проблема - постоянный коннект к нему в php (так как у нас php родился и умер на каждый запрос). Сейчас это - 10к-15к запросов в минуту. Консьюмеры понятно - поднялись и держать коннект. А вот с отправкой сообщений - беда.
источник

w

who is john galt in Ваdоо PHP Мееtuр
Yushkevich Vitaly
но суть в том, что для кролика можно это реализовать самому
имел в виду другой язык использовать на котором проще реализовать демона. ну или как вариант запускать консьюмера с нужной периодичностью и считывать сообщения
источник

MG

Michael Gorishnyi in Ваdоо PHP Мееtuр
С консьюмерами проблем нет. Есть проблема с отправкой сообщения.
источник

MG

Michael Gorishnyi in Ваdоо PHP Мееtuр
В пакете ничего не нашел
источник

BD

Bogdan Diadenko in Ваdоо PHP Мееtuр
Michael Gorishnyi
С консьюмерами проблем нет. Есть проблема с отправкой сообщения.
Можешь попробовать использовать редис для транзита сообщений в mq
источник

M

Malaf in Ваdоо PHP Мееtuр
на одном из проектов использовали подход когда сообщения не сразу слали в Rabbit,  а предварительно сообщения писались в БД, а от туда уже вычитывались и отправлялись в Rabbit.
Плюсы решения будет:
- возможность "отправки" сообщения обернуть в транзакию, тем самым сделав гарантию отправки в Rabbit. Не будет ложных или потерянных сообщений в rabbit'е
- отправка происходит ассинхронно, проще масштабировать, уходит проблем коннекта на каждый запрос

Минусы:
- доп задержка перед попаданием сообщения в rabbit
источник

BD

Bogdan Diadenko in Ваdоо PHP Мееtuр
Bogdan Diadenko
Можешь попробовать использовать редис для транзита сообщений в mq
Но тогда уже и саму очередь на редисе можно сделать.
источник

M

Malaf in Ваdоо PHP Мееtuр
в целом стандартный подход, как со всем, что можно сделать ассинхроно: отправки писем, сообщений, расчет статистики и тп
источник

AT

Anton Titov in Ваdоо PHP Мееtuр
Malaf
на одном из проектов использовали подход когда сообщения не сразу слали в Rabbit,  а предварительно сообщения писались в БД, а от туда уже вычитывались и отправлялись в Rabbit.
Плюсы решения будет:
- возможность "отправки" сообщения обернуть в транзакию, тем самым сделав гарантию отправки в Rabbit. Не будет ложных или потерянных сообщений в rabbit'е
- отправка происходит ассинхронно, проще масштабировать, уходит проблем коннекта на каждый запрос

Минусы:
- доп задержка перед попаданием сообщения в rabbit
О! Вот чтобы такие костыли не делать мы и сделали SDK для temporal.io
источник

M

Malaf in Ваdоо PHP Мееtuр
ну я бы не назвал такие вещи костылями, это скорей архитектурное решение. Но если есть инструменты предназначенные упростить эту часть, то круто
источник

MG

Michael Gorishnyi in Ваdоо PHP Мееtuр
Проблема в том, что реббит и является тем местом, которое поможет с ассинхронностью. И вот оно падает. Да, можно через базу. Можно сразу из базы читать, если кончьюмеры в этом же сервисе
источник

MG

Michael Gorishnyi in Ваdоо PHP Мееtuр
А редис мы сразу заюзали - и он умер
источник

MG

Michael Gorishnyi in Ваdоо PHP Мееtuр
Так что, не вытягивал
источник

AT

Anton Titov in Ваdоо PHP Мееtuр
Malaf
ну я бы не назвал такие вещи костылями, это скорей архитектурное решение. Но если есть инструменты предназначенные упростить эту часть, то круто
пока просто то да, но когда начинаешь думать о at-most-once, ретрайях, таймаутах то решение превращается в трудноподдерживаемого монстра
источник

w

who is john galt in Ваdоо PHP Мееtuр
Michael Gorishnyi
Всем привет. Скажите, кто сталкивался с проблемой, как решали. Работа c rabbitmq. Проблема - постоянный коннект к нему в php (так как у нас php родился и умер на каждый запрос). Сейчас это - 10к-15к запросов в минуту. Консьюмеры понятно - поднялись и держать коннект. А вот с отправкой сообщений - беда.
так а кто тогда отправляет сообщения если пхп умер?
источник

MG

Michael Gorishnyi in Ваdоо PHP Мееtuр
Умер пхп - когда закончил обработку запроса. В обработку запроса - входит так же отправка сообщения в реббит
источник