- 追加された行はこの色です。
- 削除された行はこの色です。
kafkaはいろいろなストリームサービスで使われている。
* 目次 [#f86d0707]
#contents
スケールアップの仕組みがあり、大規模化することがあらかじめ設計されている。twitterで使われている。
* このページの目的 [#y832fcb5]
知りたいことや、調べたことや、実験したことをメモしていく
自分のkafka勉強メモです。
Kafkaとは、だれだら流れてくるデータの受け渡しに特化したフレームワークです。
** 参考 twitterのシステムデザイン [#eb59eeb8]
https://pbs.twimg.com/media/FhcfAhnVIAA5ouG?format=png&name=large
これに対してREST通信は、注文リクエストなどのデータ受けわたしが向いていると思います。日本ではREST通信を使った実装の経験者ばかりで、kafkaの導入を提案しても、握りつぶされることがほとんどです。
*** 感想 [#kf2fdb98]
ユーザのデバイスとSocket通信をひらいて、やり取りするのにつかわれている
* 環境構築 [#y4ca4be3]
kafkaで集めたデータをsparkで大規模なデータとして蓄えてAIで処理させる準備をしているのかな?
JHipsterでできるところまで構築してみる
jhipster
といれると、コマンドラインで以下の質問される
Apache Kafka as asynchronous messages broker
これを選ぶとKafkaを非同期のメッセージ受け渡し口として利用できるようにセットアップしてくれる。
npm install
で、
node_modules
がインストールされる
アプリを立ち上げるのに必要なdocker-composeを立ち上げる
とおもったら、このアプリをdockerのイメージにした場合までも想定したdocker-composeファイルだったので、このアプリのdocker-composeのイメージ読込部分はコメントアウトして、without_app.yamlとした。
内容としては、DBとkafka関連が同時に起動するyamlファイルとなっている。
docker-compose -f src/main/docker/without_app.yml up -d
* spring-bootアプリケーションを実行 [#x108d7d3]
spring-bootなので、IDEのSTSにプロジェクトをインポートしてspring-bootアプリケーションを実行してみる
起動するところまでは確認した。
* データを受信 [#y3c98266]
* データを送信 [#v23e03f3]