java開發(fā)中常見中間件 常見的消息隊列有哪些,它們之間有什么區(qū)別?
常見的消息隊列有哪些,它們之間有什么區(qū)別?Rabbitmq:Rabbitmq是一個基于Erlang語言的開源消息隊列。Rabbitmq在數(shù)據(jù)一致性、穩(wěn)定性和可靠性方面都非常優(yōu)秀。它直接或間接地支持多種
常見的消息隊列有哪些,它們之間有什么區(qū)別?
Rabbitmq:
Rabbitmq是一個基于Erlang語言的開源消息隊列。Rabbitmq在數(shù)據(jù)一致性、穩(wěn)定性和可靠性方面都非常優(yōu)秀。它直接或間接地支持多種協(xié)議,并能很好地支持多種語言。然而,它的性能和吞吐量并不令人滿意。由于Erlang語言的局限性,二次開發(fā)的成本很高。
Kafka:
Kafka是LinkedIn于2010年12月開發(fā)的分布式流媒體平臺,開源。它現(xiàn)在是Apache的頂級項目,是一個高性能的跨語言分布式流媒體平臺??焖俪志没?,消息持久化開銷在O(1)以下;高吞吐量
ActiveMQ:
是Apache下的一個子項目,介于zeromq和rabbitmq之間。與rabbitmq類似,它可以用少量代碼高效地實現(xiàn)高級應(yīng)用場景,并且只需要較低的成本。被稱為消息中間件的“瑞士軍刀”。然而,ActiveMQ不夠輕量級,并且當有許多隊列時,它不能很好地支持。據(jù)說也有丟失信息的情況。
Rocketmq:
Rocketmq是阿里巴巴的開源消息中間件。它目前在Apache中孵化,并在純Java中開發(fā)。它具有高吞吐量、高可用性,適合大規(guī)模分布式計算