Apache Kafkaとは
Apache Kafkaとはデータパイプラインを構築するOSS(オープンソースソフトウェア)です。
データパイプラインとはその名の通りデータの通り道です。
例えばPowerBIとデータベース間でデータを送受信する際やJavaで書かれたWebアプリケーションからPythonで書かれた機械学習アプリケーションへデータを転送したい場合などに使えるでしょう。
Kafkaを用いずに実装しようとなると、上の例でいえば、まずJava,Pythonアプリケーション双方から内部Socket通信なりを用いた通信を実装しなければなりませんし、さらに一方から送られたデータを確実に相手に届けるような仕組み(同期制御やバックアップ)まで考えなければなりません。その他にもPython機械学習アプリケーションを並列に実行するとなれば、複数プロセスまたは複数ノードにデータを送信することになります。
このようにKafkaがカバーする部分はとても我々の労力を減らしてくれている訳です。
Apache Kafkaの概要
以上の説明を踏まえ以下のURLを読んでみてください。
https://qiita.com/sigmalist/items/5a26ab519cbdf1e07af3#:~:text=Kafka%E6%9C%AC%E4%BD%93%E3%81%AB%E5%90%AB%E3%81%BE%E3%82%8C,%E7%B5%84%E3%81%BF%E8%BE%BC%E3%82%80%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82
Kafkaの終了
今回はAPIではなく直接Kafkaのshファイルを用いて、サーバーを起動しているとします。
Ctrl + Cで終了はするな!
恐らくシェル上でサーバーおよびzookeeperを起動すると2シェル立ち上がっている状態になると思います。ここできちんともう一つさらにシェルを立ち上げ、kafka-server-stop.shおよびzookeeper-server.shを実行しないといけません。
さもないと以降kafka-sever-start.shを実行する際に前回のログのロードに失敗し、立ち上がりません。もしそうなった場合はserverのログを全消去しましょう。ログの位置はserver.propertiesおよびzookeeper.propertiesに書いてあります。