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

推薦する

初心者ウェブマスターはSEOの前に自分自身を「最適化」する必要がある

インターネットの発展とザッカーバーグのような起業家の成功により、ウェブマスター業界に参入する若者が増...

みなさん、建国記念日おめでとうございます!

建国記念日おめでとうございます!あなたと私たちの祖国に祝福がありますように!それは私が年をとったから...

簡単な分析:農業サービス企業のウェブサイトはオンラインマーケティングをどのように実行しますか?

関連データによると、「2013年末までに、中国のインターネットユーザー数は10億人を超え、インターネ...

個人SEOの依頼を受ける際は、誇張せず現実的に

著者は3年間SEOに携わっています。最初の2年間は主に自分のサイトを最適化していました。1つは実践し...

628Kの後にウェブサイトを復元した方法

(記事が長いため、一部だけ抜粋しました)正確に言うと、私のウェブサイトは7月8日以降ブロックされまし...

知っておくべきハイブリッドクラウドのベストプラクティス

ハイブリッドクラウドとは、パブリッククラウドとプライベートクラウドを組み合わせて企業内のさまざまな機...

あなたのウェブサイトを画像で表現しましょう

最近、SEO 最適化は厄介なグレーゾーンに入っているようです。検索エンジンは絶えず改良され、アルゴリ...

Baiduスナップショットの不完全なキャプチャ事例の分析

Baidu は長い間、ポータル サイトのホームページのスナップショットのキャプチャが不完全であるとい...

ライセンスか消費習慣か、海外のクラウドベンダーが中国市場に参入する際に直面する壁はどちらでしょうか?

数日前、有名なアマゾンAWSが光環新網絡に20億元(分割払い)を超えない金額で買収され、業界で大きな...

NFV+SDNクラウドネットワーク連携によりVNFの完全自動展開を実現

[[232049]] 1. 事業者はデジタル変革プロジェクトを通じて競争力を高め、将来の事業成長をサ...

基本概念、アーキテクチャ、新バージョンへのアップグレード - Kafka 知識システム (I)

[[408780]]コンセプトKafka は、LinkedIn によって最初に開発され、Scala ...

バンワゴンの払い戻しに関する詳細な手順

レンガ職人は払い戻しを受けることができますか?レンガ職人の返金を受けるにはどうすればいいですか?レン...

Baidu Statisticsは役に立つのか?Baidu Statisticsのメリットとデメリットの紹介

これはBaidu統計に関する記事です。ウェブサイト運用関連の分野で働く人であれば、誰でもウェブサイト...

初心者 SEO 担当者が語る: ユーザー エクスペリエンスを向上させる方法を本当に知っていますか?

SEO 担当者がユーザー エクスペリエンスを改善したいとよく言います。では、ユーザー エクスペリエン...

Outlook.com はわずか 2 週間でユーザー数が 1,000 万人を超えました

著者: 周普The Verge によると、Microsoft の SkyDrive チームは、Out...