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

Message Queue

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

[identity profile] denisioru.livejournal.com 2014-05-24 07:01 am (UTC)(link)
Гуманное и распределенное? Вот чтото похожее?

[identity profile] juan-gandhi.livejournal.com 2014-05-24 07:03 am (UTC)(link)
А зачем изобрели этот велосипед? Ведь есть уже MSMQ и MSSQL, куда уж лучше-то? Или MSMQ не распределенный? Так и зачем тогда вы его поминали?

[identity profile] denisioru.livejournal.com 2014-05-24 07:05 am (UTC)(link)
потому на момент Вашего первого сообщения у меня не было информации о том, что тут эрланг как-то фигурирует.

[identity profile] juan-gandhi.livejournal.com 2014-05-24 07:09 am (UTC)(link)
Где это "тут"? Я все написал на скале - но какая разница?

[identity profile] anonim-legion.livejournal.com 2014-05-24 07:25 am (UTC)(link)
У вас неприязнь к майкрософту?

[identity profile] 4g9h992s.livejournal.com 2014-05-24 12:06 pm (UTC)(link)
дурачок из россии, ты пишешь здесь потому что ты забыл выпить таблетки? :)

[identity profile] juan-gandhi.livejournal.com 2014-05-24 04:10 pm (UTC)(link)
А вы с какой целью спрашиваете?

[identity profile] anonim-legion.livejournal.com 2014-05-24 04:11 pm (UTC)(link)
Да просто сложилось такое впечатление из ваших комментариев к этому посту.

[identity profile] juan-gandhi.livejournal.com 2014-05-24 06:38 pm (UTC)(link)
Хорошо. Тогда ответ на предыдущий вопрос: "да".

[identity profile] metaclass.livejournal.com 2014-05-24 07:12 am (UTC)(link)
RabbitMQ (http://www.rabbitmq.com): It is developed using the Erlang programming platform (that is developed by Ericsson). You need to install Erlang first. I spent a lot of time to install, configure, and write a sample application. It has a .NET client but I got many errors when trying to develop and run a simple application. It was very hard to install and to make two rabbitMQ Brokers work together on two different servers. After a few days, I gave up because I thought it must not be that hard to learn and to start developing applications.

Если человек не осилил запустить кролика - его код использовать противопоказано.

[identity profile] avnik.livejournal.com 2014-05-24 07:58 am (UTC)(link)
оно иногда более головой, жрет всю доступную память и дохнет.
И это пример _как не надо писать на ерланге_