2016-09-17 9 views
0

カフカシステムを設定しようとしています。私のプロジェクトの既存のコードのほとんどは既にPHPになっているので、おそらくPHP自体でプロデューサを書くつもりです。しかし、消費者を書くために言語を選択することについては、私は比較的制約が少ない。さて、そこには非常に多くのclients私は修正されて使用することができますがあります。カフカコンシューマに使用する言語

ここで適切な技術を選択するためには、何を考慮する必要がありますか?

は特にノードクライアント対Javaクライアントの間で(非同期モデル対マルチスレッドモデル)を選択するには、この知識を適用したい

すべてのヘルプは高く評価されます。

答えて

3

Javaクライアントは、Kafkaプロジェクトによって正式にサポートされている最も進んだクライアントであり、他のほとんどのクライアントはサードパーティのプロジェクトであり、多くは利用可能なすべての機能を実装していません。

したがって、Javaクライアントを使用することをお勧めします。

+0

お返事ありがとうございます。ちなみに、コンフルエントコントロールセンター以外のオープンソースのコンフルエントなプラットフォームについても調べていました。このコントロールセンターがない合流プラットフォームを使用することは可能ですか?私が働いている人たちは、この段階でこのようなものを買うことに費やすことはないと知っています。 – ankitG

+0

はい。 Confluent PlatformはControl Centerなしで使用できます。コントロールセンターはConfluent Platform Enterpriseの一部です。 http://www.confluent.io/product/を参照してください。 –

0

限りカフカが行くように、私は公式のコンフルエントと言語のいずれかを使用したいクライアントをサポート:JVM、C/C++ ,. NET、Pythonは、私はあなたがする他の人を得ることができると確信してい

を行きますNodeやPHPのように動作し、多分Cライブラリを使用することができますが、私は公式言語サポートとより広いユーザが質問するのを好みます。

0

カフカは基本的に純粋なJavaで書かれており、カフカのネイティブAPIはjavaなので、これはサードパーティのライブラリを使用していない唯一の言語です。あなたは常に他の言語オーバーヘッド。

Node.jsは、Kafkaなどのハイスループットアプリケーションに最適化されていません。だから、カフカやC++の標準となる高い処理速度が必要な場合。

また、Javaで書かれたカフカの消費者クライアントは、優れたコミュニティサポートを提供していると思います。だからあなたがそれを実装するのを止める他の依存関係を持たない限り、javaを使って実装するのは理にかなっています。

また、さまざまなKafkaクライアントを使用してbenchmarking resultsを確認してください。結果は対照的です。

Client Type Throughput(No of messages) 
Java  40,000 - 50,0000 
Go   28,000 - 30,0000 
Node   6,000 - 8,0000 
Kafka-pixy  700 - 800 
Logstash  250 
関連する問題