一、消息组件
如果从消息组件来讲主要划分位两类:
1、JMS组件:ActiveMQ(慢);
2、AMQP组件(协议):性能是最高的,
而AMQP有两个主要的开源:
1)RabbitMQ:使用最广泛,速度也很快。
2)Kafka:是在大数据时代产生,明日之星
二、RabbitMQ
1、RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue)的开源实现;
2、RabbitMQ是由RabbitMQ Techenologies Ltd开发并且提供商业支持的。
该公司在2010年4月被SpringSource(VMWare的一个部门)收购。在2013年5月被并入Pivotal。
3、RabbitMQ的官网是:http://www.rabbitmq.com;
三、rabbitmq的系统架构
在所有的消息系统之中,其基本组从一定就是生产者、消费者、消息组件,其中消息组件可以起到的左右:数据缓冲队列,但是在 RabbitMQ里面这个消息组件的组成:
Exchange:交换空间,负责管理所有队列。
Queue:数据队列
RoutingKey:如果你现在所有队列的RoutingKey都一样,那么就属于广播消息,而如果不一样,则表示点对点消息。
四、RabbitMQ核心概念
broker:消息队列服务主机
Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列
Queue:消息队列载体,每个消息都会被投入到一个或多个队列
binding:绑定,把exchange和queue按照路由规则绑定起来
Routing Key:路由关键字,exchange根据这个关键字进行消息投递
vhost:虚拟主机,一个vroker里可以设多个vhost,实现用户的权限分离
在rabbitmq里面提供有一个虚拟主机的概念,所谓的虚拟主机可以理解为不同的用户空间,也就是说各个空间可以有自己的队列信息,有自己的操作用户。
producer:消息生产者
consumer:消息消费者
channel:消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务