Springboot と Kafka を統合する方法を教える

この記事は、Huawei Cloud Community「Springboot+kafka hand in hand を始める」、著者: QGS から共有されたものです。

カフカをインストールする

Kafka ローカル環境を起動するには Java 8 以降が必要です

Kafka は、Web サイト内の消費者のすべてのアクション ストリーミング データを処理できる、高スループットの分散型パブリッシュ/サブスクライブ メッセージング システムです。

Kafka の起動方法には Zookeeper と Kraft があります。2 つの起動方法のうち 1 つだけを選択でき、同時に使用することはできません。

Kafka のダウンロード https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz

tar -xzf kafka_2.13-3.7.0.tgz を解凍します。

1. Zookeeper が Kafka を起動します (kafka には Zookeeper が組み込まれています)

カフカはZookeeperに依存しています

1. Zookeeper を起動します。 2. Kafka を起動します。

Kafka 独自の Zookeeper の使用を開始する

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

./zookeeper-server-stop.sh ../config/zookeeper.properties

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

./kafka-server-stop.sh ../config/server.properties

2. Zookeeper サーバーが Kafka を起動します

Zookeeperサーバーのインストール

https://zookeeper.apache.org/

https://dlcdn.apache.org/zookeeper/zookeeper-3.9.2/apache-zookeeper-3.9.2-bin.tar.gz

tar zxvf apache-zookeeper-3.9.2-bin.tar.gz

Zookeeperサーバーを構成する

cp 動物園サンプル.cfg 動物園.cfg

Zookeeperサーバーを起動する

./zkServer.sh 開始

Zookeeperポートを変更する

Zoo.cfg にコンテンツを追加する

admin.serverPort=8099

apache-zookeeper-3.9.2-bin/bin ディレクトリで Zookeeper を再起動します

Zookeeper サーバーが Kafka を開始する

/opt/kafka_2.13-3.7.0/bin ディレクトリ

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

Kafka設定ファイルserver.properties

3. KRaft を使用して Kafka を起動する

UUID 世界一意識別子 (Universally Unique Identifier)

1、生成Cluster UUID(集群UUID):./kafka-storage.sh random-uuid

2. Kafka ログ ディレクトリをフォーマットします: ./kafka-storage.sh format -t 3pMJGNJcT0uLIBsZhbucjQ -c ../config/kraft/server.properties

3. kafka を開始します: ./kafka-server-start.sh ../config/kraft/server.properties &

Springboot は Kafka を統合します

トピックの作成時にトピックのパーティション数を指定しない場合、デフォルトは 1 パーティションです。

server.properties ファイルを変更します。

なぜなら、server.properties

リスナー=PLAINTEXT://0.0.0.0:9092

広告.listeners=PLAINTEXT://192.168.68.133:9092

springboot は kafka への依存関係を追加します

<依存関係>
<groupId>org.springframework.kafka</groupId>
<artifactId>スプリングカフカ</artifactId>
</依存関係>

spring-kafka 依存関係を追加すると、springboot は kafkaTemplate の Bean を自動的にアセンブルします。

application.yml は kafka への接続を構成します

春:
カフカ:
ブートストラップサーバー: 192.168.68.133:9092

プロデューサー

メッセージを送ります

@リソース
private KafkaTemplate<String,String> kafkaTemplate;

@テスト
void kafkaSendTest(){
kafkaTemplate.send("kafkamsg01","こんにちはカフカ");
}

消費者

メッセージを受信する

@成分
パブリック クラス KafkaConsumer {

@KafkaListener(トピック = {"kafkamsg01","テスト"},groupId = "123")
public void Consumer(String message){
System.out .println ("受信したメッセージ: "+message);
}

}

グループIDが設定されていない場合

Bean 'org.springframework.kafka.config.internalKafkaListenerEndpointRegistry' の開始に失敗しました。ネストされた例外は java.lang.IllegalStateException です: コンシューマ構成、コンテナー プロパティ、または @KafkaListener アノテーションに group.id が見つかりません。グループ管理を使用する場合は、group.id が必要です。

@成分
パブリック クラス KafkaConsumer {

@KafkaListener(トピック = {"kafkamsg01","テスト"},groupId = "123")
public void Consumer(String message){
System.out .println ("受信したメッセージ: "+message);
}

}

クリックしてフォローし、できるだけ早くHuawei Cloudの新しいテクノロジーについて学びましょう~

マイクロソフトの中国AIチームは数百人を巻き込んで米国に渡ったが、 未知のオープンソースプロジェクトはどれだけの収益をもたらすことができるだろうか? 華中科技大学のオープンソースミラーステーション の立場が調整されたとファーウェイが正式に発表した。 外部ネットワークへのアクセスを正式にオープンしました。 詐欺師は TeamViewer を使用して 398 万件を転送しました。リモート デスクトップ ベンダーは何をすべきでしょうか? 初のフロントエンド視覚化ライブラリであり、Baidu の有名なオープンソース プロジェクト ECharts の創設者である - 有名なオープンソース企業の元従業員が「海に行った」というニュースを伝えた: 部下からの挑戦を受けて、技術者はリーダーは激怒し、無礼になり、妊娠中の女性従業員を解雇しました。OpenAI が AI にポルノ コンテンツを生成させることを検討したと 、Rust Foundation に報告されました。time.sleep (6) の役割を教えてください。 ?
{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/4526289/blog/11140692
おすすめ