Kafka構成3-WindowsでKafkaクラスターを構成します

 

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

おすすめ

転載: blog.csdn.net/qubernet/article/details/105094601