1.カフカの概要
1.1 カフカの過去と現在
Kafka はもともと LinkedIn の内部インフラストラクチャ システムでした。これは元々、LinkedIn にはデータを保存するためのデータベースやその他のシステムがあったものの、データの継続的なフローの処理に役立つコンポーネントが欠けていたために開発されました。
したがって、設計コンセプトの観点から見ると、開発者は、リレーショナル データベース、Nosql データベース、検索エンジンなどのデータを保存できるシステムを開発するだけでなく、データを継続的に変化し成長するストリームと見なすことも望んでいます。この考えに基づいて、データ システムとデータ アーキテクチャを構築します。
Kafka はメッセージング システムに非常によく似ており、メッセージ ストリームのパブリッシュとサブスクライブが可能ですが、従来のメッセージング システムとは大きく異なります。
- Kafka は、クラスター内で実行され、自由に拡張できる最新の分散システムです。
- Kafka は、必要に応じてデータを保存し、必要な期間だけ保持できます。
- ストリーミング処理は、データ処理のレベルを新しいレベルに引き上げます。メッセージング システムはデータの転送のみを行います。Kafka のストリーミング処理機能により、非常に少ないコードで派生ストリームとデータ セットを動的に処理できます。
Kafka はメッセージ ミドルウェアであるだけでなく、ストリーミング プラットフォームでもあり、このプラットフォームでは、データ ストリーム (Kafka ストリームには別のストリーム処理パッケージがあります) をパブリッシュおよびサブスクライブし、処理のために保存することができます。カフカの作家。
ビッグ データの分野では、Kafka は Hadoop のリアルタイム バージョンと見なすこともできますが、それでもいくつかの違いがあります。Hadoop はテラバイト単位でカウントされる大量のデータ ファイルを保存して定期的に処理できますが、Kafka は保存および定期的に処理できます。大量のデータ ストリームを継続的に処理します。 Hadoop は主にデータ分析に使用されますが、Kafka は待ち時間が短いため、コア ビジネス アプリケーションにより適しています。
1.2 主な目的
- 非同期処理
- アプリケーションの分離
- トラフィックピーククリッピング
- ログ処理
- 分散メッセージ処理
- ストリーミングコンピューティング
2. プリセット環境とソフトウェアの準備
2.1 環境インストールパッケージの要件
- 3 つの仮想マシン (ここでは 5 つの仮想マシンを使用します: kafka01/kafka02/kafka03/kafka04/kafka05)
- CentOS == 7.9
- JDK >=1.8.0_181
- カフカ_2.13-3.2.0
2.2 仮想ホストノードのホスト名を設定する
特に重要ではないので無視して構いません
2.3 hostsファイルの構成
2.4 インストールパッケージをダウンロードする
直接ダウンロード kafka_2.13-3.2.0
仮想マシンへのコマンドは次のとおりです
wget https://archive.apache.org/dist/kafka/3.2.0/kafka_2.13-3.2.0.tgz
2.5 指定したインストールディレクトリに解凍します。
指定したインストール ディレクトリにkafka_2.13-3.2.0
を解凍します
mkdir -p /home/saturn/software/kafka/kafka320
tar -zxf kafka_2.13-3.2.0.tgz -C /home/saturn/software/kafka/kafka320
mv /home/saturn/software/kafka/kafka320/kafka_2.13-3.2.0 /home/saturn/software/kafka/kafka320/kafka
2.6 Kafka システム変数の構成
vim ~/.bashrc
或者vim ~/.bash_profile
或者vim /etc/profile
都可以
#修改成你自己的jdk安装目录
JAVA_HOME=/home/saturn/software/java/jdk8
#修改成你自己的kafka安装目录
KAFKA_HOME=/home/saturn/software/kafka/kafka320/kafka
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$KAFKA_HOME/bin
変更を保存した後、次のコマンドを実行して構成をすぐに有効にします
source ~/.bash_profile
3. Kafka クラスターを構築するいくつかの方法の紹介
3.1. Zookeeper クラスターを使用して Kafka クラスターを構築する
3.1.1. Zookeeper クラスターの設定
kafka_2.13-3.2.0
には、Zookeeper サービスが付属しています。追加の Zookeeper クラスタ サービスを構築する必要はありません。それを使用したくない場合は、独自の Zookeeper クラスタを使用することもできます。
以下では、主に kafka_2.13-3.2.0
組み込みの Zookeeper サービスを使用して Zookeeper クラスタを構築する方法を紹介します
主なことは、$KAFKA_HOME/config/zookeeper.properties を変更することです。Zookeeper クラスタを自分で構築する場合、変更するのは、zoo.cfg 構成ファイルです。変更zookeeper.properties
設定ファイルは次のとおりです。、次のようにクラスタ設定を追加することです。
主なことは、各 Zookeeper ノードのパラメータを設定しdataDir
# the directory where the snapshot is stored.
dataDir=/home/saturn/soft_data/zookeeper_data
# the port at which the clients will connect
clientPort=2181
# disable the per-ip limit on the number of connections since this is a non-production config
maxClientCnxns=0
# Disable the adminserver by default to avoid port conflicts.
# Set the port to something non-conflicting if choosing to enable this
admin.enableServer=false
# admin.serverPort=8080
server.0=kafka01:2888:3888
server.1=kafka02:2888:3888
server.2=kafka03:2888:3888
server.3=kafka04:2888:3888
server.4=kafka05:2888:3888
を変更したら、変更を保存します。他の 4 つのノードの zookeeper.properties
にも同じ変更を加えます。変更が完了したら、保存してください。
次に、設定した Zookeeper データ ストレージ ディレクトリの dataDir ディレクトリに「テキスト ファイル」myid
を作成します。
kafka01
ノードの $dataDir/myid
ファイルの内容は次のとおりです:
0
保存して終了
kafka02
ノードの $dataDir/myid
ファイルの内容は次のとおりです:
1
保存して終了
他の 3 つのノードの設定も上記と同じです。
注: 各ノードの myid ファイルに書き込まれる ID 番号は、zookeeper.properties
で設定された ID 番号と一致している必要があります。 kafka01の場合、myidファイルに書かれるidは0、現在のノードがkafka02の場合、myidファイルに書かれるidは1、ということです。明確に表現されているかはわかりませんが、 。
3.1.2. Zookeeper クラスターの開始
以前に kafka のシステム環境変数を構成したため、kafka の bin ディレクトリにある実行可能シェル スクリプトを直接使用して、kafka の Zookeeper サービスを開始できます。
zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties
または$KAFKA_HOME/config
実行するディレクトリを入力してください
cd $KAFKA_HOME/config
zookeeper-server-start.sh ./zookeeper.properties
kafka のシステム環境変数を設定していない場合は、次の 2 つのコマンドを使用して kafka を開始できます。
cd /你的kafka的安装目录/bin
./zookeeper-server-start.sh ../config/zookeeper.properties
または絶対パスを使用してください
/你的kafka的安装目录/bin/zookeeper-server-start.sh /你的kafka的安装目录/config/zookeeper.properties
上記のいずれかの方法で、kafka01
/kafka02``kafka03``kafka04``kafka05
の Zookeeper サービスを開始します。正常に起動したら、Zookeeper の実行ステータスを確認します
jps
または
ps -ef|grep zookeeper
3.1.3. Kafka クラスターの設定
主なことは、$KAFKA_HOME/config/server.properties を変更することです。変更される主な構成内容には次の項目が含まれます。
次に、 kafka01
を使用します。ノード上での構成変更を例に説明します 他ホストノード (kafka02
、kafka03
、kafka04
、) kafka05
)変更は同様です
##broker节点的唯一标识,集群中的每一台都需要唯一
broker.id=0
##指定 Kafka 代理绑定的网络接口和端口号,以接收来自客户端和其他代理的连接
listeners=PLAINTEXT://kafka01:9092
##指定 Kafka 日志文件的存储目录。Kafka 使用日志来存储消息。
log.dirs=/home/saturn/soft_data/kafka_data/kafka-logs
##存储消费者位移(offsets)的主题的副本因子
offsets.topic.replication.factor=3
##指定用于协调 Kafka 集群的 ZooKeeper 连接字符串
zookeeper.connect=kafka01:2181,kafka02:2181,kafka03:2181,kafka04:2181,kafka05:2181/kafka
##zookeeper连接的超时时间设置
zookeeper.connection.timeout.ms=30000
他のホスト ノード用に変更する必要があるのは、broker.id
と listeners
のドメイン名構成です。他の構成パラメータの調整は後で変更できます。
3.1.4. Kafka クラスターの開始
以前に kafka のシステム環境変数を構成したため、kafka の bin ディレクトリにある実行可能シェル スクリプトを直接使用して、kafka の Zookeeper サービスを開始できます。
kafka-server-start.sh $KAFKA_HOME/config/server.properties
または$KAFKA_HOME/config
実行するディレクトリを入力してください
cd $KAFKA_HOME/config
kafka-server-start.sh ./server.properties
kafka のシステム環境変数を設定していない場合は、次の 2 つのコマンドを使用して kafka を開始できます。
cd /你的kafka的安装目录/bin
./kafka-server-start.sh ../config/server.properties
または絶対パスを使用してください
/你的kafka的安装目录/bin/kafka-server-start.sh /你的kafka的安装目录/config/server.properties
上記のいずれかの方法でkafka01
/kafka02``kafka03``kafka04``kafka05
のブローカー サービスを開始します。正常に起動したら、kafka の実行ステータスを確認します
jps
または
ps -ef|grep kafka
上記の手順により、ZooKeeper で Kafka クラスターをセットアップする操作が完了しました。プロセス全体も非常に簡単ですが、特にクラスターのパラメーター構成を変更する場合は注意が必要です。数回練習するだけです。
3.2. kraft を使用して Kafka クラスターを構築する
kafka は、バージョン 3.x 以降の Zookeeper を使用する分散調整機能を置き換える別の方法を提供します。これは、< を使用したい場合kraft
、
です。 /span>kraft
は、kafka クラスターを操作します。次の手順に従って操作を構成できます。
3.2.1.kraft設定ファイル
kafka インストール ディレクトリの下に ディレクトリがあります kafka を開始するために kraft を使用する必要がある場合、このディレクトリにある構成ファイルを変更する必要があります Kafka クラスターを構築するために変更する必要がある構成パラメーターについて説明します。 config
kraft
kafka
ここではkafka01
デモンストレーションに使用します
マシン上のファイルを変更kafka01
します。config/kraft/server.properties
、一部のパラメータは必要に応じて変更する必要があります
process.roles=broker,controller
#这里需要修改
node.id=1
#这里需要修改(我这里kafka集群一共5台节点。所以这里配置的是5个, 你有多少个就配置多少个)
controller.quorum.voters=1@kafka01:9093,2@kafka02:9093,3@kafka03:9093,4@kafka04:9093,5@kafka03:9093
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
inter.broker.listener.name=PLAINTEXT
#这里需要修改(这里需要根据当前节点的域名或者IP进行修改,如果是kafka01就修改成kafka01的域名或者公网IP)
advertised.listeners=PLAINTEXT://kafka01:9092
controller.listener.names=CONTROLLER
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
#这里需要修改(修改成你自定义的kraft日志存储目录)
#log.dirs=/tmp/kraft-combined-logs
#log.dirs=/home/saturn/soft_data/zookeeper_data/kraft-combined-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
他の 4 台のマシンの advertised.listeners
と node.id
も変更する必要があります
3.2.2.kraft は Kafka クラスターを初期化します
クラスターデータディレクトリを初期化します。
kafka-storage.sh random-uuid
ランダムなclusterId文字列が生成されます。これは次のコマンドで使用する必要があります。
各マシンは以下を実行します。
##此处-t参数后面跟的字符串就是上面生成的随机的clusterId字符串
bin/kafka-storage.sh format -t EzhjsV8IS3SwDFK42SbSnA -c $KAFKA_HOME//config/kraft/server.properties
#Kafka クラスターの開始
kafka-server-start.sh -daemon $KAFKA_HOME/config/kraft/server.properties
4. Kafkaコマンドライン操作デモ
4.1. Kafka でのトピックスクリプトパラメータの説明と使用例
4.1.1.kafka-topics.sh パラメータの説明
パラメータ名 | それは義務ですか? | 説明する |
---|---|---|
–ブートストラップサーバー | はい | Kafka ブローカーのアドレスとポート番号を指定します |
-作成する | いいえ | 新しいテーマを作成する |
-リスト | いいえ | 現在の Kafka クラスター内のすべてのトピックをリストします。 |
-トピック | いいえ | 作成または操作するトピックの名前を指定します |
-説明する | いいえ | パーティションやレプリカの割り当てなど、指定したトピックに関する詳細情報を表示します。 |
-消去 | いいえ | 指定されたトピックを削除します |
-力 | いいえ | 強制削除。トピックを削除するときに確認プロンプトは必要ありません |
–存在しない場合 | いいえ | テーマの作成時に設定すると、テーマがまだ存在しない場合にのみ操作が実行されます。 |
–if-存在する場合 | いいえ | トピックを変更、削除、または説明するときに設定すると、その操作はトピックが存在する場合にのみ実行されます。 |
–パーティション | いいえ | トピックに対して作成するパーティションの数を指定します |
–レプリケーション係数 | いいえ | トピックのレプリケーション係数を指定します。これは、パーティションごとのレプリカの数です。 |
-バージョン | いいえ | Kafkaのバージョン番号を確認する |
-ヘルプ | いいえ | kafka-topics.sh のパラメータ オプションの説明を表示します。 |
4.1.2.kafka-topics.sh の実用的な使用例
- すべてのトピックをリストする
kafka-topics.sh --bootstrap-server localhost:9092 --list
上記のコマンドでシステム環境変数を設定している場合は、cd
コマンドを使用して Kafka インストール パスの bin ディレクトリに切り替えてから実行してください。
- トピックtest01の詳細をリストする
kafka-topic.sh --bootstrap-server localhost:9092 --topic test01 --describe
外部ネットワーク上の kafkaClient から作成したトピックにアクセスする場合は、--bootstrap-server
を設定するときに 当前节点的域名:9092
または < を使用するのが最善です。 /span>公网IP:9092
でトピックを作成する場合、以下のトピック操作コマンドとプロデューサー側、コンシューマー側の操作は同じですので、知っておいてください。
上記のコマンドでシステム環境変数を設定している場合は、cd
コマンドを使用して Kafka インストール パスの bin ディレクトリに切り替えてから実行してください。
- トピック名 test02、1 コピー、1 パーティションを作成します
kafka-topics.sh --bootstrap-server localhost:9092 --create --topic test02 --replication-factor 1 --partitions 1
上記のコマンドでシステム環境変数を設定している場合は、cd
コマンドを使用して Kafka インストール パスの bin ディレクトリに切り替えてから実行してください。
- test01 という名前のトピックを作成します (存在しない場合は作成します)
kafka-topics.sh --bootstrap-server localhost:9092 --create --topic test02 --replication-factor 1 --partitions 1 --if-not-exists
上記のコマンドでシステム環境変数を設定している場合は、cd
コマンドを使用して Kafka インストール パスの bin ディレクトリに切り替えてから実行してください。
- トピック test02 のパーティション数を 1 から 2 に変更します (注: パーティションは削除できません)
kafka-topics.sh --bootstrap-server localhost:9092 --alter --topic test01 --partitions 2
上記のコマンドでシステム環境変数を設定している場合は、cd
コマンドを使用して Kafka インストール パスの bin ディレクトリに切り替えてから実行してください。
**説明:** 一部の学生は、上記の削除できないパーティションについて、なぜ削除できないのかを理解できないかもしれません。なぜなら、メッセージはすべてパーティションに配信され、パーティションへのメッセージの配信戦略がランダムであるためです。現在のトピックが使用されると、メッセージがどのパーティションに配置され、消費されたかどうかを判断できません。この時点でパーティションが削除された場合、メッセージが正常に消費されるという保証はなく、データが失われます。 . これは私たちには受け入れられないため、パーティションは拡張のみ可能であり、縮小はできません。
-
存在しないトピックtest03を削除します
-
トピックtest02を削除します(test02という名前のトピックがある場合は削除します)
4.2.kafka でのプロデューサー スクリプトのパラメーターの説明と使用例
kafka-console-producer.sh
は、コンソールから Kafka トピックにメッセージを送信するために Kafka によって提供されるコマンド ライン ツールです。
4.2.1.kafka-console-Producer.sh パラメータの説明
パラメータ名 | それは義務ですか? | 説明する |
---|---|---|
--broker-list (3.x では非推奨) | はい | Kafka ブローカーのアドレスとポート番号を指定します。複数のブローカーはカンマで区切られます (バージョン 3.x は廃止されました。-boostrap-server を使用してください)。 |
–ブートストラップサーバー | はい | Kafka ブローカーのアドレスとポート番号を指定します。複数のブローカーはカンマ () で区切られます。 |
-トピック | はい | メッセージを送信するトピック名を指定します |
–圧縮コーデック | いいえ | メッセージ圧縮コーデックを設定します。オプションの値は「none」、「gzip」、「snappy」または「lz4」です。 |
–同期 | いいえ | 各メッセージはサーバーからの確認を待ってから次のメッセージを送信します |
-タイムアウト | いいえ | メッセージ送信のタイムアウトをミリ秒単位で設定します。 |
-バッチサイズ | いいえ | プロデューサがブローカーに送信する前に待機するメッセージの累積サイズ。バッチ サイズを大きくするとスループットは向上しますが、待ち時間が長くなる可能性があります。デフォルト値は 16KB です。 |
–最大メッセージサイズ | いいえ | 送信メッセージの最大サイズ制限を設定する |
-財産 | いいえ | プロデューサーのプロパティを設定する |
-ヘルプ | いいえ | このコマンドは、パラメーターの説明や使用例を含む、kafka-console-Producer.sh の完全なヘルプ ドキュメントを表示します。 |
Kafka プロデューサーには、その動作とパフォーマンスを制御するいくつかの構成パラメーターがあります。以下は、Kafka プロデューサのいくつかの一般的な構成パラメータとその説明です。
パラメータ名 | 説明する |
---|---|
ブートストラップ.サーバー | Kafka クラスターへの接続を確立するために使用される Kafka ブローカーのアドレスとポートのリスト。例えば:bootstrap.servers=localhost:9092 |
ありがとう | プロデューサがメッセージの送信後に受信する必要がある確認の数を指定します。オプションの値は次のとおりです。 0: プロデューサは確認を待たずに、メッセージを直接送信します。これは遅延が最も低く、スループットが最も高い構成ですが、メッセージの損失が発生する可能性があります。 1: プロデューサは、プライマリ パーティション (リーダー) でメッセージを受信した後、確認を受け取ります。これにより信頼性は向上しますが、メッセージが失われるリスクは依然としてあります。 all: すべてのレプリカがメッセージを受信した後、プロデューサーは確認応答を受け取ります。これは最も安全な構成ですが、待ち時間が長くなります。 |
再試行 | メッセージ送信時の再試行回数。メッセージの配信が失敗した場合、プロデューサーは自動的に再試行します。デフォルト値は 0 で、再試行は実行されないことを意味します。 |
バッチサイズ | プロデューサがブローカーに送信する前に待機するメッセージの累積サイズ。バッチ サイズを大きくするとスループットは向上しますが、待ち時間が長くなる可能性があります。デフォルト値は 16KB です。 |
linger.ms | バッチを送信する前にプロデューサーが待機する時間を制御します。値を大きくすると、バッチ サイズとスループットが増加しますが、待ち時間が多少犠牲になります。デフォルト値は 0 で、待機しないことを意味します。 |
バッファ.メモリ | プロデューサが送信するメッセージをバッファリングするために使用する合計メモリ サイズ。このバッファは、サーバーにまだ送信されていないメッセージを保存するために使用されます。デフォルト値は 32MB です。 |
圧縮の種類 | メッセージの圧縮タイプを指定します。オプションの値は次のとおりです: - none : メッセージを圧縮しません。 - gzip : GZIP 圧縮アルゴリズムを使用してメッセージを圧縮します。 - snappy : Snappy 圧縮アルゴリズムを使用してメッセージを圧縮します。 - lz4 : LZ4 圧縮アルゴリズムを使用してメッセージを圧縮します。 |
接続あたりのフライト中の最大リクエスト数 | プロデューサが確認応答を受信する前に送信できる未確認リクエストの最大数を制御します。値を大きくするとスループットが向上しますが、メッセージの順序が変更される可能性があります。デフォルト値は 5 です。 |
最大リクエストサイズ | 単一メッセージの最大サイズを制御します。デフォルト値は 1MB です。 |
キー.シリアライザー | 指定されたキーシリアライザークラス。これらのシリアライザーは、キーと値のオブジェクトを送信用のバイト配列に変換します。 |
値.シリアライザー | 値シリアライザークラスを指定します。これらのシリアライザーは、キーと値のオブジェクトを送信用のバイト配列に変換します。 |
その他の構成パラメータについては、「Apache Kafka Procuder Configs」 を参照してください。
4.2.2.kafka-console-Producer.sh の実用的な使用例
- プロデューサー コンソールの作成 (すべてデフォルト パラメーターを使用)
kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test01
上記のコマンドでシステム環境変数を設定している場合は、cd
コマンドを使用して Kafka インストール パスの bin ディレクトリに切り替えてから実行してください。
- プロデューサー コンソールを作成します (メッセージを同期的に送信するように設定され、各メッセージはサーバーによる確認を待ってから次のメッセージを送信します)
kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test01 --sync
上記のコマンドでシステム環境変数を設定している場合は、cd
コマンドを使用して Kafka インストール パスの bin ディレクトリに切り替えてから実行してください。
- プロデューサー コンソールの作成 (他のプロパティを設定)
kafka-console-producer.sh --broker-list localhost:9092 --topic test01 --property acks=all --property retries=3
上記のコマンドでシステム環境変数を設定している場合は、cd
コマンドを使用して Kafka インストール パスの bin ディレクトリに切り替えてから実行してください。
4.3.kafkaのコンシューマスクリプトパラメータの説明と使用例
kafka-console-consumer.sh
これは、Kafka トピックからのメッセージを使用するために Kafka によって提供されるコマンド ライン ツールです。
4.3.1.kafka-console-consumer.sh パラメータの説明
パラメータ名 | それは義務ですか? | 説明する |
---|---|---|
–ブートストラップサーバー | はい | Kafka ブローカーのアドレスとポート番号を指定します。複数のブローカーはカンマ () で区切られます。 |
-トピック | はい | メッセージを消費するトピック名を指定します |
-初めから | いいえ | コンシューマ グループのオフセットがすでに存在する場合でも、トピックの先頭からメッセージの消費を開始します。 |
–consumer.config | いいえ | コンシューマ構成ファイルを指定する |
-パーティション | いいえ | 消費するパーティション番号を指定します |
-グループ | いいえ | コンシューマが属するコンシューマ グループを指定します。 |
-オフセット | いいえ | メッセージの消費を開始するオフセットを指定します |
–最大メッセージ数 | いいえ | 消費するメッセージの最大数を指定する |
–タイムアウトミリ秒 | いいえ | 新しいメッセージがない場合にコンシューマーが待機するタイムアウト (ミリ秒単位) を設定します。 |
-財産 | いいえ | コンシューマプロパティを設定する |
-ヘルプ | いいえ | このコマンドは、パラメーターの説明や使用例を含む、kafka-console-Producer.sh の完全なヘルプ ドキュメントを表示します。 |
Kafka コンシューマーには、その動作とパフォーマンスを制御するいくつかの構成パラメーターがあります。以下は、Kafka プロデューサのいくつかの一般的な構成パラメータとその説明です。
パラメータ名 | 説明する |
---|---|
ブートストラップ.サーバー | Kafka クラスターへの接続を確立するために使用される Kafka ブローカーのアドレスとポートのリスト。例えば:bootstrap.servers=localhost:9092 |
グループID | コンシューマが属するコンシューマ グループの一意の識別子。コンシューマはグループ ID によって調整され、メッセージの分割と負荷分散を実現します。 |
自動コミットを有効にする | 消費オフセット(オフセット)の自動提出を有効にするかどうかを指定します。 true に設定すると、コンシューマはディスプレイスメントを定期的に自動的に送信します。false に設定すると、コンシューマはディスプレイスメントを手動で送信する必要があります。デフォルト値は true です。 |
auto.commit.interval.ms | 自動ディスプレイスメント送信の時間間隔 (ミリ秒)。 Enable.auto.commit が true に設定されている場合にのみ有効です。デフォルト値は 5000 ミリ秒です。 |
フェッチ分バイト数 | プル リクエストあたりの最小バイト数。利用可能なデータがこの値よりも少ない場合、コンシューマはさらに多くのデータが到着するまで待機します。デフォルト値は 1 です。 |
fetch.max.wait.ms | サーバーからデータを取得するまで待機する最大時間 (ミリ秒)。指定された時間内にデータが利用できない場合、コンシューマは空の結果を返します。デフォルト値は 500 ミリ秒です。 |
最大ポーリングレコード数 | poll() メソッドが呼び出されるたびに返されるレコードの最大数。この値は、各ポーリング中に処理できるレコードの最大数を制限します。デフォルト値は 500 です。 |
自動オフセットリセット | コンシューマが最初にコンシューマ グループに参加したとき、または利用可能なディスプレイスメントがないときに動作をリセットします。オプションの値は次のとおりです。 earliest: 利用可能な最も早いディスプレイスメントから消費を開始します。 latest: 最新の利用可能なディスプレイスメントから消費を開始します。 none: 使用可能なディスプレイスメントがない場合、例外がスローされます。 |
キー.シリアライザー | 指定されたキーシリアライザークラス。これらのシリアライザーは、キーと値のオブジェクトを送信用のバイト配列に変換します。 |
値.シリアライザー | 値シリアライザークラスを指定します。これらのシリアライザーは、キーと値のオブジェクトを送信用のバイト配列に変換します。 |
その他の構成パラメータについては、Apache Kafka Consumer Configs をご覧ください。
4.3.2.kafka-console-consumer.sh の実用的な使用例
- コンシューマーコンソールを作成します (すべてデフォルトパラメータを使用)
kafka のインストール ディレクトリの下にある config ディレクトリ (例: /opt/bigdata/kafka/config) に入力し、コマンドを実行します (ここでは、最初に kafka のシステム変数を設定する必要があります。つまり、kafka の bin ディレクトリをシステム環境変数、および java /go/python 構成システム環境変数は同じです)
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test01 --from-beginning --consumer.config ./consumer.properties
上記のコマンドでシステム環境変数を設定している場合は、cd
コマンドを使用して Kafka インストール パスの bin ディレクトリに切り替えてから実行してください。
プロデューサー側がメッセージを生成する
コンシューマ側でのメッセージの消費
4.5.kafka起動コマンド
kafka-server-start.sh -deamon $KAFKA_HOME/config/server.properties
上記のコマンドでシステム環境変数を設定している場合は、cd
コマンドを使用して Kafka インストール パスの bin ディレクトリに切り替えてから実行してください。
4.4.kafka停止コマンド
kafka-server-stop.sh
上記のコマンドでシステム環境変数を設定している場合は、cd
コマンドを使用して Kafka インストール パスの bin ディレクトリに切り替えてから実行してください。