Опубликовать в теме Apache Кафка из углового интерфейса

#apache-kafka

Вопрос:

Мне нужно создать решение, которое получает события из веб — /настольного приложения, работающего в киосках. По всей стране разбросаны сотни киосков, и каждый из них время от времени генерирует автоматические события и события, когда что-то происходит.

Несмотря на то, что это приложение является заблокированным настольным приложением, оно встроено в Angular v8. Я имею в виду, что он работает в веб-представлении.

Я искал масштабируемые, но надежные решения и обнаружил, что Apache Kafka кажется отличным решением. Я знаю, что есть клиенты для NodeJS, но не смог найти никакого варианта для Angular. Angular работает в браузере, по этой причине он должен взаимодействовать с серверной частью через HTTP/S.

В конце концов, я понял, что лучший способ отправлять события из Angular-это создать API, который просто получает сообщение от конечной точки HTTP/S и публикует в теме Кафки. Или есть ли какой-либо адаптер для Кафки, который раскрывает темы как ОТДЫХ?

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

Заранее спасибо.

Ответ №1:

этот подход намного быстрее, чем хранить сообщения в базе данных. Правильно ли это утверждение?

Это может быть медленнее. Кафка асинхронна, поэтому не ожидайте получить ответ за тот же период времени, за который вы могли бы выполнить чтение/запись базы данных. (Опять же, потребуется некоторый API, а также во многом зависит от используемой базы данных)

есть ли какой-либо адаптер для Кафки, который раскрывает темы как ОТДЫХ?

Да, прокси-сервер Confluent REST является лицензионным продуктом Apache2.

Существует также проект divolte/divolte-collector для сбора данных о кликах и других событий, управляемых браузером.

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

Комментарии:

1. Отлично! Спасибо за подтверждение, я думаю, что напишу API, а затем опубликую в теме.