「Apache Kafka」:修訂間差異

出自Gea-Suan Lin's Wiki
跳至導覽 跳至搜尋
本頁面具有訪問限制。如果您看見此訊息,這代表您沒有訪問本頁面的權限。
行 26: 行 26:
== 測試 ==
== 測試 ==


 沒有TCP load balancer時(其中所有的<code>:2181</code>都可以簡化,因為ZooKeeper的預設就是Port 2181):
 沒有TCP load balancer時(其中所有的<code>:2181</code>都可以簡化 省略 ,因為ZooKeeper的預設就是Port 2181):


<syntaxhighlight lang="shell">
<syntaxhighlight lang="shell">
行 32: 行 32:
/opt/kafka/bin/kafka-topics.sh --create --zookeeper 1.2.3.4:2181,5.6.7.8:2181,9.10.11.12:2181 --replication-factor 2 --partitions 1 --topic my-replicated-topic
/opt/kafka/bin/kafka-topics.sh --create --zookeeper 1.2.3.4:2181,5.6.7.8:2181,9.10.11.12:2181 --replication-factor 2 --partitions 1 --topic my-replicated-topic
/opt/kafka/bin/kafka-topics.sh --describe --zookeeper 1.2.3.4:2181,5.6.7.8:2181,9.10.11.12:2181
/opt/kafka/bin/kafka-topics.sh --describe --zookeeper 1.2.3.4:2181,5.6.7.8:2181,9.10.11.12:2181
</syntaxhighlight>
<syntaxhighlight lang="shell">
/opt/kafka/bin/kafka-topics.sh --describe --zookeeper 1.2.3.4,5.6.7.8,9.10.11.12
/opt/kafka/bin/kafka-topics.sh --create --zookeeper 1.2.3.4,5.6.7.8,9.10.11.12 --replication-factor 2 --partitions 1 --topic my-replicated-topic
/opt/kafka/bin/kafka-topics.sh --describe --zookeeper 1.2.3.4,5.6.7.8,9.10.11.12
</syntaxhighlight>
</syntaxhighlight>



於 2019年3月5日 (二) 04:51 的修訂

Apache Kafka是一套基於JavaScala,提供Streaming架構的軟體。

介紹

Kafka本身不過多處理多節點之間的效能問題,而是透過ZooKeeper處理。可以從「#測試」的章節看到操作時都是指定ZooKeeper當作API Endpoint。在Production環境上,一般我們會用TCP load balancer放在前面,可以讓用戶端架構比較簡單(僅需設定單一主機名稱)。

安裝

目前在Ubuntu上沒有系統套件或是PPA可以安裝,一般是自行下載後裝到/opt下。最新版的資訊可以在Kafka的Download頁面得到,這邊使用2.1.1版:

cd /tmp
wget https://ftp.jaist.ac.jp/pub/apache/kafka/2.1.1/kafka_2.12-2.1.1.tgz
cd /opt
sudo tar zxvf /tmp/kafka_2.12-2.1.1.tgz
sudo ln -fs kafka_2.12-2.1.1 kafka

設定

  • 修改/opt/kafka/config/server.properties內的broker.id,這邊一台設1,另外一台設2
  • 修改/opt/kafka/config/server.properties內的zookeeper.connect
    • 改成三台ZooKeeper主機的位置,像是zookeeper.connect=1.2.3.4:2181,5.6.7.8:2181,9.10.11.12:2181
    • 或是改成對應的TCP load balancer,像是test-gslin-zookeeper-xxxxxxxxx.us-east-1.elb.amazonaws.com

測試

沒有TCP load balancer時(其中所有的:2181都可以簡化省略,因為ZooKeeper的預設就是Port 2181):

/opt/kafka/bin/kafka-topics.sh --describe --zookeeper 1.2.3.4:2181,5.6.7.8:2181,9.10.11.12:2181
/opt/kafka/bin/kafka-topics.sh --create --zookeeper 1.2.3.4:2181,5.6.7.8:2181,9.10.11.12:2181 --replication-factor 2 --partitions 1 --topic my-replicated-topic
/opt/kafka/bin/kafka-topics.sh --describe --zookeeper 1.2.3.4:2181,5.6.7.8:2181,9.10.11.12:2181
/opt/kafka/bin/kafka-topics.sh --describe --zookeeper 1.2.3.4,5.6.7.8,9.10.11.12
/opt/kafka/bin/kafka-topics.sh --create --zookeeper 1.2.3.4,5.6.7.8,9.10.11.12 --replication-factor 2 --partitions 1 --topic my-replicated-topic
/opt/kafka/bin/kafka-topics.sh --describe --zookeeper 1.2.3.4,5.6.7.8,9.10.11.12

有TCP load balancer時:

/opt/kafka/bin/kafka-topics.sh --describe --zookeeper test-gslin-zookeeper-xxxxxxxxx.us-east-1.elb.amazonaws.com
/opt/kafka/bin/kafka-topics.sh --create --zookeeper test-gslin-zookeeper-xxxxxxxxx.us-east-1.elb.amazonaws.com --replication-factor 2 --partitions 1 --topic my-replicated-topic
/opt/kafka/bin/kafka-topics.sh --describe --zookeeper test-gslin-zookeeper-xxxxxxxxx.us-east-1.elb.amazonaws.com

外部連結