Linux中kafka配置和使用指南

什麼是kafka

Apache kafka是消息中間件的一種,我發現很多人不知道消息中間件是什麼,在開始學習之前,我這邊就先簡單的解釋一下什麼是消息中間件,只是粗略的講解,目前kafka已經可以做更多的事情。

以下例子來自互聯網
舉個例子,生產者消費者,生產者生產雞蛋,消費者消費雞蛋,生產者生產一個雞蛋,消費者就消費一個雞蛋,假設消費者消費雞蛋的時候噎住了(系統宕機了),生產者還在生產雞蛋,那新生產的雞蛋就丟失了。再比如生產者很強勁(大交易量的情況),生產者1秒鐘生產100個雞蛋,消費者1秒鐘只能吃50個雞蛋,那要不了一會,消費者就吃不消了(消息堵塞,最終導致系統超時),消費者拒絕再吃了,”雞蛋“又丟失了,這個時候我們放個籃子在它們中間,生產出來的雞蛋都放到籃子裏,消費者去籃子裏拿雞蛋,這樣雞蛋就不會丟失了,都在籃子裏,而這個籃子就是”kafka“。
雞蛋其實就是“數據流”,系統之間的交互都是通過“數據流”來傳輸的(就是tcp、http什麼的),也稱爲報文,也叫“消息”。
消息隊列滿了,其實就是籃子滿了,”雞蛋“ 放不下了,那趕緊多放幾個籃子,其實就是kafka的擴容。
各位現在知道kafka是幹什麼的了吧,它就是那個"籃子"。


kafka名詞解釋 producer:生產者,就是它來生產“雞蛋”的。
consumer:消費者,生出的“雞蛋”它來消費。
topic:你把它理解爲標籤,生產者每生產出來一個雞蛋就貼上一個標籤(topic),消費者可不是誰生產的“雞蛋”都吃的,這樣不同的生產者生產出來的“雞蛋”,消費者就可以選擇性的“吃”了。
broker:就是籃子了


單機kafka配置

步驟一:
解壓kafka的tar包,然後cd進該目錄,做步驟二和步驟三

tar xzvf kafka_2.11-0.11.0.0.tgz

步驟二:
啓動Zookeeper server

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

步驟三:
啓動Kafka server

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

步驟四:
如果要殺死kafka進程,建議用ps找到進程號,用kill -9 去殺。因爲有些linux的版本用kafka內置命令去關進程,會關不掉。

步驟五:
開兩個ssh,一個用來發數據,一個用來收數據
運行producer—生產者,及發送送數據,本地自己測試用localhost:9092,topic是test

  [root@localhost kafka_2.11-0.11.0.0]#bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
  >
  >
  >
  >test   # 輸入一個test

運行consumer—消費者,及接收數據,–from-beginning

[root@localhost kafka_2.11-0.11.0.0]# bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
test  # 作爲消費者看到test 上述測試就算成功

實際部署測試

拓撲圖:

produce ------ kafka ------ consumer

測試kafka ip : 172.16.4.225 , topic:test

修改kafka的配置文件,最終配置成如下圖:
在這裏插入圖片描述
啓動Zookeeper server和Kafka server

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

運行生產者

bin/kafka-console-producer.sh --broker-list 172.16.4.225:9092 --topic test
>
>hello

運行消費者

bin/kafka-console-consumer.sh --zookeeper 172.16.4.225:2181 --topic test --from-beginning

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