天天看點

Kafka使用總結與生産消費Demo實作

kafka官網自己的介紹是:一個可支援分布式的流平台。

kafka官網介紹

傳統消息傳遞有兩類模型:消息隊列、釋出訂閱。在消息隊列中,一個消費者池可以從一個伺服器讀取資料,而每個記錄都将被發送到其中一個伺服器;在釋出-訂閱中,記錄被廣播給所有消費者。這兩種模型各有優缺點:

作為消息傳遞系統,那麼跟mq有什麼差別呢?(rabbitmq\redis\rocketmq\activemq)

備注:因為該文章主要介紹kafka,是以上述隻是簡單羅列了一些特點,如果有興趣的同學可以詳細的分析一下,這些産品我後續都會專門寫文章來歸納總結分析,在這裡先簡單帶過。

該部分是擴充内容,很多人包括我剛畢業那年使用消息隊列,但别人問道我為啥用消息隊列,我都沒有一個很清晰的認識,是以在這裡也說一下。希望給有需要的同學一些幫助。

那麼為什麼要使用消息隊列呢?首先我們來回顧一下消息傳遞。前端而言,傳統方式是通過全局變量來傳遞,後面有了資料總線的概念,再後來有相應的解決方案産品比如說vuex、redux、store等。對于後端來說,最先系統之間的通信,消息傳遞都非常依賴于通信對象彼此,高度耦合,後面有了一些産品來解決這些問題,比如說webservice.但這樣的方式極其不友好,而且維護繁瑣,職責難以厘清,工作量增加,是以mq誕生後,基本解決了這些問題。

消息隊列的引入是為了:

Kafka使用總結與生産消費Demo實作
Kafka使用總結與生産消費Demo實作
Kafka使用總結與生産消費Demo實作

備注:上述demo編寫過程中,發現報了一個exception:kafka java client 連接配接異常(org.apache.kafka.common.errors.timeoutexception: failed to update metadata )...

kafka中需要配置server.檔案:

如果你是雲伺服器的話需要,在安全組設定對應端口開放,否則無法通路響應接口!