kafka安裝和使用--單機版

安裝:

kafka依賴zookeeper

比較新的版本可以使用單機安裝,因爲比較新的版本內置了類zookeeper

下載點:http://mirror.bit.edu.cn/,上面有許多版本的kafka,

 

1. 安裝:

cd /usr/local

[root@hcli40 ~]# wget http://mirror.bit.edu.cn/apache/kafka/2.3.1/kafka_2.12-2.3.1.tgz

[root@hcli40 local]# tar -xvf kafka_2.12-2.3.1.tgz 

 

2. 配置:

cd kafka_2.12-2.3.1/config/

vim server.properties

broker.id=0           #當前機器在集羣中的唯一標識,和zookeeper的myid性質一樣

advertised.listeners=PLAINTEXT://ip1:9092 #ip1爲外網IP

listeners=PLAINTEXT://ip2:9092 #ip2爲內網ip

#zookeeper地址和端口, Kafka支持內置的Zookeeper和引用外部的Zookeeper

zookeeper.connect=localhost:2181

 

3. 啓動

cd kafka_2.12-2.3.1/bin/

./zookeeper-server-start.sh ../config/zookeeper.properties & 

#啓動kafka自帶的zookeeper(若不用自帶zk可不執行此句)

./kafka-server-start.sh ../config/server.properties &

 

4. 創建主題

[root@hcli40 kafka_2.12-2.3.1]# bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
Created topic test.

 

5. 生產者

[root@hcli40 kafka_2.12-2.3.1]# bin/kafka-console-producer.sh --broker-list 192.168.191.40:9092 --topic test

輸入這個命令後,會出現輸入提示符:

>

 

6. 消費者


[root@hcli40 kafka_2.12-2.3.1]# bin/kafka-console-consumer.sh --bootstrap-server hcli40:9092 --topic test --from-beginning
每當生產者端輸入一條信息,消費者端就會隨之輸出信息

這裏的參數是--from-beginning,就是每次啓動消費者,都會從服務開啓時的信息接收



一個主題中,默認所有生產者發送的消息可以被所有消費者接收

 

server.properties中一些參數的含義

 

broker.id=0  #當前機器在集羣中的唯一標識,和zookeeper的myid性質一樣
port=19092 #當前kafka對外提供服務的端口默認是9092
host.name=192.168.7.100 #這個參數默認是關閉的,在0.8.1有個bug,DNS解析問題,失敗率的問題。
num.network.threads=3 #這個是borker進行網絡處理的線程數
num.io.threads=8 #這個是borker進行I/O處理的線程數
log.dirs=/opt/kafka/kafkalogs/ #消息存放的目錄,這個目錄可以配置爲“,”逗號分割的表達式,上面的num.io.threads要大於這個目錄的個數這個目錄,如果配置多個目錄,新創建的topic他把消息持久化的地方是,當前以逗號分割的目錄中,那個分區數最少就放那一個
socket.send.buffer.bytes=102400 #發送緩衝區buffer大小,數據不是一下子就發送的,先回存儲到緩衝區了到達一定的大小後在發送,能提高性能
socket.receive.buffer.bytes=102400 #kafka接收緩衝區大小,當數據到達一定大小後在序列化到磁盤
socket.request.max.bytes=104857600 #這個參數是向kafka請求消息或者向kafka發送消息的請請求的最大數,這個值不能超過java的堆棧大小
num.partitions=1 #默認的分區數,一個topic默認1個分區數
log.retention.hours=168 #默認消息的最大持久化時間,168小時,7天
message.max.byte=5242880  #消息保存的最大值5M
default.replication.factor=2  #kafka保存消息的副本數,如果一個副本失效了,另一個還可以繼續提供服務
replica.fetch.max.bytes=5242880  #取消息的最大直接數
log.segment.bytes=1073741824 #這個參數是:因爲kafka的消息是以追加的形式落地到文件,當超過這個值的時候,kafka會新起一個文件
log.retention.check.interval.ms=300000 #每隔300000毫秒去檢查上面配置的log失效時間(log.retention.hours=168 ),到目錄查看是否有過期的消息如果有,刪除
log.cleaner.enable=false #是否啓用log壓縮,一般不用啓用,啓用的話可以提高性能
zookeeper.connect=192.168.7.100:12181,192.168.7.101:12181,192.168.7.107:1218 #設置zookeeper的連接端口
advertised.listeners:發佈到ZooKeeper上供客戶端使用的監聽器,若未配置,則使用配置的listeners屬性
listeners:逗號分隔的需要監聽的URL和協議

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章