У меня недостаточно представителей, чтобы переместить этот вопрос на programmers.stackexhange.com, поэтому я отвечу на него здесь.
Сначала я добавлю вам немало технологий, каждая из которых вам нужна.взгляните на.
Hadoop Каркас, уменьшающий карту.Возможность собирать большие суммы данных и обрабатывать их по распределенным узлам.
Kafka Система обмена сообщениями с чрезвычайно высокой производительностью.Я бы посоветовал смотреть на это как на шину сообщений.
ZooKeeper Распределенная система, которая позволит вам «разобраться» во всех аспектах вашей распределенной системы.,Это система координации, которая распространяется
Pub / Sub Messaging
∅mq Другойбиблиотека сокетов, позволяющая обмениваться сообщениями в пабах / суб-сообщениях и другие механизмы передачи сообщений N-to-N.
Теперь, когда я разработал несколько технологий, я объясню, что буду делать.
Создайте систему, которая позволяет создавать N разъемов.Эти соединители могут обрабатывать данные / команды N на диаграмме, где N - это конкретный сигнал.Это означает, что если у вас было 32 сигнала, вы можете настроить свою систему с 32 разъемами для «подключения».Эти разъемы могут поддерживать двустороннюю связь.Следовательно, ваша проблема получения / команды.Один соединитель будет публиковать свои данные на что-то, например, Кафку, по теме, относящейся к этому сигналу.
Использовать систему публикации / подписки.По сути, происходит то, что коннекторы публикуют свои результаты в указанной теме.Эта тема - то, что вы выбираете.Затем процессоры, пользовательский интерфейс, бизнес-логика и т. Д., Слушают определенную тему.Все они произвольны, и вы можете настроить их так, как хотите.
============ ============= ===== ============ =============
= Signal 1= < --- > = Connector = < -- = K = --> = "signal 1" ---> = Processor =
============ ============= = a = ============ =============
= f =
============ ============= = k = ============ =============
= Signal 2= < --- > = Connector = < -- = a = --> = "signal 2" ---> = Processor =
============ ============= = = ============ | =============
= = |
============ ============= = = ============ |
= Signal 3= < --- > = Connector = < -- = = --> = "signal 3" ---
============ ============= ===== ============
В этом примере первый соединитель «публикует» свои результаты в теме «сигнал 1», в которой первый процессор прослушивает эту тему.Любые данные, отправленные в эту тему, отправляются на первый процессор.Второй процессор прослушивает данные «сигнала 2» и «сигнала 3».Это представляет собой что-то вроде пользовательского интерфейса, получающего различные сигналы одновременно.
Следует иметь в виду, что это может происходить по любым темам, которые вы выберете.«Процессор» может прослушать все темы, если вы считаете это важным.