kafka是一種高吞吐量的分布式發布訂閱訊息系統,它可以處理消費者規模的**中的所有動作流資料。這種動作(網頁瀏覽,搜尋和其他使用者的行動)是在現代網路上的許多社會功能的乙個關鍵因素。這些資料通常是由於吞吐量的要求而通過處理日誌和日誌聚合來解決。
kafka名詞解釋
kafka基基原理
訊息模型分為兩種:佇列和發布-訂閱式。佇列的處理方式是一組消費者從伺服器讀取訊息,一條訊息只有其中的乙個消費者來處理。在發布-訂閱模型中,訊息被廣播給所有的消費者,接收到訊息的消費者都可以處理此訊息。kafka為這兩種模型提供了單一的消費者抽象模型: 消費者組(consumer group)。消費者用乙個消費者組名標記自己。
乙個發布在topic上訊息被分發給此消費者組中的乙個消費者。假如所有的消費者都在乙個組中,那麼這就變成了queue模型。假如所有的消費者都在不同的組中,那麼就完全變成了發布-訂閱模型。更通用的, 我們可以建立一些消費者組作為邏輯上的訂閱者。每個組包含數目不等的消費者,乙個組內多個消費者可以用來擴充套件效能和容錯。
並且,kafka能夠保證生產者傳送到乙個特定的topic的分割槽上,訊息將會按照它們傳送的順序依次加入,也就是說,如果乙個訊息m1和m2使用相同的producer傳送,m1先傳送,那麼m1將比m2的offset低,並且優先的出現在日誌中。消費者收到的訊息也是此順序。如果乙個topic配置了複製因子(replication facto)為n,那麼可以允許n-1伺服器宕機而不丟失任何已經提交(committed)的訊息。此特性說明kafka有比傳統的訊息系統更強的順序保證。但是,相同的消費者組中不能有比分區更多的消費者,否則多出的消費者一直處於空等待,不會收到訊息。
kafka應用場景
構建實時的流資料管道,可靠地獲取系統和應用程式之間的資料。
構建實時流的應用程式,對資料流進行轉換或反應。
kafka 安裝
上傳kafka_2.10-0.8.2.2.tgz安裝包到伺服器
解壓安裝檔案
3.移動安裝檔案
# mv kafka_2.10-0.8.2.2 kafka
4.修改配置檔案
修改config目錄下producer.properties和server.properties配置檔案
# vi producer.properties
新增如下內容:
metadata.broker.list=192.168.2.51:9092,192.168.2.52:9092,192.168.2.53:9092
producer.type=sync
compression.codec=none
serializer.class=kafka.serializer.defaultencoder
# vi server.properties
新增如下內容:
broker.id=1
port=9092
host.name=192.168.2.52
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=10485
socket.receive.buffer.bytes=104857
socket.request.max.bytes=10485760
log.dirs=/home/storm/kafka/kafka-logs
num.partitions=5
num.recovery.threads.per.data.dir=1
log.retention.hours=24 #日誌儲存24小時
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
log.cleaner.enable=false
zookeeper.connect=192.168.2.52:2181,192.168.2.53:2181,192.168.2.54:2181
zookeeper.connection.timeout.ms=60000
5.遠端複製分發安裝檔案
將經過以上步驟配置好的安裝配置檔案複製到其他kafka集群伺服器,如:
scp kafka storm@rg-storm2:/home/storm
6.啟動kafka集群
每台kafka集群伺服器進行如下操作啟動kafka服務:
如:#nohup /home/storm/kafka/bin/kafka-server-start.sh /home/storm/kafka/config/server.properties > /dev/null 2>&1 &
用jps命令驗證kafka是否啟動,如:
出現上圖紅框程序說明kafka服務啟動成功。
注:啟動storm
集群的前提條件是zookeeper
集群已經啟動。
7.建立topic
在部署kafka集群的任意一台伺服器上執行以下命令:
./kafka-topics.sh --create --topic test2 --replication-factor 3 --partitions 3 --zookeeper
kafka基礎知識
kafka的akf切分的三個維度 1.topic 邏輯元件 2.partition 分割槽 物理元件 乙個topic包含多個partition 分割槽內部是有序的,分割槽的外部是無序的 乙個消費者只在乙個分割槽中按照順序取資料的話,那麼它一定是像取佇列資料一樣,是按照推送到佇列的順序取的分割槽中的資...
kafka安裝及使用
一 kafka的安裝 2.vi usr lib kafka config server.properties broker.id 5 log.dirs usr lib kafka kafka logs log.flush.interval.messages 10000 預設不用修改 log.flus...
linux安裝基礎知識
linux修改yum源映象源1 首先備份系統自帶yum源配置檔案 etc yum.repos.d centos base.repo root localhost mv etc yum.repos.d centos base.repo etc yum.repos.d centos base.repo....