RabbitMQ和ZeroMQ都是極好的消息中間件,下我會對這兩個消息中間件作一個比較,我的理解不喜勿噴。
RabbitMQ是AMQP協議率先的一個實現,它實現了代理(Broker)架構,意味着消息在發送到client以前可以在中央節點上排隊。此特性使得RabbitMQ易於使用和部署,適宜於很是多場景如路由、負載均衡或消息持久化等,用消息隊列僅僅需幾行代碼就能夠搞定。但是,這使得它的可擴展性差,速度較慢,因爲中央節點添加了延遲,消息封裝後也比較大。
ZeroMQ是一個很輕量級的消息系統,專門爲高吞吐量/低延遲的場景開發,在金融界的應用中經常可以發現它。與RabbitMQ相比,ZeroMQ支持不少高級消息場景,但是你必須實現ZeroMQ框架中的各個塊(比方Socket或Device等),ZeroMQ很靈活。
一、持久化比較:服務器
zeroMq 不支持
rabbitMq 支持
持久化消息主要是指:MQ down或者MQ所在的服務器down了,消息不會丟失的機制。架構
二、技術點:可靠性、靈活的路由、集羣、事務、高可用的隊列、消息排序、問題追蹤、可視化管理工具、插件系統、社區
併發
rabbitMq 最優
zeroMq 次之
三、高併發:
從實現語言來看,RabbitMQ最高,緣由是它的實現語言是天生具有高併發高可用的erlang語言。
從以上綜合來看,我的會優先選擇rabbitMq,但存在便是道理,還要看我的的應用場景。
負載均衡