システム開発で思うところ

JavaEEを主にシステム開発をしながら思うところをツラツラを綴る

JJUG ナイトセミナー 「メッセージングミドルウェア特集」に参加してきました #jjug

まとめ

togetter.com


メモ

実運用して分かったRabbit MQの良いところ・気をつけること

  • ブローカー無しのメッセージングはダメ!メッセージングミドル導入は絶対
  • メッセージは標準仕様が使えるよ
  • ロードバランサーはいらないよ(というか それが原因でメッセージロストして大変だったよ)
  • トラフィック統計と大量処理はトレードオフ
  • ディスクIO対策でマスタはHDD、スレーブはメモリ。2年運用しているけど 今のところ大丈夫

40分弱でわかるApache Kafka

CCCでも聞かせていただきましたが、今回は「製品の特長」に特化していた印象です。

  • ストリーミング処理に強みがあるよ
  • 事例が多いよ

以前、話を聞いたところもあり、メモは薄いですが 発表は相変わらず良かったですし、製品の特長も分かりやすかったです。ストリーミング処理基盤が必要だったら迷わずKafkaを選ぶと良さそうだ、と思います。

メッセージキュー「Pulsar」の紹介

登壇者はコミッター。

新卒7年目でコミッター。

  • 3つの中では一番新しい製品だよ
  • Yahooが開発元だよ
  • 高いスループットに耐えられるよ
  • スケーリングに強いよ
  • マルチテナントだよ
  • 環境構築については3つの中では、一番手間かもしれないよ
  • 設定が階層的に継承できるよ
  • Kafkaクライアントラッパーがあるので、Kafkaからの移行も楽だよ*1

感想

ざっくり

  • 手始めにメッセージングを試してみたいなら、標準仕様を備えているRabbit MQ
  • メッセージングによるストリーミング処理を検討しているならKafka
  • 高いスループットが想定するならPulsar
  • 高いスループットを想定しなくても、メッセージングだったらPulsar
  • スケーリングが容易なのはPulsar
  • マルチテナントならPulsar
  • 個人的には使い勝手が良さそうな印象なのはKafka
  • Kafkaクライアントで実装しておいて、状況によりバックヤードはPulsarにするとか、っていうのはアリかも

Yahooという1つの企業で、メッセージングだけでも色々な製品を使っているというのが面白いですね。

なんとなくですがRabbit MQPulsarのマルチテナントの1つに まとまる方向になる気がしました。Kafkaはストリーミング処理への強み(便利さ)などを考えると 下手にまとめない方が良いという印象を受けました。

というような感じで、一言にメッセージングミドルで片づけてしまうところについて、製品特徴を鑑みて「ここには これを適用してみたら?」と思えるようになったのが最大の収穫だったと思います。

*1:そこまでは言っていないけど、そう言っているように思えた