2013-03-20 3 views
0

В основном я хочу создать буфер данных, который клиент может иногда подписывать, получать все данные от последнего, продолжать слушать его для данных в реальном времени , затем отмените подписку через некоторое время и повторите.Буфер данных для подписки и снятия подписки с данными в реальном времени с использованием rabbitmq

Я думаю об использовании очереди TTL rabbitmq, срок действия которой истекает. Идея заключается в том, что клиент иногда может подписаться и отказаться от подписки. Когда клиент подписывается на очередь, он должен получать все доступные сообщения в очереди. Затем клиент будет поддерживать канал для передачи данных в реальном времени.

Это хороший способ сделать это? Я знаю, как паб/суб на кроличом. как я могу это сделать, чтобы он подталкивал все данные в очередь каждый раз, когда клиент подписывался?

ответ

0

Это зависит от того, сколько данных вы говорите. Недостатком вашего метода является то, что очередь может заполнить большой объем данных, если скорость передачи данных высока и TTL установлен в течение длительного времени. Вы также должны сохранить очередь в очереди. И у вас должна быть одна очередь с самого начала для каждого возможного абонента.

Я бы предложил Recent History Exchange, возможно, изменив его, чтобы он содержал больше сообщений.

+0

Для каждой очереди должно быть всего несколько МБ данных. Там не будет много подписчиков, может быть, до нескольких. –

+0

ваш комментарий довольно расплывчатый, и я не уверен, что вы спрашиваете меня. Вы видели недавний обмен историей? – robthewolf

+0

да, похоже, что я описал. даст ему уйти. Спасибо –

Смежные вопросы