RabbitMQ是用Erlang语言实现的,它有几个概念
broker:消息队列服务器实体
exchange:消息交换机,它指定消息按什么规则,路由到哪一个队列
queue:消息队列,每一个消息都会被投入到一个或多个队列
binding:绑定,就是把exchange和queue按照路由规则绑定起来
routing key:路由关键字,exchange根据这个关键字进行消息投递
vhost:虚拟主机,一个broker里能够开设多个虚拟主机,用做不一样用户的权限分离,至关于数据库
channel:消息通道,在客户端的每一个链接里,能够建议多个channel,每一个channel表明一个会话任务数据库
消息队列的使用过程
1.生产者和消费者客户端链接到消息队列服务器broker,打开一个channel
2.生产者客户端声明一个exchange,并设置相关属性
3.生产者和消费者客户端声明一个queue,并设置相关属性
4.消费者客户端使用routing key,在exchange和queue之间创建好绑定关系
5.生产者客户端投递消息到exchange
6.exchange接收到消息后,根据消息的key和已经设置的绑定,进行消息路由,将消息投递到一个或多个队列中服务器
路由模式 经过routing key 有选择的发送队列(订阅模式的升级版)
通配符模式 经过routing key 通配符 模糊匹配 绑定 (路由模式的升级版)3d