若是從消息組件來說主要劃分位兩類: 架構
一、JMS組件:ActiveMQ(慢);性能
二、AMQP組件(協議):性能是最高的,大數據
而AMQP有兩個主要的開源: spa
1)RabbitMQ:使用最普遍,速度也很快。3d
2)Kafka:是在大數據時代產生,明日之星blog
一、RabbitMQ是一個由erlang開發的AMQP(Advanced Message Queue)的開源實現; rabbitmq
二、RabbitMQ是由RabbitMQ Techenologies Ltd開發而且提供商業支持的。隊列
該公司在2010年4月被SpringSource(VMWare的一個部門)收購。在2013年5月被併入Pivotal。 路由
三、RabbitMQ的官網是:http://www.rabbitmq.com;開發
在全部的消息系統之中,其基本組從必定就是生產者、消費者、消息組件,其中消息組件能夠起到的左右:數據緩衝隊列,可是在 RabbitMQ裏面這個消息組件的組成:
Exchange:交換空間,負責管理全部隊列。
Queue:數據隊列
RoutingKey:若是你如今全部隊列的RoutingKey都同樣,那麼就屬於廣播消息,而若是不同,則表示點對點消息。
broker:消息隊列服務主機
Exchange:消息交換機,它指定消息按什麼規則,路由到哪一個隊列
Queue:消息隊列載體,每一個消息都會被投入到一個或多個隊列
binding:綁定,把exchange和queue按照路由規則綁定起來
Routing Key:路由關鍵字,exchange根據這個關鍵字進行消息投遞
vhost:虛擬主機,一個vroker裏能夠設多個vhost,實現用戶的權限分離
在rabbitmq裏面提供有一個虛擬主機的概念,所謂的虛擬主機能夠理解爲不一樣的用戶空間,也就是說各個空間能夠有本身的隊列信息,有本身的操做用戶。
producer:消息生產者
consumer:消息消費者
channel:消息通道,在客戶端的每一個鏈接裏,可創建多個channel,每一個channel表明一個會話任務