Является ли Message Queuing правильной стратегией для потока данных с высокой пропускной способностью? - PullRequest
1 голос
/ 07 октября 2011

У меня огромная сеть серверов сбора данных, которые генерируют большой объем данных в реальном времени.

В прошлом я предоставлял партнерам возможность получать эти данные практически в реальном времени, используя HTTP GET. Но по многим причинам я очень хочу отказаться от этого.

Так что да ... Мне не терпится создать новую систему распределения, и я подумал, что система очередей сообщений - это путь.

Мне нужно иметь возможность распространять данные из моих источников среди различных партнеров. Некоторые партнеры получают все это, другие просто получают часть. И, если партнер отключается, он должен иметь возможность восстановить соединение и не пропустить какие-либо данные. (Хотя ради диска и памяти я бы хотел, чтобы их сообщения в очереди истекали через час или около того)

Наконец, мне нужно, чтобы система могла обрабатывать десятки тысяч задач в минуту.

Как вы думаете, очереди сообщений является подходящей схемой?

Я смотрел на использование RabbitMQ. Это трудно поддерживать?

Большое спасибо!

-Z

1 Ответ

2 голосов
/ 20 октября 2011

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

Большая часть инвестиционного мира использует различные продукты, как коммерческие ( Tibco ), так и с открытым исходным кодом ( ZeroMQ ), чтобы назвать только два, для обработки рыночных данных из бирж и других источников. Они, по крайней мере, так же активны, как и ваши датчики данных.

Модель публикации / подписки, в которой некоторым получателям требуется несколько сообщений, а некоторым - все, наряду с поздним соединением или другими так называемыми гарантированными сообщениями, действительно являются стандартными функциями большинство из этих продуктов.

Так что продолжайте исследовать продукты, я сам не использовал RabbitMQ , поэтому не могу комментировать это конкретно, однако, имея минимальный уровень абстракции, вы должны быть в состоянии изолировать себя от слишком большого количества платформозависимых вызовы и, следовательно, позволяют вам менять местами реализации шины сообщений, если в этом возникает необходимость. (Возможно, вы даже захотите создать такую ​​шайбу как часть концепции для тестирования более чем одного продукта для вашей конкретной цели. Вы получаете опыт работы с несколькими продуктами, уточняете фасадный слой и ускоряете продукты)

Удачи

...