2016-10-14 1 views
4

Ist es möglich/macht es Sinn, eine Android App als "Producing Client" für Apache Kafka zu verwenden?Wie funktioniert Android App als "Producing Client" für Kafka?

Angenommen, meine Android App muss Reaktionszeitdaten erfassen und analysieren. Ziel ist es, alle Daten zu sammeln und die durchschnittliche Reaktionszeit in Echtzeit in der App anzuzeigen.

Die Alternative ist mit einem App-Server irgendeine Art als Vermittler, die Nachrichten aus dem Android App übernimmt und sie zu Kafka postet, anstatt den App ein Kafka Produzent auf seinem eigenen sein.

Antwort

5

Ja, es ist möglich, aber meiner Meinung nach hat es einige Nachteile.

Im Allgemeinen möchte ich, dass Kunden so einfach wie möglich sind, um Wartungsprobleme zu vermeiden. Stattdessen würde ich alle Clientanforderungen über eine REST-API auf meinem Anwendungsserver weiterleiten. Die Nachteile beziehen sich nicht auf Kafka, sondern sind häufige Probleme von nativen Clients.

Kupplung

Sie koppeln das Android-App in engen Zusammenhang mit Ihrer Messaging-Infrastruktur. Wenn Sie später entscheiden, dass eine Kafka-Lösung zu viel ist und Plain Old Java gut genug wäre, müssen Sie zuerst die Android-App aktualisieren und warten, bis genügend Benutzer ein Update durchgeführt haben.

Authentifizierung

Wahrscheinlich haben Sie bereits eine Art von Authentifizierung in Ihrer Anwendung. Sie können auch authenticated connections to Kafka erstellen. Sie haben also zwei Authentifizierungspfade, während Kafka mit einem App-Server nur überprüfen muss, ob die Anfragen vom vertrauenswürdigen App-Server kommen, was weniger Implementierungsaufwand bedeutet.

...

+1

Von coure könnte es Anwendungsfälle geben, in denen Verbindung Kafka direkt die bessere Option ist. Aber Sie haben zum Beispiel nicht erklärt, warum Sie die Daten überhaupt an den Server senden müssen, daher kann ich nur eine allgemeine Antwort geben. –

+1

Vielen Dank für Ihre Meinung! Du sagst es ist möglich. Haben Sie Code-Snippets oder nützliche Links für diesen Ansatz? – lidox

+1

@lidox: Die Verwendung von Kafka in Android ist nicht anders als in jeder anderen Java-Anwendung. Ich habe es nicht versucht, aber es sollte keine Kompatibilitätsprobleme geben. Natürlich hast du andere Herausforderungen. Zum Beispiel gibt es keine permanente Internetverbindung, so dass Sie die Nachrichten vorübergehend auf dem Gerät speichern und später erneut senden müssen. Wenn Sie spezielle Probleme haben, erstellen Sie bitte eine andere Frage und schreiben Sie mir einen Link hier. –

Verwandte Themen