На самом деле, в нашей архитектуре мы используем Hazelcast IMDG , чтобы делиться информацией о пользовательских действиях между несколькими узлами сервера.
Наша карта имеет следующую структуру: [key:String|value: CustomObject]
.
Теперь мы хотим расширить функциональность нашего продукта и разработать инструментальную панель в реальном времени, выполняющую поток данных в реальном времени, выполнив:
- Сложное агрегирование
- Непрерывный запрос
- и т. Д.
В конце процесса мы хотим «отправить» результат на Vert.x Eventbus , а затем наслой сокетов ( SockJS ) для отображения данных на панели инструментов.
Нам необходимо настроить масштабируемую и быструю систему для обработки большого количества данных.например, тысячи событий в секунду.
Первое изображение представляет нашу текущую (старую) архитектуру, второе изображение представляет нашу «целевую» архитектуру.
Старая архитектура
Целевая архитектура
Что вы думаете об архитектуре target ?
Является ли роль Hazelcast Jet правильной или есть другой способ выполнения этих операций (например, только с Hazelcast IMDG )?
Заранее спасибо.