2016-10-14 10 views
4

Возможно ли использовать/использовать приложение Android в качестве «Producing client» для Apache Kafka?Как использовать Android-приложение как «Producing client» для Kafka?

Предположим, что моему Android-приложению необходимо фиксировать и анализировать данные времени реакции. Цель - собрать все данные и показать среднее время реакции в режиме реального времени в приложении.

Альтернативы оказывает приложение сервер своего рода как посредника, который принимает сообщения от андроидов приложения и сообщений их Кафок, вместо того, приложение будет продюсером Кафки сам по себе.

ответ

5

Да, это возможно, но, на мой взгляд, это имеет некоторые недостатки.

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

Муфта

Вы сопряжения Android приложение близко к инфраструктуре обмена сообщениями. Если позже вы решите, что решение Kafka слишком велико, а Plain Old Java будет достаточно хорошим, сначала вам нужно будет обновить приложение для Android и дождаться, пока достаточное количество пользователей сделает обновление.

Authentication

Вероятно, у вас уже есть какой-то аутентификации в вашем приложении. Вы также можете создать authenticated connections to Kafka. Таким образом, у вас будет два пути аутентификации, тогда как с сервером приложений Kafka нужно только проверить, поступают ли запросы с доверенного сервера приложений, что означает меньшие усилия по внедрению.

...

+1

Из Coure там могут быть случаи использования, где соединение Кафка непосредственно является лучшим вариантом. Но вы не объяснили, например, почему вам нужно отправлять данные на сервер, поэтому я могу дать общий ответ. –

+1

большое спасибо за ваше мнение! поэтому вы говорите, что это возможно. есть ли у вас фрагменты кода или полезные ссылки для этого подхода? – lidox

+1

@lidox: Использование Kafka в Android не отличается от любого другого приложения Java. Я не пробовал, но проблем с совместимостью не должно быть. Конечно, у вас есть другие проблемы. Например, нет постоянного подключения к Интернету, так что вы должны временно хранить сообщения на устройстве и повторять отправку позже. Если у вас есть какие-либо проблемы, пожалуйста, создайте еще один вопрос и напишите мне ссылку здесь. –