Storm - распределенная система обмена сообщениями
Apache Storm обрабатывает данные в реальном времени, и ввод обычно поступает из системы очередей сообщений. Внешняя распределенная система обмена сообщениями предоставит ввод, необходимый для вычислений в реальном времени. Spout будет читать данные из системы обмена сообщениями, преобразовывать их в кортежи и вводить в Apache Storm. Интересен тот факт, что Apache Storm внутренне использует собственную распределенную систему обмена сообщениями для связи между своим нимбом и супервизором.
Что такое распределенная система обмена сообщениями?
Распределенный обмен сообщениями основан на концепции надежной организации очереди сообщений. Сообщения ставятся в очередь асинхронно между клиентскими приложениями и системами обмена сообщениями. Распределенная система обмена сообщениями обеспечивает такие преимущества, как надежность, масштабируемость и постоянство.
Большинство шаблонов сообщений следуют publish-subscribe модель (просто Pub-Sub) где отправители сообщений называются publishers а тех, кто хочет получать сообщения, называют subscribers.
После того, как сообщение было опубликовано отправителем, подписчики могут получить выбранное сообщение с помощью опции фильтрации. Обычно у нас есть два типа фильтрации, один из нихtopic-based filtering и еще один content-based filtering.
Обратите внимание, что модель pub-sub может общаться только через сообщения. Это очень слабо связанная архитектура; даже отправители не знают своих подписчиков. Многие шаблоны сообщений позволяют брокеру сообщений обмениваться опубликованными сообщениями для своевременного доступа многих подписчиков. Примером из реальной жизни является Dish TV, которое публикует различные каналы, такие как спорт, фильмы, музыка и т. Д., И любой может подписаться на свой собственный набор каналов и получать их всякий раз, когда доступны каналы, на которые они подписаны.
В следующей таблице описаны некоторые из популярных систем обмена сообщениями с высокой пропускной способностью.
Распределенная система обмена сообщениями | Описание |
---|---|
Апач Кафка | Kafka разрабатывалась в корпорации LinkedIn, а позже стала подпроектом Apache. Apache Kafka основан на постоянной, распределенной модели публикации-подписки с поддержкой брокера. Kafka быстрый, масштабируемый и высокоэффективный. |
RabbitMQ | RabbitMQ - это надежное распределенное приложение для обмена сообщениями с открытым исходным кодом. Он прост в использовании и работает на всех платформах. |
JMS (служба сообщений Java) | JMS - это API с открытым исходным кодом, который поддерживает создание, чтение и отправку сообщений из одного приложения в другое. Он обеспечивает гарантированную доставку сообщений и следует модели публикации-подписки. |
ActiveMQ | Система обмена сообщениями ActiveMQ - это API JMS с открытым исходным кодом. |
ZeroMQ | ZeroMQ - это одноранговая обработка сообщений без посредника. Он обеспечивает модели двухтактных сообщений маршрутизатора-дилера. |
Пустельга | Kestrel - это быстрая, надежная и простая распределенная очередь сообщений. |
Экономический протокол
Компания Thrift была создана в Facebook для разработки межъязыковых сервисов и удаленного вызова процедур (RPC). Позже он стал проектом Apache с открытым исходным кодом. Apache Thrift - этоInterface Definition Language и позволяет легко определять новые типы данных и реализацию служб поверх определенных типов данных.
Apache Thrift также является коммуникационной платформой, которая поддерживает встроенные системы, мобильные приложения, веб-приложения и многие другие языки программирования. Некоторые из ключевых особенностей Apache Thrift - это его модульность, гибкость и высокая производительность. Кроме того, он может выполнять потоковую передачу, обмен сообщениями и RPC в распределенных приложениях.
Storm широко использует протокол Thrift для внутренней связи и определения данных. Топология шторма простаThrift Structs. Storm Nimbus, который запускает топологию в Apache Storm, являетсяThrift service.