2017-12-19 14 views
1

nodejsを使用してSASL認証を使用してKafkaプロデューサとコンシューマを作成しようとしていますが、ほとんどすべてを試したnodejs kafkaパッケージノードrdkafkaが、その対面の上にSASLkafka nodejs - SASL認証でプロデューサとコンシューマを作成する際の問題

var Kafka = require('node-rdkafka'); 
var producer = Kafka.Producer({ 
    'debug': 'all', 
    'metadata.broker.list': 'localhost:9092', 
    'security.protocol': 'sasl_plaintext', 
    'sasl.username': 'root', 
    'sasl.password': 'admin!', 
    'sasl.mechanisms': 'PLAIN', 
}); 

// producer.connect(); 
producer.connect(null, (err, metadata) => { 
    console.log(metadata); 
    console.error(err); 
    console.log('Connected') 
}); 

producer.on('ready', function() { 
    try { 
    producer.produce('topic1', null, new Buffer('Awesome'), null, Date.now()) 
    } catch (err) { 
    console.log('A error occured') 
    } 
}); 

// Any errors we encounter, including connection errors 
producer.on('event.error', function(err) { 
    console.log('Error from producer'); 
    console.log(err); 
}) 

producer 
    .on('event.log', function(event) { 
     console.log(event) 
     const loggedEvent = { 
     severity: event.severity, 
     fac: event.fac 
     }; 

     if (event.severity >= 7) { 
     console.log(loggedEvent, event.message); 
     } else if (event.severity === 6 || event.severity === 5) { 
     console.log(loggedEvent, event.message); 
     } else if (event.severity === 4) { 
     console.log(loggedEvent, event.message); 
     } else if (event.severity > 0) { 
     console.log(loggedEvent, event.message); 
     } else { 
     console.log(loggedEvent, event.message); 
     } 
}) 

で公開MSGのを作るの運とオプションの下にしようとしましたそれら(ノードrdkafka、カフカ・ノード、無カフカ....)

node-rdkafkaのC++ラッパーによるノード-gypおよびドッカーの問題に関する問題

でも何も出力

var cmd = require('child_process').spawn('java', ['-cp', 'NodeKafka-0.0.1-SNAPSHOT.jar', 'node/kafka/NodeKafka/nodeKafkaConsumer.class']); 

//console.log(spawn); 
setInterval(function() { 
cmd.stdout.on('data', function (data) { 
    console.log('stdout: ' + data); // This will print string returned by Main class. 
}); 

},3000); 
生産者と消費者のスタンドアロンのJavaクラスとJARファイルを作成していないし、エラーをスローdidntのnodejs子プロセスを使用して、それらのJavaクラスを実行しようとしたし、Sametimeで

https://github.com/nodejs/node/issues/17732
https://github.com/GaiamTV/kafka-node-topic-consumer/issues/3
https://github.com/Blizzard/node-rdkafka/issues/323

JavaとPythonに比べてKafkaノードの依存関係とエラーが多い

kafkaプロデューサとコンシューマの作成にSASL認証(SSLを使用せずに)をサポートするnode-rdkafkaまたは他のpacakgeを使用する際に助けてください。

答えて

0

KafkaとSASLでNodejsを使用する場合は、私の知る限り、node-rdkafkaだけが正式にサポートしています。つまり、私は1年以上(SASLで)これを使ってきましたが、これはかなり良い顧客です。

構成や使用例がわかりませんが、プレーンテキスト接続でSASLプレーンを使用すると、ネットワークを介してプレーンテキストで資格情報が送信されることに注意してください。

node-rdkafkaをインストールするときには、正常にビルドされ、必要な機能がすべて有効になっていることを確認する必要があります(SASL)。お使いのOSによっては、インストールする必要がある正確な依存関係が多少異なります。

node-rdkafkaの問題に貼り付けたログを見ると、Cコンパイラを含むすべての依存関係が欠落しています。あなたの依存関係がソート取得かつてので最後に、あなたのNodejsクライアントロジックは、それを、正常に見える

checking for libsasl2 (by pkg-config)... ok 
checking for libsasl2 (by compile)... ok (cached) 
... 
ENABLE_SASL    y 
... 
LIBS      ... -lsasl2 ... 

を:必要なライブラリは、NPMの出力に、あなたが見たいと思って、SASLの依存関係についてhttps://github.com/edenhill/librdkafka#requirements

に記載されていますうまくいくはずです。

+0

マイケルありがとう、私は自分のローカル開発用にWindowsを使用しています。これらは異なる環境であるため、ローカルとデプロイの両方でビルドの問題を修正するのは本当に困難になっています。ノードrdkafkaの最新リリースは –

+0

の問題を抱えているようですが、SASL認証のドキュメントや例はありません –

+0

SASLを使用するには、正しく設定された4つの設定: 'security.protocol'、' sasl.username'、 'sasl.password'、' sasl.mechanisms'です。 Windowsに関するセクションは、ドキュメント(https://github.com/Blizzard/node-rdkafka#windows)にあります。 devとprodの環境が異なるのは、ネイティブライブラリでは常に難しいですが、node-rdkafkaでは問題ありません。 –

関連する問題