RabbitMQ是使用Erlang语言实现的消息队列,它可以用来限流。
1、基本概念
Broker:接收和分发消息,可以包含多个virtualhost
Virualhost:Virualhost与Virtualhost之间是相互独立的,Virtualhost内包含Exchange和queue,
Exchange:把消息路由到指定的queue
Binding Key:binding key(也叫routing key)保存在Exchange的查询表中,大概存放格式为<binding key,queue>,作为消息分发的依据
Connection和Channel:一个Connnection包含多个Channel,消费者和生产者都由channel和Exchange/Queue保持连接,channel视作轻量级的channel,减少建立TCP连接的开销
2、工作模式
Exchange的类型:Direct、Fanout、Topic,分别对应三种工作模式:路由模式、订阅模式、主题模式
Direct:队列名就是routing key,producer只给一个队列发送消息
Fandout:producer给所有绑定到Exchange的queue发送消息
Topic:producer给对应routing key队列发送消息
3、发送消息的步骤:
(1) 创建Exchange和Queue
//“direct”是Exchange类型
channel.