Kafka構成1-Windows環境にKafkaをインストールして構成します
Kafka構成2-WindowsでKafkaSASL-PLAIN認証を構成します
Kafka構成3-WindowsでKafkaクラスターを構成します
Kafka構成4-WindowsでKafkaSSL証明書を構成します
Kafka構成5-WindowsでKafkaクラスター+ SASL + SSLを構成します
Kafka構成6-SASLユーザーまたはWindowsでのユーザー権限の設定と追加
1. Zookeeperの構成
ここでは、例として同じサーバー上の3セットのZookeeperの構成を取り上げ、Zookeeperをそれぞれ次の3つのディレクトリにインストール
します
。D:\ Net_Program \ Net_Zookeeper
D:\ Net_Program \ Net_Zookeeper2
D:\ Net_Program \ Net_Zookeeper3
1.1、編集zoo.cfg
zoo.cfgファイル(最初のサーバー)を開き、次の構成を変更または追加します。
# 存放数据
dataDir=D:/Net_Program/Net_Zookeeper/data-file
# 存放日志
dataLogDir=D:/Net_Program/Net_Zookeeper/data-log
# 监听端口
clientPort=2181
# 配置集群服务
server.1=192.168.2.200:2881:3881
server.2=192.168.2.200:2882:3882
server.3=192.168.2.200:2883:3883
注:
server.1の1は、各サーバーの一意のIDを表します。Zookeeper、値は1〜255の間のみです。localhost
は各クラスターサーバーのIPアドレスです
。2888は通信ポートです
。3888は選択ポートです
。2番目と3番目のサーバー構成は次のとおりです
。
# 存放数据
dataDir=D:/Net_Program/Net_Zookeeper2/data-file
# 存放日志
dataLogDir=D:/Net_Program/Net_Zookeeper2/data-log
# 监听端口
clientPort=2182
# 配置集群服务
server.1=192.168.2.200:2881:3881
server.2=192.168.2.200:2882:3882
server.3=192.168.2.200:2883:3883
3番目のステーション:
# 存放数据
dataDir=D:/Net_Program/Net_Zookeeper3/data-file
# 存放日志
dataLogDir=D:/Net_Program/Net_Zookeeper3/data-log
# 监听端口
clientPort=2183
# 配置集群服务
server.1=192.168.2.200:2881:3881
server.2=192.168.2.200:2882:3882
server.3=192.168.2.200:2883:3883
形式:server.A = B:C:D
A:は番号であり、番号を示します。サーバー
B:サーバーIPアドレス
C:はポート番号であり、クラスターメンバー間の情報交換に使用され、サーバーとクラスター内のリーダーを表します。サーバーが情報を交換する
ためのポートD:リーダーがハングしたときにリーダーの選出に使用されるポートです。
1.2。myidファイルを作成します。
クラスターを構築するためにここにいるので、
以前にzoo.cfgで次のようなデータストレージパスフォルダーを指定したため、myidファイルを作成する必要があります。dataDir= D:/ Net_Program / Net_Zookeeper / data- file
したがって、ここでは、フォルダdata-fileにmyidという名前の新しいファイルを作成するだけで済みます。内容は、1.1で説明したserver.1、server.2、server.3の1、2、または3です。
つまり
、Dです。 :\ Net_Program \ Net_Zookeeper \ data-file myid(接尾辞なし)という名前の新しいファイルを作成し、内容は1です
。D:\ Net_Program \ Net_Zookeeper2 \ data-fileにmyid(接尾辞なし)という名前の新しいファイルを作成し、内容は2です。
D:\ Net_Program \ Net_Zookeeper3 \ data-fileにmyid(サフィックスなし)という名前の新しいファイルを作成します。内容は3です。
1.3。サービスを開始
する管理者としてCMDを実行し(3を開いて3つのZookeeperサービスを開始)、3つのZookeeperインストールディレクトリの下にあるbinディレクトリを見つけ、3つのウィンドウでzkServiceコマンドを入力してこれらの3つを開始します。 Zookeeperサービス
次に、次のコマンドを使用して、3つのZookeeperサービスが開始されているかどうかをテストできます。開いている場合は、起動が成功していることを意味します
nc -vz 192.168.2.200 2181
nc -vz 192.168.2.200 2182
nc -vz 192.168.2.2002183
ここで3つのZookeeperサービスをWindowsシステムサービスとして設定できます
概要:
上記の構成プロセスは「クラスターモード」と呼ばれます。つまり、Zookeeperは3つのサーバーすべてで構成されます(上記の例は同じサーバーで示されてい
ます)「クラスター疑似配布モード」と呼ぶ別の方法があります。 "、つまり、同じサーバー上で3 Zookeeper
1.4を構成し、疑似配布モード
1.4.1をクラスター化し、構成ファイル
を変更して、confディレクトリの下のzoo.cfgを同じディレクトリに3回コピーし、それらにzoo1.cfg、zoo2.cfg、zoo3という名前を付けます。 cfg、次のように3つのファイルを変更します
。zoo1.cfg:
# 存放数据
dataDir=D:/Net_Program/Net_Zookeeper/data-file/data1
# 存放日志
dataLogDir=D:/Net_Program/Net_Zookeeper/data-log/log1
# 监听端口
clientPort=2181
# 配置集群服务
server.1=192.168.2.200:2881:3881
server.2=192.168.2.200:2882:3882
server.3=192.168.2.200:2883:3883
zoo2.cfg:
# 存放数据
dataDir=D:/Net_Program/Net_Zookeeper/data-file/data2
# 存放日志
dataLogDir=D:/Net_Program/Net_Zookeeper/data-log/log2
# 监听端口
clientPort=2182
# 配置集群服务
server.1=192.168.2.200:2881:3881
server.2=192.168.2.200:2882:3882
server.3=192.168.2.200:2883:3883
zoo3.cfg:
# 存放数据
dataDir=D:/Net_Program/Net_Zookeeper/data-file/data3
# 存放日志
dataLogDir=D:/Net_Program/Net_Zookeeper/data-log/log3
# 监听端口
clientPort=2183
# 配置集群服务
server.1=192.168.2.200:2881:3881
server.2=192.168.2.200:2882:3882
server.3=192.168.2.200:2883:3883
1.4.2。zkServer.cmdbin
ディレクトリを変更し、zkServer.cmdを同じディレクトリに3回コピーし、zkServer1.cmd、zkServer2.cmd、zkServer3.cmdという名前を付け、次のコンテンツを3つのファイルに追加します
。zkServer1.cmd:
set ZOOCFG=..\conf\zoo1.cfg
zkServer2.cmd:
set ZOOCFG=..\conf\zoo2.cfg
zkServer3.cmd:
set ZOOCFG=..\conf\zoo3.cfg
1.4.3。1.2を
参照してmyidファイルを作成します。内容は次のように非常に単純
です。D:\ Net_Program \ Net_Zookeeper \ data-file \ data1(サフィックスなし)にmyidという名前の新しいファイルを作成し、内容は
D:\に1です。 Net_Program \ Net_Zookeeper \ data-file \ data2(サフィックスなし)にmyidという名前の新しいファイルを作成し、内容は2です
。D:\ Net_Program \ Net_Zookeeper \ data-file \ data3(サフィックスなし)にmyidという名前の新しいファイルを作成します。3です
1.4.4、サービス
を開始し、1.3に記載されている手順
2. Kafkaの構成
ここでは、例として同じサーバー上の3セットのKafkaの構成を取り上げ、Kafkaを次の3つのディレクトリにそれぞれインストール
します
。D:\ Net_Program \ Net_Kafka
D:\ Net_Program \ Net_Kafka2
D:\ Net_Program \ Net_Kafka32.1
。編集server.properties
server.propertiesファイル(最初のサーバー)を開き、次の構成を変更または追加します。
# kafka消息存放的路径
log.dirs=D:/Net_Program/Net_Kafka/kafka-data
# 唯一标识
broker.id=0
host.name=192.168.2.200
# 监听端口
port=9092
# 对应着3台Zookeeper的IP地址和端口
zookeeper.connect=192.168.2.200:2181,192.168.2.200:2182,192.168.2.200:2183
2番目と3番目のサーバー構成は次のとおりです
。
# kafka消息存放的路径
log.dirs=D:/Net_Program/Net_Kafka2/kafka-data
# 唯一标识
broker.id=1
host.name=192.168.2.200
# 监听端口
port=9093
# 对应着3台Zookeeper的IP地址和端口
zookeeper.connect=192.168.2.200:2181,192.168.2.200:2182,192.168.2.200:2183
3番目のステーション:
# kafka消息存放的路径
log.dirs=D:/Net_Program/Net_Kafka3/kafka-data
# 唯一标识
broker.id=2
host.name=192.168.2.200
# 监听端口
port=9094
# 对应着3台Zookeeper的IP地址和端口
zookeeper.connect=192.168.2.200:2181,192.168.2.200:2182,192.168.2.200:2183
注:
上記の3つのサーバーがSASL認証で構成されている場合は、SASLポートを次のように変更する必要があります。
最初の
サーバー:listeners = SASL_PLAINTEXT://192.168.2.200:9092
advertised.listeners = SASL_PLAINTEXT://192.168 .2.200:9092
2番目:
listeners = SASL_PLAINTEXT://192.168.2.200:
9093 advertised.listeners = SASL_PLAINTEXT://192.168.2.200:9093
3番目:
listeners = SASL_PLAINTEXT://192.168.2.200:9094
advertised.listeners = SASL_PLAINTEXT://192.168.2.200:9094
Kafkaサービスを開始すると、log.dirs = D:/ Net_Program / Net_Kafka3 / kafka-dataを設定したため、次のエラーが発生する可能性があります。
kafka-dataフォルダーにmeta.propertiesファイルが生成されます。このファイルはbroker.id = 0、0の構成であり、broker.id = 1のserver.propertiesでこの2番目のKafkaを開始し
ます。このエラーの理由は、テストインストール中に、D:\ Net_Program \ Net_KafkaのすべてのファイルがD:\ Net_Program \ Net_Kafka2に直接コピーされ、KafkaがD:\ Net_Program \ Net_Kafkaにコピーされたためです。 meta.propertiesファイルは最初に-dataにすでに存在し
、broker.id = 0の場合、それが新しい構成である
場合、この問題の解決策はありません。kafka-dataフォルダー内のすべてを直接削除できます。コンテンツ
[2020-03-25 12:28:34,758] ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
kafka.common.InconsistentBrokerIdException: Configured broker.id 1 doesn't match stored broker.id 0 in meta.properties. If you moved your data, make sure your configured broker.id matches. If you intend to create a new broker, you should remove all data in your data directories (log.dirs).
at kafka.server.KafkaServer.getOrGenerateBrokerId(KafkaServer.scala:762)
at kafka.server.KafkaServer.startup(KafkaServer.scala:223)
at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:44)
at kafka.Kafka$.main(Kafka.scala:84)
at kafka.Kafka.main(Kafka.scala)
2.2。サービスを開始します
。管理者としてCMDを実行し(3を開いて3つのKafkaサービスを開始)、3つのKafkaインストールディレクトリを見つけて、3つのウィンドウにそれぞれ。\ bin \ windows \ kafka-server-と入力します。start.bat。\ config \ server.propertiesコマンドでこれらの3つのKafkaサービスを開始します
次に、次のコマンドを使用して、3つのKafkaサービスが開始されているかどうかをテストできます。開いている場合は、起動が成功したことを意味します
nc -vz 192.168.2.200 9092
nc -vz 192.168.2.200 9093
nc -vz 192.168.2.200 9094
ここでは、3つのKafkaサービスをWindowsシステムサービスとして設定できます。
3.コマンド構成の
この時点で、Kafkaクラスター環境がセットアップされます。
これはクラスター操作であるため、以前のKafka操作コマンドは次のように変更されてい
ます。トピックの作成:
スタンドアロンモード:
.\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic TestTopic1
或
kafka-topics --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic TestTopic1
クラスターモード:
.\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181,localhost:2182,localhost:2183 --replication-factor 1 --partitions 1 --topic TestTopic1
或
kafka-topics --create --zookeeper localhost:2181,localhost:2182,localhost:2183 --replication-factor 1 --partitions 1 --topic TestTopic1
クエリの件名:
スタンドアロンモード:
.\bin\windows\kafka-topics.bat --zookeeper localhost:2181 --list
或
kafka-topics --zookeeper localhost:2181 --list
クラスターモード:
.\bin\windows\kafka-topics.bat --zookeeper localhost:2181,localhost:2182,localhost:2183 --list
或
kafka-topics --zookeeper localhost:2181,localhost:2182,localhost:2183 --list
他のコマンド(ユーザーの読み取りおよび書き込み権限、グループ権限などの設定など)も同様に機能します
4.テスト
ここでは、C#のConfluent.Kafkaライブラリを使用してC#を例として取り上げ、Kafkaメッセージの生成と消費を実現します。
プロデューサーと2つのコンシューマーを起動します。プロデューサーのSASLアカウントとパスワードはquberとquber123456です(quberには読み取りと書き込みのアクセス許可があります)。最初のコンシューマーのSASLアカウントとパスワードはquber1とquber123456です(quber1は読み取りのみ可能です)。権限、およびグループの権限はTestGroup1に属します)、2番目のコンシューマーのSASLアカウントとパスワードはquber2、quber123456(quber2には読み取りおよび書き込み権限があり、グループの権限はTestGroup2に属します)であり、2人のコンシューマーによって消費されますトピックはすべてTestTopic1です。
ここで、トピックTestTopicを消費するとき、ここでの2つの消費者アカウントquber1とquber2は異なるグループにある必要があることに注意してください。そうでない場合、後で開始する消費者は情報を消費できません。これは前の記事にあります。Kafka構成2-WindowsでのKafkaSASL-PLAIN認証の構成」も記載されており、特別な注意が必要です。
テスト結果を次の図に示します。
5.リファレンスドキュメント
Kafkaクラスターの構築(Windows環境下):https://www.cnblogs.com/lentoo/p/7785004.html