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

Date: 2014-05-24 12:28 am (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Старая песня. Ну воти фидо умело. Я по образу и подобию фидо в 11-м году такое делал в одной полоумной конторе; они там не оценили мою policy-based replication. Сейчас эту контору хозяева закрывают; жаль, концов теперь не найти. Но в принципе фигня; ну вот журнал, HBase ведь доступна в сорсах. Имплементировать это более прилично (у них там проблемы) - и все.

Date: 2014-05-24 06:34 am (UTC)
From: [identity profile] denisioru.livejournal.com
Зачем изобретать велосипеды, есть MSMQ, есть MSSQL. Думаю, распределенные очереди есть и у других, не на платформе Microsoft.

Date: 2014-05-24 07:00 am (UTC)
From: [identity profile] metaclass.livejournal.com
Надо что-нибудь гуманное, размером с клиентскую библиотеку, а не тащить MSSQL на клиентские машины :)

(no subject)

From: [identity profile] denisioru.livejournal.com - Date: 2014-05-24 07:01 am (UTC) - Expand

(no subject)

From: [identity profile] juan-gandhi.livejournal.com - Date: 2014-05-24 07:03 am (UTC) - Expand

(no subject)

From: [identity profile] denisioru.livejournal.com - Date: 2014-05-24 07:05 am (UTC) - Expand

(no subject)

From: [identity profile] juan-gandhi.livejournal.com - Date: 2014-05-24 07:09 am (UTC) - Expand

(no subject)

From: [identity profile] anonim-legion.livejournal.com - Date: 2014-05-24 07:25 am (UTC) - Expand

(no subject)

From: [identity profile] 4g9h992s.livejournal.com - Date: 2014-05-24 12:06 pm (UTC) - Expand

(no subject)

From: [identity profile] juan-gandhi.livejournal.com - Date: 2014-05-24 04:10 pm (UTC) - Expand

(no subject)

From: [identity profile] anonim-legion.livejournal.com - Date: 2014-05-24 04:11 pm (UTC) - Expand

(no subject)

From: [identity profile] juan-gandhi.livejournal.com - Date: 2014-05-24 06:38 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2014-05-24 07:12 am (UTC) - Expand

(no subject)

From: [identity profile] avnik.livejournal.com - Date: 2014-05-24 07:58 am (UTC) - Expand

(no subject)

From: [identity profile] anonim-legion.livejournal.com - Date: 2014-05-24 07:42 am (UTC) - Expand

(no subject)

From: [identity profile] 4g9h992s.livejournal.com - Date: 2014-05-24 12:07 pm (UTC) - Expand

(no subject)

From: [identity profile] anonim-legion.livejournal.com - Date: 2014-05-24 01:02 pm (UTC) - Expand

(no subject)

From: [identity profile] 4g9h992s.livejournal.com - Date: 2014-05-24 01:27 pm (UTC) - Expand

(no subject)

From: [identity profile] juan-gandhi.livejournal.com - Date: 2014-05-24 07:02 am (UTC) - Expand

(no subject)

From: [identity profile] denisioru.livejournal.com - Date: 2014-05-24 07:03 am (UTC) - Expand

(no subject)

From: [identity profile] juan-gandhi.livejournal.com - Date: 2014-05-24 07:04 am (UTC) - Expand

Date: 2014-05-24 03:28 am (UTC)
From: [identity profile] berezovsky.livejournal.com
msmq же было вроде, в одной известной Корпорации на одном интересном проекте пользовали, и оно даже само после восстановления связи старые сообщения подхватывало
сейчас, наверное, в дотнетовской обёртке что-то такое должно быть
(deleted comment)

(no subject)

From: [identity profile] berezovsky.livejournal.com - Date: 2014-05-26 02:13 pm (UTC) - Expand

Date: 2014-05-24 04:16 am (UTC)
From: [identity profile] denisioru.livejournal.com
Ну в случае распределенной работы - да, очереди живут и на клиенте и на сервере. В Server Broker в MSSQL даже локально всегда работа идет по цепочке "очередь клиента -> очередь обработчика". И в силу этого достаточно ненапряжно можно переключить очередь обработчика на ремотный сервер.

Date: 2014-05-24 06:19 am (UTC)
From: [identity profile] sbj-ss.livejournal.com
Да, мы пользовались симметричным вариантом "по очереди на клиенте и сервере". И там и там инстансы MSSQL с брокером, так что вопрос "кто ведущий, а кто ведомый" поднимался только на более высоком уровне абстракции - и ничего греховного в этом имхо нет.

Date: 2014-05-24 04:39 am (UTC)
From: [identity profile] falcrum.livejournal.com
Либо клиентская прога должна сказать: "Абзац, сервер недоступен, работать не буду" - самый частый вариант.

Date: 2014-05-24 06:18 am (UTC)

Date: 2014-05-24 02:58 pm (UTC)
From: [identity profile] plumqqz.livejournal.com
Да, как-то так.

Date: 2014-05-24 06:22 am (UTC)
From: [identity profile] romik-g.livejournal.com
Подразумевается высокая доступность для MQ сервиса и его близкое расположение к клиентам. И, как сказал [livejournal.com profile] falcrum, приложение должно уметь корректно откидывать ласты, если MQ не доступен.

Date: 2014-05-24 06:44 am (UTC)
From: [identity profile] 1master.livejournal.com
Народ что-то подобное на transactional replication ваяет, временами с обвязкой из service broker. Но подробностей я не знаю, увы.

Date: 2014-05-24 07:50 am (UTC)
From: [identity profile] avnik.livejournal.com
проблема одна -- все умеют либо доставку _минимум одного_ сообщения, либо гарантию отсуствия дубликатов. ИЛИ-ИЛИ.
Диванным теоретикам предлагаю описать алгоритм гарантированой доставки каждого сообщения в единственно мэкземпляре в условиях network parition (ага call me maybe -- это про это)

Date: 2014-05-24 05:44 pm (UTC)
From: [identity profile] antilamer.livejournal.com
At least once + транзакционность получателя = exactly once.

(no subject)

From: [identity profile] avnik.livejournal.com - Date: 2014-05-24 08:11 pm (UTC) - Expand

Date: 2014-05-24 08:03 am (UTC)
From: [identity profile] themech.livejournal.com
Смотрели aws sqs?

Date: 2014-05-24 08:36 am (UTC)
From: [identity profile] avnik.livejournal.com
дупит с неебическорй силой

(no subject)

From: [identity profile] berezovsky.livejournal.com - Date: 2014-05-24 08:37 am (UTC) - Expand

(no subject)

From: [identity profile] sbj-ss.livejournal.com - Date: 2014-05-24 04:12 pm (UTC) - Expand

Date: 2014-05-24 06:27 pm (UTC)
From: [identity profile] hahashi.livejournal.com
+1
Visibility Timeout все решает
если я правильно понял проблему

Date: 2014-05-24 02:47 pm (UTC)
From: [identity profile] click0.livejournal.com
Berkeley DB ?

Date: 2014-05-24 08:23 pm (UTC)
From: [identity profile] blackyblack.livejournal.com
Для начала, нужно выяснить, так ли нужна персистеность на клиенте. Если правда нужна, то можно поискать какую-нибудь persistent queue реализацию.
Через СУБД делать не стоит - это уродское решение. Однако хорошее решение навскидку не скажу.

Date: 2014-05-25 11:51 pm (UTC)
From: [identity profile] golikov konstantine (from livejournal.com)
Scribe от фейсбука:

If a scribe instance on a client machine (we’ll call it a resender for the moment) is unable to send messages to the central scribe server it saves them on local disk, then sends them when the central server or network recovers.

Date: 2014-05-26 10:28 am (UTC)
From: [identity profile] hshhhhh.livejournal.com
есть простое решение: нужно добавить раббита и на сервере где генерируется очередь, а в нормальную очередь пусть складывает очередь.

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

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

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

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

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

(no subject)

From: [identity profile] hshhhhh.livejournal.com - Date: 2014-05-26 11:15 am (UTC) - Expand

(no subject)

From: [identity profile] nivanych.livejournal.com - Date: 2014-05-27 11:42 am (UTC) - Expand

(no subject)

From: [identity profile] berezovsky.livejournal.com - Date: 2014-05-27 11:45 am (UTC) - Expand

(no subject)

From: [identity profile] nivanych.livejournal.com - Date: 2014-05-27 11:50 am (UTC) - Expand

Date: 2014-05-26 11:23 am (UTC)
From: [identity profile] metaclass.livejournal.com
Да, к чему-то похожему мы и склоняемся.

(no subject)

From: [identity profile] hshhhhh.livejournal.com - Date: 2014-05-26 12:29 pm (UTC) - Expand

Date: 2014-05-29 02:30 am (UTC)
From: [identity profile] napishi.livejournal.com
Если клиенты виндовые, то я бы использовал (и использовал уже) родной MSMQ.
Он идёт в поставке, начиная с XP, имеет хорошую поддержку в .NET

Date: 2014-06-09 07:07 pm (UTC)
From: [identity profile] inhate.livejournal.com
А зачем тебе верховная очередь? Пускай клиенты складывают себе сообщения локально, а паук будет по мере сил и коннекта опрашивать параллельно или по очереди удалённые очереди.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 27th, 2025 09:03 am
Powered by Dreamwidth Studios