若是从消息组件来说主要划分位两类: 架构
一、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表明一个会话任务