私はRabbitMQからKafkaに自分のプロジェクトを移しています。反応するカフカの速さを理解しようとしています。反応カフカ(Scala plus Akka Streams)のパフォーマンスをいかに向上させるか?
私は現在、ウサギに約12K/secの簡単なメッセージ/秒を書き込むことができます。読み取り時には、キューから「hello world」ストリームを約4K /秒で簡単に引き出すことができます。
私は反応性ストリームでカフカに移動しましたが、おそらく1M /秒を書くことができます - 巨大な勝利! しかし、同じ環境では、ここでの例のアプローチを使用してストリームを読むと約2K /秒しか流れません。DummyConsumer.scala
誰かが私がどのようにレベルを比較できるかについてのヒントを知っていますか?ウサギのアプローチに?
興味深い:私はちょうど "直接"(raw Javaドライバ対リアクションカフカ経由でカフカにアクセスして)試してみたところ、約22Kの読み込みをしているのでかなり良いです。私はリアクションカフカを使ってどうやって物事を遅らせているのか何かを縫っている。
いいえ...私はこのことを狩っています。次に、生のAkkaストリーム「hello world」を試しました。
now = System.currentTimeMillis()
count = 0
val in2 = Source(1 to num)
val g = RunnableGraph.fromGraph(GraphDSL.create() { implicit b =>
import GraphDSL.Implicits._
val show = Flow[Int].map{ i => count +=1; if(count==num) println(s"time 2 ($count): "+(System.currentTimeMillis() - now)); i }
in2 ~> show ~> Sink.ignore
ClosedShape
})
g.run()
Thread.sleep(2000)
これは非常に速い742K/secで実行されました。だから、カフカの生の原料は十分に速く、アクカの流れは速い。だから、犯人は、どのようにリアクションカフカがどのように構築されているか(あるいはそうであるか)、私がそれをどのように使用しようとしているかのいずれかにあります。摩擦のための会計原産のカフカの22K /秒に近い何かを見なければなりません。うーん。
こんにちは、グレッグ、反応性カフカの開発者はここに。私たちは反応性カフカ0.11を完成させています。これはあなたにもっと良いパフォーマンスを与えるはずです。しかし、古いバージョンは、2K /秒よりも優れたパフォーマンスが必要です。コードはまだありますか?私はあなたがどのように反応カフカを使用しているのか見たいと思います。 – kciesielski
残念ながら私はもうそのコードを持っていません。基本的に私は、ドキュメントのサンプルコードからcut'nペーストをしていました...何も想像もできません。 Akkaストリームのソースを作成するために、LateKafka(githubのプロジェクト)を移して開発しました。それは本当に速いです - 私は6フィートのトランザクション/秒のカフカ・スルー・ストリームを些細なストリームで引き出していました。 0.11についての刺激的なニュース。それを試してみるのはクールだ。 – Greg
こんにちはJacek、私は新しい0.11リリースでテストを再構築しました。それはMシリーズよりはるかに高速ですが、私は残念ながら他の人が示した高い数字を再現することはできません。実際の使用例ではストリームDSLを使用していますが、DSLはドキュメントには表示されません。私は別の質問でここにコードを掲示しました:http://stackoverflow.com/questions/39617827/why-dont-i-see-high-performance-with-reactive-kafka-0-11-release – Greg