Добавление [hazelcast-jet] в существующее приложение - PullRequest
1 голос
/ 27 мая 2020

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

Итак, мой первый вопрос есть, как запустить Jet поверх существующей конфигурации Hazelcast? Должен ли я запускать Jet отдельно или заменять нашу существующую конфигурацию Hazelcast на Jet (поскольку Jet действительно предоставляет HazelcastInstance.)

Мой второй вопрос: я вижу много примеров с использованием IMap и IList, но я не вижу ничего, что использует темы в качестве источника (я также не вижу это как вариант в построителе источников). Моя первоначальная мысль об использовании Jet заключалась в том, чтобы генерировать события (данные io perf, данные HTTP-запроса) из нашего существующего кода в topi c, а затем заставить Jet обрабатывать этот topi c, генерировать аналитику из этих данных, а затем pu sh, что в IMap. Это неправильный подход? Должен ли я использовать какую-то другую структуру для переноса sh этих событий в Jet? Я увидел, что могу создать свой собственный источник, в котором я мог бы это сделать, но я чувствовал, что, должно быть, иду по неправильному пути, если я преследовал это, учитывая, что библиотеки еще не было предоставлено для этой спецификации c цель.

1 Ответ

7 голосов
/ 27 мая 2020

Вы можете обновить текущий кластер Hazelcast IMDG до кластера Jet и запустить свое устаревшее приложение вместе с заданиями Jet. Эта установка проще в развертывании и эксплуатации. Также отлично подойдет запуск дополнительного кластера для Jet. Его преимущество - изоляция (жизненный цикл кластера, сбои и т. Д. c.). Просто имейте в виду, что вы не можете комбинировать IMDG 3.x с кластерами Jet 4.x.

Используйте IMap с журналом для соединения двух заданий или для приема данных в кластер. Это простейший отказоустойчивый вариант, работающий OOTB. Источник данных Jet должен быть воспроизводимым - в случае сбоя задания он возвращается к моментальному снимку последнего состояния, соответственно перематывая смещение источника данных.

Topi c можно использовать (через Source Builder ), но он не будет отказоустойчивым (некоторые сообщения могут теряться). Jet обеспечивает отказоустойчивость за счет регулярного создания снимков заданий. В случае сбоя восстанавливается последний моментальный снимок, а данные, следующие за моментальным снимком, воспроизводятся. В отличие от журнала, потребитель topi c не может воспроизвести данные с использованием смещения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...