metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2014-05-24 02:23 am

Message Queue

Чо-то я не совсем понимаю идеологию работы с сабжами в случае, когда нет гарантии работоспособности промежуточных узлов.
Вот например, есть кролик (rabbitmq), на сервере. В него какие-нибудь клиентские программы складывают данные на обработку специально обученными пауками. Теперь приходит белтелеком, крадет у нас связность между сервером и клиентом, или например, админ, которому не досталось личной ежихи в дурдоме - режет витую пару и плетет из нее макраме.
Соответственно, клиентская прога должна в это время копить сообщения для очереди в себе и дожидаться пока санитары повяжут админа и восстановят доступность сервера. Причем делать это корректно даже в том случае, если электрики решат, что именно сегодня надо отключить электропитание.
Но это ж ведь блин получается, что в клиентской библиотеке должна быть такая же очередь со всеми потрохами - персистентностью, каким-то внешним хранилищем для недоставленных мессаг и прочим таким. В итоге, вместо клиент-серверной модели мы получаем какую-то распределенную хрень, когда и на клиенте и на сервере стоят одинаковые сервера очередей и занимаются между собой греховной репликацией.
Внимание вопрос: а что из готовых решений в такое умеет? А то самодельные очереди СУБД немного задолбали, не говоря уже о том, что и СУБД может сдохнуть не вовремя, соответственно, складируемые в нее сообщения надо тоже складывать в какую-то очередь на этот случай.

[identity profile] berezovsky.livejournal.com 2014-05-26 11:13 am (UTC)(link)
"Now they have two problems".

Однажды Онуфрий описывал очередь обработки. Освоил объекты, оглядел Оракл. Отладил операции, обрывы, ожидание. Обфусцировал, оформил окончательно. Одокументил окружение, обслуживание.

Очередь обработки оголтело отколбасила около осьми оборотов. Отключившись, околела окаянная. Огорчился Онуфрий. Откупорил, опрокинул, откусил окорок, окосел.

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

Опешил Онуфрий. Обдумал обновлённую, оригинальную очередь. Окамл, О'Рейли, отправка-обработка, одобрение-отклонение, от оно! Описал, отладил.

[identity profile] hshhhhh.livejournal.com 2014-05-26 11:15 am (UTC)(link)
ну можно добавить еще одну очередь на принимающей стороне чтобы было 3 очереди.
1) очередь на генераторе
2) оригинальная очередь
3) локальная очередь на клиенте
3.1) или много локальных очередей на многих клиентах

[identity profile] nivanych.livejournal.com 2014-05-27 11:42 am (UTC)(link)
По-моему, гениально!
Вы придумали?

[identity profile] nivanych.livejournal.com 2014-05-27 11:50 am (UTC)(link)
От оно, оказывается, окакое отродилось!