<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] <br > ***** # **在 CentOS 7 上安裝 Kafka 2.3.1 偽分布式環境** 到目前為止,我們一直在使用單個 broker,這并不好玩。對 Kafka 來說,單個 broker 只是一個大小為一的集群。 為了深入了解它,讓我們把集群擴展到三個節點(仍然在一臺機器上)。 > 提示:在開始本節之前,請先安裝單節點環境,然后調整 JVM 啟動參數。 > 編輯個人文件 `vim ~/.bash_profile`,調整 JVM 參數: > ``` > export KAFKA_HEAP_OPTS="-Xmx512m -Xms512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M -XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=85" > ``` > 編譯 .bash\_profile,`source ~/.bash_profile`。 <br > ## **安裝** 1. 首先為每個 broker 創建一個配置文件: ~~~ $ cd /opt/kafka_2.12-2.3.1 $ cp config/server.properties config/server-1.properties $ cp config/server.properties config/server-2.properties ~~~ <br > 1. 編輯 broker 1 的配置文件 `vim config/server-1.properties`,并設置如下屬性: ~~~ broker.id=1 listeners=PLAINTEXT://:9093 log.dir=/data/kafka/kafka-logs-1 ~~~ > [broker.id](http://broker.id) 屬性是集群中每個節點的名稱,這一名稱是唯一的。我們必須重寫監聽端口和日志目錄,因為我們在同一臺機器上運行這些,我們不希望所有的 broker 嘗試在同一個端口注冊,或者覆蓋彼此的數據。 <br > 1. 編輯代理2的配置文件 `vim config/server-2.properties`,并設置如下屬性: ~~~ broker.id=2 listeners=PLAINTEXT://:9094 log.dir=/data/kafka/kafka-logs-2 ~~~ <br > 1. 我們已經建立 Zookeeper 和一個單節點了,現在我們只需要啟動兩個新的節點: ~~~ $ bin/kafka-server-start.sh config/server-1.properties & ... [2020-01-11 21:54:39,662] INFO [KafkaServer id=1] started (kafka.server.KafkaServer) ~~~ ~~~ $ bin/kafka-server-start.sh config/server-2.properties & ... [2020-01-11 21:55:09,813] INFO [KafkaServer id=2] started (kafka.server.KafkaServer) ~~~ <br > ## **測試** 1. 現在創建一個副本為 3 的新 topic: ~~~ $ bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic ~~~ <br > 1. Good,現在我們有一個集群,但是我們怎么才能知道那些代理在做什么呢?運行 `describe topics` 命令來查看: ~~~ $ bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic Topic:my-replicated-topic PartitionCount:1 ReplicationFactor:3 Configs: Topic: my-replicated-topic Partition: 0 Leader: 2 Replicas: 2,1,0 Isr: 2,1,0 ~~~ > 第一行給出了所有分區的摘要,下面的每行都給出了一個分區的信息。因為我們只有一個分區,所以只有一行。 > * “leader”是負責給定分區所有讀寫操作的節點。每個節點都是隨機選擇的部分分區的領導者。 > * “replicas”是復制分區日志的節點列表,不管這些節點是 leader 還是僅僅活著。 > * “isr”是一組“同步” replicas,是 replicas 列表的子集,它活著并被指到 leader。 <br > 1. 我們可以在已創建的原始主題上運行相同的命令來查看它的位置: ~~~ $ bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test Topic:test PartitionCount:1 ReplicationFactor:1 Configs: Topic: test Partition: 0 Leader: 0 Replicas: 0 Isr: 0 ~~~ 這沒什么大不了,原來的主題沒有副本且在服務器 0 上。我們創建集群時,這是唯一的服務器。 <br > 1. 讓我們發表一些信息給我們的新 topic: ~~~ $ bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-replicated-topic ... my test message 1 my test message 2 ^C ~~~ <br > 1. 現在我們來消費這些消息: ~~~ $ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic ... my test message 1 my test message 2 ^C ~~~ <br > 1. 讓我們來測試一下容錯性。 Broker 1 現在是 leader,讓我們來殺了它(注意要切換到 root 用戶): ~~~ # ps aux | grep server-1.properties root 12452 2.5 9.6 3707296 371960 pts/0 Sl 22:53 0:07 /opt/jdk1.8.0_231/bin/java -Xmx1G -Xms1G -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent... # kill -9 12452 ~~~ 領導權已經切換到一個從屬節點,而且節點1也不在同步副本集中了: ~~~ # bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic Topic:my-replicated-topic PartitionCount:1 ReplicationFactor:3 Configs: Topic: my-replicated-topic Partition: 0 Leader: 2 Replicas: 2,1,0 Isr: 2,0 ~~~ 2. 不過,即便原先寫入消息的 leader 已經不在,這些消息仍可用于消費: ~~~ $ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic my test message 1 my test message 2 ^C ~~~ <br > <br > <br > # **參考資料** * [Apache Kafka QuickStart](http://kafka.apache.org/quickstart) <br >
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看