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

推薦する

インターネット上でウェブサイトを構築するのは複雑ではありません。鍵となるのは、5 つの「本質」を理解することです (パート 2)

前回の記事では、ドメイン名登録の安全性、適時性、適用性について主に説明しました。ウェブマスターがドメ...

ZStack ネットワーク R&D ディレクターの Wang Wei 氏: プライベート クラウドのコンテキストで VPC をカスタマイズする方法

[51CTO.com からのオリジナル記事] 最近、ZStack はネットワーク アーキテクチャ V...

B2B 電子商取引開発会社の分析! B2Bモールシステムの開発・構築の基準は以下のとおりです。

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

クラウドレイヤーはデジタルコラボレーション設計イノベーション機能を実現します

近年、伝統的な製造業の変革と向上は常に中国政府の取り組みの焦点となってきた。今年の政府活動報告は、「...

ウェブマスター年次会議: ウェブマスターと起業家精神について語る

ウェブマスターの年次総会からしばらく経ち、メディアによるニュースも発表され、各ウェブマスターの感想も...

PyramidServer-1gメモリKVM月額支払い6.9ドル/ダラス

Pyramid Server は 2010 年に正式に会社として運営を開始しましたが、その始まりは ...

2つのQunarウェブサイトがQunarドメイン名をめぐって争い、300万元を要求

12月26日、先週12月22日、北京登録のウェブサイトQunar.comが広東登録のウェブサイトqu...

オンサイト最適化におけるアンカーテキストの使用上の注意点について簡単に説明します。

最適化担当者は皆、テキスト リンクと比較したアンカー テキストの役割を深く認識しています。アンカー ...

serversguru: 月額 5.49 ユーロ、2G メモリ/1 コア/20gSSD/20T トラフィック、無料の高防御、オプションでフィンランド/ドイツ/米国

servers.guru、ドメイン名は2017年に登録され、米国ニューメキシコ州に登録された新しい会...

Weiboで宣伝するには?これら4つのポイントを把握しましょう

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス現在、ほぼすべての人が ...

FIT2CLOUDは2018年のガートナー・クールベンダーに選出されました

5月21日、中国の大手クラウド管理プラットフォームおよびサービスプロバイダーであるFIT2CLOUD...

PieLayer - 6 ドル / Kvm / 512 m メモリ / 250 g ハードディスク / 1 T トラフィック / ドイツ

PieLayer というホスティング プロバイダーには、特別割引の VPS が 3 つあります。個人...

公共部門の IT が「主権」クラウドに移行する理由

現在、英国の公共部門は毎年多額の資金を費やしており、そのため大きな責任を負っています。英国国民全員に...

あらゆるクラウドで実行: クラウドの移植性を検討しましたか?

クラウド ポータビリティは、スケーラブルで回復力のあるクラウド ネイティブ アプリケーションを構築す...

Baidu 入札の核心: キーワードのランキングと入札をうまく行う方法

すべての入札専門家が最も懸念している問題は、キーワードのランキングです。毎日出勤するときに最初に行う...