Полное объединение нескольких потоков из разных источников - PullRequest
0 голосов
/ 07 января 2019

Я использую Hazelcast Jet 0.6.1 для анализа в реальном времени. Существует несколько потоков (в основном из удаленного журнала), поступающих из разных источников.

Хотелось бы узнать, поддерживается ли полное соединение между несколькими потоками.

Если да, укажите несколько ссылок / примеров для полного объединения нескольких потоков.

Ответы [ 2 ]

0 голосов
/ 10 января 2019

* Это ответ на комментарий первого ответа, он слишком большой для другого комментария, и я подумал, что первый ответ по-прежнему актуален

Это одни и те же данные и тип данных, только из разных узлов? Как серверы приложений для архитектуры микросервисов? Мне кажется, что у вас есть несколько вариантов, которые действительно сводятся к предпочтительной общей архитектуре, особенно о том, как вы хотите перенести события. Пара мыслей:

  1. Вы можете просто объединить потоки из разных источников данных, если это соответствует сценарию использования:

См .: https://docs.hazelcast.org/docs/jet/0.7.2/manual/#merge

  1. Если это однородные данные, которые просто распределяются по серверам приложений, возможно, в этом случае вы используете клиент Hazelcast на каждом сервере приложений для помещения событий в IMap (общий для всех серверов приложений) с журналом событий. на кластере Hazelcast. Затем Jet просто получает все события из журнала событий.

См .: https://docs.hazelcast.org/docs/latest/manual/html-single/#event-journal

  1. Если у вас есть Kafka, возможно, вы создаете тему для событий с серверов, и Jet получает события от Kafka. В любом случае, когда Jet получает их, они уже объединены, поэтому они обрабатываются как один поток.

См .: https://docs.hazelcast.org/docs/jet/0.7.2/manual/#kafka

0 голосов
/ 07 января 2019

Я думаю, вам нужно немного подробнее рассказать о том, что вы пытаетесь сделать. Потоки теоретически бесконечны, поэтому термин «полное объединение» должен означать нечто иное, чем в базе данных.

В Jet доступно несколько типов соединений. Как сказал выше Can, есть оператор слияния, но вы можете больше думать о оконном соединении, в котором вы ограничиваете время объединения.

Merge Steams здесь: https://docs.hazelcast.org/docs/jet/0.7.2/manual/#merge

Концепции окна здесь: https://docs.hazelcast.org/docs/jet/0.7.2/manual/#unbounded-stream-processing

...