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のメジャーアップデートでマルチクラウドの約束を果たした。

推薦する

わかった! VMware/KVM/Dockerはこんな感じ

この記事はWeChatの公開アカウント「プログラミング技術宇宙」から転載したもので、著者はXuany...

A5ウェブマスターネットワーク第8回タオバオアフィリエイトオンライン収益トレーニング登録

トレーニングの紹介タオバオアフィリエイトは現在、オンラインでお金を稼ぐ最も人気のある方法です。また、...

Pinduoduo は電子商取引業界で新記録を樹立しました。そのマーケティング手法についてどれくらいご存知ですか?

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますPindu...

YonSuite:中国のSaaS業界で「リーダー」の役割を果たすことができるか?

中国の情報技術および企業サービス産業のリーダーとして、UFIDA Network は常に業界で求めら...

ユーザーの検索行動とキーワード分析(パート3)

2 番目の記事では、ロングテールキーワードの方がコンバージョン率が高いことをようやく説明しました。し...

JVMランタイムデータ領域、メソッド領域、永続的世代、メタスペースについては本書では明確に説明されていない

この記事はWeChatの公開アカウント「Flying Veal」から転載したもので、著者はVealで...

5Gとエッジコンピューティングが主流になるが、課題も抱える

今後 12 か月間で、5G とエッジ テクノロジーは企業内でさらに深く浸透していきます。 IEEEが...

楽器ウェブサイトのキーワードレイアウトの詳細な分析

ウェブサイトのキーワードレイアウトはウェブサイトにとって非常に重要です。優れたレイアウトは優れた構造...

小紅書ブロガーの抑制と傲慢さ!

張大宜、魏亜、李佳奇…次々と人気が出る神話が世間の注目を集める中、ネットセレブやKOL、ブロガーは「...

SEO初心者のためのよくある質問

画像出典: Tuchong Creative Google SEO を学びたいなら、この記事を注意深...

クラウド コンピューティングは誇大宣伝を生き延びたのでしょうか?

2010 年と 2011 年には、クラウド コンピューティングの明るい未来についての予測がニュースの...

クラウドエンジニアとクラウドアーキテクトが不可欠な理由

あなたはクラウド アーキテクトですか、クラウド エンジニアですか、それともどちらでもありませんか?こ...

ウェブサイトの権威に影響を与えるものは何ですか?

1. 空間の安定性スペースも重量に影響を与える重要な要素です。安定したスペースがなければ、訪問者はど...

革新的な接続性: マルチアクセス エッジ コンピューティングの未来をリード

将来的には、エッジ コンピューティングと人工知能やモノのインターネットなどの新興テクノロジーの融合が...

SEO は不正行為ですか? SEO担当者はこの概念を変えるために努力すべきだ

誰かがブログのスパムコメントについて言及するたびに、それはまた SEO 担当者によるものだと言う人が...