2017-06-07 1 views
0

Diese Frage bezieht sich auf why do I need to poll message hub, Die Dokumentation zu dieser Antwort zeigt, dass Kafka ein 'Long-Poll'-Konzept unterstützen wird, aber es ist nicht klar Weg in der bestehenden nodejs Unterstützung für Nachrichten-Hub, um einen solchen Mechanismus zu implementieren. Die Demo-App, die für nodejs bereitgestellt wird, verwendet nur ein 250mSec-Timer-Intervall, um das Abrufen von Nachrichten vom Server zu verarbeiten. Ich möchte, dass die Kafka unterstützen Ansatz Lang Umfrage unter Verwendung mit einem anspruchsvolleren Ansatz Lang Umfrage ersetzen: To avoid this we have parameters in our pull request that allow the consumer request to block in a "long poll" waiting until data arrives jedoch die vorhandene Implementierung nicht für die Konfiguration eine solche Art von Parameter zu ermöglichen scheint, noch ist es klar, was die notwendiger Parameter wäre. Der Prototyp für die Get-Funktion ist definiert als:Wie konfiguriere ich eine 'lange Umfrage' mit Bluemix Message Hub in NodeJS

MessageHub.ConsumerInstance.prototype.get(topicName [toValue]) 

Retrieves a message from the provided topic name. 

    topicName - (String) (required), the topic to retrieve messages from. 
    toValue - (Boolean) (optional), unwraps base64 encoded messages, if true. Defaults to true. 

Returns a Promise object which will be fulfilled when the request to the service resolves. 

so keine Konfigurationsoptionen. Alternativ könnten Sie einen Link zu der Dokumentation bereitstellen, die die URLs und verfügbaren Optionen für die URLs definiert, die im Modul message-hub.js implementiert sind?

Antwort

1

, dass man Sie zu erwähnen sind ein npm Modul auf dem REST-API gebaut, die Message Hub bietet - , die im Wesentlichen die Confluent REST Proxy API minus der AVRO Unterstützung http://docs.confluent.io/2.0.1/kafka-rest/docs/api.html

Das npm nicht anbietet du eine volle Kafka api. Es ist nur eine Teilmenge der REST-API

Die lange Umfrage anbieten, die die die Kafka doc das Timeout in der Java-Consumer-Umfrage für Node.js https://kafka.apache.org/0102/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html#poll(long)

Ein guter Kunde beziehen ist https://github.com/Blizzard/node-rdkafka

Bitte beachten Sie unsere Codierung Beispiel in https://github.com/ibm-messaging/message-hub-samples

+0

Danke. Die erste URL ist für mich wichtig, um zu verstehen, wie dies in nodeJS funktioniert. Was ich im Beispiel (3. URL) sehe, ist, dass nodeJS sofort zurückkehrt, wenn keine Nachrichten mehr konsumiert werden, anstatt zu warten, bis eine Zeitüberschreitung auftritt oder eine Nachricht bereitgestellt wird. Abfrageparameter für Consumer/Get erlauben nur maxbytes, aber Konfigurationsoptionen impliziert, dass max.timeout.ms standardmäßig auf 1000ms gesetzt werden sollte. Dies tritt nicht auf - Ruhe wird sofort mit einem leeren Ergebnis zurückgegeben, wenn keine Nachrichten abgerufen werden sollen. –

Verwandte Themen