消息中間件——kafka


 

 

1.1.1 什么是消息中間件

消息中間件利用高效可靠的消息傳遞機制進行平台無關的數據交流,並基於數據通信來進行分布式系統的集成。通過提供消息傳遞和消息排隊模型,它可以在分布式環境下擴展進程間的通信。對於消息中間件,常見的角色大致也就有Producer(生產者)、Consumer(消費者)

 

 

常見的消息中間件產品:

1ActiveMQ

ActiveMQApache出品的,最流行的能力,能力強勁的開源消息總線,並且他完全支持JavaJMs規范。豐富的API,多種集群構建模式使得它成為業界老牌的消息中間件,在中小型企業應用廣泛。但是相比於kafkarabbitmqMQ來說,性能太弱,在如今的高並發,大數據處理的場景下顯得力不從心,經常會出現一些小問題,消息延遲,堆積,堵塞等,不過其多種集群架構是優勢。

2RabbitMQ

RabbitMQ是使用erlang語言開發的開源消息隊列系統,基於AMQP協議來實現。AMQP的主要特征是面向消息/隊列/路由(包括點對點的發布/訂閱)可靠性,安全。AMQP協議更多用在企業系統內,對數據一致性/穩定性和可靠性要求很高的場景,對性能和吞吐量的要求還在其次。rabbitMQ的可靠性很高,性能比不上kafka,但是也很高了,集群模式也有多種。

3Kafka

kafkalinkedin開源的分布式發布-訂閱消息系統,目前歸屬於Apache的頂級項目。主要特點是基於pull模式來處理消息消費,追求高吞吐量,在一台普通的服務器上既可以達到10W/s的吞吐速率;完全的分布式系統。一開始的目的是日志的收集和傳輸。0.8版本開始支持復制,不支持事務,對消息的丟失,重復,錯誤沒有嚴格要求 適用於產生大量數據的互聯網服務的數據收集業務。在廉價的服務器上都能有很高的性能,這個主要是基於操作系統底層的pagecache,不用內存勝似使用內存。

4RocketMQ

RocketMQ是阿里開源的,目前是也是Apache的頂級項目,純Java開發,具有高吞吐量,高可用,適合大規模分布式系統應用的特點。其思路起源於kafka,它對消息的可靠傳輸以及事務性做了優化,目前在阿里被廣泛應用於交易/充值/流計算/消息推送/日志流式處理/Binglog分發等場景。不過其維護是一個痛點。不過它能保證消息的順序性,集群模式也豐富,在雙十一等高並發場景承受上億訪問,三大指標都很好,但是它的商業版要收費!!!

5ZeroMQ

是支持fanouttopic這些功能的高級socket,不再是傳統socket的點到點通信了

只是一個網絡編程的Pattern庫,將常見的網絡請求形式模式化、組件化。ZeroMQ能實現RabbitMQ不擅長的高級復雜隊列,但開發人員需要自己組合多種技術框架,技術復雜度是一個挑戰。僅提供非持久性的隊列,如果Down機,數據將丟失。

特點 速度快

 

Kafka 下載地址http://kafka.apache.org/downloads

 

 

注意:解壓文件到沒有空格,漢字和特殊字符的目錄下

 

進入config 目錄 修改server.properties配置

 

安裝目錄進入cmd 啟動zookeeper(新版本kafka已經集成了zookeeper)

 

 

輸入命令 bin\windows\zookeeper-server-start.bat config\zookeeper.properties

 

 

 

啟動成功不要關閉

啟動kafka  

另開一個窗口輸入  bin\windows\kafka-server-start.bat config\server.properties

 

 

Kafka啟動成功

 

測試

1、 創建主題,進入Kafka安裝目錄D:\kafka_2.12-2.1.0,按下Shift+右鍵,選擇“打開命令窗口”選項,打開命令行,輸入:

.\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

 

不要關了這個窗口

查看主題輸入:

.\bin\windows\kafka-topics.bat --list --zookeeper localhost:2181

 

 

2、 創建生產者,進入Kafka安裝目錄D:\kafka_2.12-2.1.0,按下Shift+右鍵,選擇“打開命令窗口”選項,打開命令行,輸入:

.\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic test

 

3創建消費者 進入Kafka安裝目錄D:\kafka_2.12-2.1.0,按下Shift+右鍵,選擇“打開命令窗口”選項,打開命令行,輸入:

.\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning

 

生產者發送消息

 

接受者收到消息

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM