日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

kafka+zookeeper安装配置

發布時間:2024/9/16 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 kafka+zookeeper安装配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

安裝Zookeeper

參考這篇:https://my.oschina.net/duanvincent/blog/914794

Kafka

配置
在配置文件server.properties修改如下內容:

#broker.id是broker的標識,具有唯一性 broker.id=3 #端口號默認為9092 port=9092 #host.name位kafka所在機器的ip host.name=192.168.152.45 #設置zookeeper,可連接多個zookeeper服務器 zookeeper.connect=zookeeper.connect=192.168.152.45:2181,192.168.152.39:2181,192.168.152.29:2181

?

啟動停止
#進入$KAFKA_HOME?
#啟動
sudo bin/kafka-server-start.sh config/server.properties &
#停止

bin/kafka-server-stop.sh

生產/消費消息
#創建topic
bin/kafka-topics.sh --create --zookeeper 192.168.152.45:2182 --replication-factor 1 --partitions 1 --topic test
#生產消息
bin/kafka-console-producer.sh --broker-list 192.168.152.45:9092 --topic test
#消費消息

bin/kafka-console-consumer.sh –zookeeper 192.168.152.45:2181,192.168.152.39:2181,192.168.152.29:2181 --topic test --from-beginning

設置多個broker集群

到目前,我們只是單一的運行一個broker,,沒什么意思。對于Kafka,一個broker僅僅只是一個集群的大小, 所有讓我們多設幾個broker.
首先為每個broker創建一個配置文件:

> cp config/server.properties config/server-1.properties > cp config/server.properties config/server-2.properties

現在編輯這些新建的文件,設置以下屬性:
?

config/server-1.properties: broker.id=1 listeners=PLAINTEXT://:9093 log.dir=/tmp/kafka-logs-1config/server-2.properties: broker.id=2 listeners=PLAINTEXT://:9094 log.dir=/tmp/kafka-logs-2

broker.id是集群中每個節點的唯一且永久的名稱,我們修改端口和日志分區是因為我們現在在同一臺機器上運行,我們要防止broker在同一端口上注冊和覆蓋對方的數據。

我們已經運行了zookeeper和剛才的一個kafka節點,所有我們只需要在啟動2個新的kafka節點。

> bin/kafka-server-start.sh config/server-1.properties & ... > bin/kafka-server-start.sh config/server-2.properties & ...

現在,我們創建一個新topic,把備份設置為:3

> bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic

好了,現在我們已經有了一個集群了,我們怎么知道每個集群在做什么呢?運行命令“describe topics”

[root@slave2 kafka_2.11-0.11.0.1]# ./bin/kafka-topics.sh --describe --zookeeper 192.168.152.45:2181 --topic my-replicated-topic Topic:my-replicated-topic PartitionCount:1 ReplicationFactor:3 Configs:Topic: my-replicated-topic Partition: 0 Leader: 2 Replicas: 2,3,1 Isr: 2,3,1

這是一個解釋輸出,第一行是所有分區的摘要,每一個線提供一個分區信息,因為我們只有一個分區,所有只有一條線。

"leader":該節點負責所有指定分區的讀和寫,每個節點的領導都是隨機選擇的。
"replicas":備份的節點,無論該節點是否是leader或者目前是否還活著,只是顯示。
"isr":備份節點的集合,也就是活著的節點集合。
我們運行這個命令,看看一開始我們創建的那個節點:

[root@slave2 kafka_2.11-0.11.0.1]# ./bin/kafka-topics.sh --describe --zookeeper 192.168.152.45:2181 --topic test Topic:test PartitionCount:1 ReplicationFactor:1 Configs:Topic: test Partition: 0 Leader: 3 Replicas: 3 Isr: 3

沒有驚喜,剛才創建的topic(主題)沒有Replicas,所以是0。
讓我們來發布一些信息在新的topic上:

> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-replicated-topic... my test message 1 my test message 2 ^C

現在,消費這些消息。

> bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic my-replicated-topic... my test message 1 my test message 2 ^C

我們要測試集群的容錯,kill掉leader,Broker1作為當前的leader,也就是kill掉Broker1。

> ps | grep server-1.properties 7564 ttys002 0:15.91 /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/bin/java... > kill -9 7564

備份節點之一成為新的leader,而broker1已經不在同步備份集合里了。

> 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: 1,2,0 Isr: 2,0

但是,消息仍然沒丟:

> bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic my-replicated-topic ... my test message 1 my test message 2 ^C

使用 Kafka Connect 來 導入/導出 數據

從控制臺寫入和寫回數據是一個方便的開始,但你可能想要從其他來源導入或導出數據到其他系統。對于大多數系統,可以使用kafka Connect,而不需要編寫自定義集成代碼。Kafka Connect是導入和導出數據的一個工具。它是一個可擴展的工具,運行連接器,實現與自定義的邏輯的外部系統交互。在這個快速入門里,我們將看到如何運行Kafka Connect用簡單的連接器從文件導入數據到Kafka主題,再從Kafka主題導出數據到文件,首先,我們首先創建一些種子數據用來測試:

echo -e "foo\nbar" > test.txt

接下來,我們開始2個連接器運行在獨立的模式,這意味著它們運行在一個單一的,本地的,專用的進程。我們提供3個配置文件作為參數。第一個始終是kafka Connect進程,如kafka broker連接和數據庫序列化格式,剩下的配置文件每個指定的連接器來創建,這些文件包括一個獨特的連接器名稱,連接器類來實例化和任何其他配置要求的。

> bin/connect-standalone.sh config/connect-standalone.properties config/connect-file-source.properties config/connect-file-sink.properties

?

總結

以上是生活随笔為你收集整理的kafka+zookeeper安装配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。