Spring Boot と Kafka を実際に使ってみましょう。

Spring Boot と Kafka を実際に使ってみましょう。

Kafka クラスターのインストール、構成、起動

Kafka は Zookeeper に依存する必要があり、Zookeeper 自体を統合します。 Zookeeper では、クラスターの高可用性を確保するために少なくとも 3 つのノードが必要です。以下は、単一の Linux マシンで 3 つの Kafka ノードの疑似クラスター モードを作成する方法です。

1. パッケージをダウンロードする

ダウンロードアドレス: http://kafka.apache.org/downloads

2. パッケージを解凍する

  1. tar -zxvf kafka_2.11-1.0.0.tgz\mv kafka_2.11-1.0.0 kafka1\mv kafka_2.11-1.0.0 kafka2\mv kafka_2.11-1.0.0 kafka3

3. ZKクラスターを作成する

ZK 構成ファイル kafka1-3/config/zookeeper.properties を変更し、対応するパラメータをそれぞれ変更します。

  1. データディレクトリ=/usr/ローカル/kafka/zookeeper1
  2. dataLogDir=/usr/ local /kafka/zookeeper/log
  3. クライアントポート=2181
  4. 最大クライアント接続数=0
  5. ティックタイム=2000
  6. 初期制限=100
  7. 同期制限=5
  8. サーバー1=127.0.0.1:2888:3888
  9. サーバー2=127.0.0.1:4888:5888
  10. サーバー3=127.0.0.1:6888:7888

/usr/local/kafka/zookeeper1-3ディレクトリにそれぞれmyidファイルを作成し、内容は1〜3に対応します。

ZK を起動し、それぞれ Kafka1-3 ディレクトリに移動します。

  1. bin/zookeeper-server-start.sh config/zookeeper.properties &

起動レポート ファイルが失敗しました。ファイル ディレクトリを手動で作成し、対応する権限を付与する必要があります。

4. Kafka クラスターを作成する

設定ファイル: kafka1-3/config/server.properties、それぞれ対応するパラメータを変更します。

  1. ブローカーID=1
  2. zookeeper.connect = ローカルホスト:2181、ローカルホスト:2182、ローカルホスト:2183
  3. リスナー=プレーンテキスト://192.168.12.11:9091
  4. log.dirs=/tmp/kafka-logs-1

Kafka を起動し、それぞれ Kafka1-3 ディレクトリに移動します。

  1. bin/kafka-server-start.sh config/server.properties &

起動レポート ファイルが失敗しました。ファイル ディレクトリを手動で作成し、対応する権限を付与する必要があります。

5. クラスターテスト

kafka1 にメッセージを送信:

  1. bin/kafka-console-producer.sh --broker-list localhost:9091 --topic テスト 

kafka2 および kafka3 でメッセージを消費します。

  1. bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic 私のレプリケートされたトピック 

Spring Boot 統合 Kafka プラクティス

1. spring-kafka依存関係を追加する

  1. <spring-kafka.version>2.1.0.RELEASE</spring-kafka.version>
  2.  
  3. <! --スプリングカフカ-->  
  4. <依存関係>
  5. <groupId>org.springframework.kafka</groupId>
  6. <artifactId>スプリングカフカ</artifactId>
  7. <バージョン>${spring-kafka.version}</バージョン>
  8. </依存関係>

2. Spring Bootの自動構成を追加する

自動構成クラス:

  • org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration

構成プロパティクラス:

  • org.springframework.boot.autoconfigure.kafka.Kafkaプロパティ
  1. 春:
  2. カフカ:
  3. ブートストラップサーバー:
  4. - 192.168.101.137:9091
  5. - 192.168.101.137:9092
  6. - 192.168.101.137:9093
  7. プロデューサー:
  8. 再試行: 0
  9. バッチサイズ: 16384
  10. バッファメモリ: 33554432
  11. キー-serializer: org.apache.kafka.common.serialization.StringSerializer
  12. 値シリアライザー: org.apache.kafka.common.serialization.StringSerializer
  13. 消費者:
  14. グループID: foo
  15. 自動オフセットリセット: 最も早い
  16. 自動コミットを有効にする: true  
  17. 自動コミット間隔: 100
  18. キー-deserializer: org.apache.kafka.common.serialization.StringDeserializer
  19. 値デシリアライザー: org.apache.kafka.common.serialization.StringDeserializer

3. メッセージを送信する

  1. オートワイヤード
  2. プライベート KafkaTemplate kafkaTemplate;
  3.  
  4. @GetMapping( "/送信" )
  5. パブリックオブジェクト送信(文字列メッセージ) {
  6. kafkaTemplate.send( "テスト" , "名前" , msg);
  7. 戻る  「送信OK」 ;
  8. }

4. メッセージを受信する

任意の Bean で、メッセージの受信をサポートするために @KafkaListener を追加します。

  1. @KafkaListener(トピック = "テスト" )
  2. パブリックvoid processMessage(文字列コンテンツ) {
  3. logger.info( "受信したメッセージ、トピック:テスト、メッセージ:{}" 、コンテンツ);
  4. }

<<:  クラウドデスクトップ時代の新しい標準、デュアルエンジン

>>:  GoogleはAWSをサポートするAnthosのメジャーアップデートでマルチクラウドの約束を果たした。

推薦する

数秒で新しいウェブサイトをBaiduに掲載するための代替方法

最近、中国のウェブマスターフォーラムを閲覧していたところ、多くの初心者ウェブマスターが解決が難しい問...

#苦情防止 VPS# hostsolutions-著作権なし/ルーマニア/年間 11 ドル/メモリ 1G/ハードディスク 30g/トラフィック 10T

Hostsolutions は、ルーマニアのデータセンターを拠点とする 2 つの新しい安価な VPS...

mycustomhosting-20 USD/年/512M メモリ/KVM/20G ハードディスク/500G トラフィック

MyCustom Hosting のプロモーション版 VPS をお勧めします。米国とカナダにデータ ...

#ニュース# Linode が CPU を一日中独占できる新しいスタンドアロン CPU VPS を追加

4 時間前、Linode は最新ニュース「Linode 専用 CPU インスタンス」を正式にリリース...

Docker セキュリティのためのトップ 10 のオープン ソース ツール

[51CTO.com クイック翻訳] コンテナのセキュリティに関しては、Tesla が経験したような...

福州警察はフィッシングサイトのソースコードを作成して販売していたグループを壊滅させた

記者が昨日、市公安局から得た情報によると、警察は6か月以上の綿密な捜査を経て、1日にフィッシングサイ...

あなたの SEO の観点は完全に正しいですか?

今日、A5 で「Baidu スナップショットの意義の分析」という記事を見ました。スナップショットが私...

SEO 関連性分析の観点から、Google は Twitter に影響を与えているのでしょうか、あるいはその逆でしょうか?

SEO 実践者が追いかけ、ウェッジホッピングし、調査し、疑問に思い、そして迷っていることの 1 つは...

WeChatが再びSogou Searchをリリース。テンセントはなぜいつも自社の弱点を利用して他社の強みを攻撃するのでしょうか?

BAT間の競争はインターネット業界の誰もがよく知っている。百度の検索、アリババの電子商取引、テンセン...

ウェブブックマークはもはやSEOの重みを転送する効果を持たない

主なオンラインブックマークには、楽首、喜望峰、QQブックマーク、百度コレクション、アンソロジー、宝箱...

ソフトコピーライティングの芸術:公然と板張りの道路を修復しながら、秘密裏に陳倉を渡る

ソフト記事プロモーションは、最近のSEOプロモーターがよく使用するプロモーション方法です。多くのSE...

開封されていないメールはいくつありますか? メールはどのようにしてユーザーを「遠ざけ」ていますか?

翻訳者注:マーケティングメールは私たちにとっては珍しいものではありません。おそらくあなたのメールボッ...

ミンスグループ:スマートエンタープライズを構築するためのデジタルエンパワーメント

自動車メーカーは、電動化、インテリジェンス、ネットワーク化、シェアリングという新たな4つのトレンドに...