問(wèn)題導(dǎo)讀
1.Kafka有哪幾種配制方法?
2.如何啟動(dòng)一個(gè)Consumer實(shí)例來(lái)消費(fèi)消息?
Kafka集群配置比較簡(jiǎn)單,為了更好的讓大家理解,在這里要分別介紹下面三種配置
一、單節(jié)點(diǎn)單broker實(shí)例的配置
1. 首先啟動(dòng)zookeeper服務(wù) Kafka本身提供了啟動(dòng)zookeeper的腳本(在kafka/bin/目錄下)和zookeeper配置文件(在kafka/config/目錄下),首先進(jìn)入Kafka的主目錄(可通過(guò) whereis kafka命令查找到):
[root@localhost kafka-0.8]# bin/zookeeper-server-start.sh config/zookeeper.properties
zookeeper配置文件的一些重要屬性:
# Data directory where the zookeeper snapshot is stored.
dataDir=/tmp/zookeeper
# The port listening for client request
clientPort=2181 默認(rèn)情況下,zookeeper服務(wù)器會(huì)監(jiān)聽(tīng) 2181端口,更詳細(xì)的信息可去zookeeper官網(wǎng)查閱。
2. 啟動(dòng)Kafka broker 運(yùn)行kafka提供的啟動(dòng)kafka服務(wù)腳本即可:
[root@localhost kafka-0.8]# bin/kafka-server-start.sh config/server.properties
broker配置文件中的重要屬性:
# broker的id. 每個(gè)broker的id必須是唯一的.
Broker.id=0
# 存放log的目錄
log.dir=/tmp/kafka8-logs
# Zookeeper 連接串
zookeeper.connect=localhost:2181
3. 創(chuàng)建一個(gè)僅有一個(gè)Partition的topic [root@localhost kafka-0.8]# bin/kafka-create-topic.sh --zookeeper localhost:2181 --replica 1 --partition 1 --topic kafkatopic
4. 用Kafka提供的生產(chǎn)者客戶端啟動(dòng)一個(gè)生產(chǎn)者進(jìn)程來(lái)發(fā)送消息 [root@localhost kafka-0.8]# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic kafkatopic
其中有兩個(gè)參數(shù)需要注意:
然后你就可以輸入一些消息了,如下圖:
5. 啟動(dòng)一個(gè)Consumer實(shí)例來(lái)消費(fèi)消息 [root@localhost kafka-0.8]# bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic kafkatopic --from-beginning
當(dāng)你執(zhí)行這個(gè)命令之后,你便可以看到控制臺(tái)上打印出的生產(chǎn)者生產(chǎn)的消息:
和消費(fèi)者相關(guān)的屬性配置存放在Consumer.properties文件中,重要的屬性有:
# consumer的group id (A string that uniquely identifies a set of consumers
# within the same consumer group)
groupid=test-consumer-group
# zookeeper 連接串
zookeeper.connect=localhost:2181
二、單節(jié)點(diǎn)運(yùn)行多broker實(shí)例
1.啟動(dòng)zookeeper 和上面的一樣
2.啟動(dòng)Kafka的broker 要想在一臺(tái)機(jī)器上啟動(dòng)多個(gè)broker實(shí)例,只需要準(zhǔn)備多個(gè)server.properties文件即可,比如我們要在一臺(tái)機(jī)器上啟動(dòng)兩個(gè)broker:
首先我們要準(zhǔn)備兩個(gè)server.properties配置文件
然后我們?cè)儆眠@兩個(gè)配置文件分別啟動(dòng)一個(gè)broker
[root@localhost kafka-0.8]# env JMX_PORT=9999 bin/kafka-server-start.sh config/server-1.properties
[root@localhost kafka-0.8]# env JMX_PORT=10000 bin/kafka-server-start.sh config/server-2.properties
可以看到我們啟動(dòng)是為每個(gè)broker都指定了不同的JMX Port,JMX Port主要用來(lái)利用jconsole等工具進(jìn)行監(jiān)控和排錯(cuò)
3.創(chuàng)建一個(gè)topic 現(xiàn)在我們要?jiǎng)?chuàng)建一個(gè)含有兩個(gè)Partition分區(qū)和2個(gè)備份的broker:
[root@localhost kafka-0.8]# bin/kafka-create-topic.sh --zookeeper localhost:2181 --replica 2 --partition 2 --topic othertopic
4.啟動(dòng)Producer發(fā)送消息 如果我們要用一個(gè)Producer發(fā)送給多個(gè)broker,唯一需要改變的就是在broker-list屬性中指定要連接的broker:
[root@localhost kafka-0.8]# bin/kafka-console-producer.sh --broker-list localhost:9092,localhost:9093 --topic othertopic
如果我們要讓不同的Producer發(fā)送給不同的broker,我們也僅僅需要為每個(gè)Producer配置響應(yīng)的broker-list屬性即可。
5.啟動(dòng)一個(gè)消費(fèi)者來(lái)消費(fèi)消息 和之前的命令一樣
[root@localhost kafka-0.8]# bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic othertopic --from-beginning
三、集群模式(多節(jié)點(diǎn)多實(shí)例) 介紹了上面兩種配置方法,再理解集群配置就簡(jiǎn)單了,比如我們要配置如下圖所示集群:
zookeeper配置文件(zookeeper.properties):不變
broker的配置配置文件(server.properties):按照單節(jié)點(diǎn)多實(shí)例配置方法在一個(gè)節(jié)點(diǎn)上啟動(dòng)兩個(gè)實(shí)例,不同的地方是zookeeper的連接串需要把所有節(jié)點(diǎn)的zookeeper都連接起來(lái)
# Zookeeper 連接串
zookeeper.connect=node1:2181,node2:2181
轉(zhuǎn)自:http://www.aboutyun.com/thread-11114-1-1.html
聯(lián)系客服