一、rabbit基本使用
broker理解为应用实体—rabbitMQ进程
virtual host虚拟主机(多租户概念)
exchange交换器—负责把消息投递到某个队列中
queue队列—消息存放处
使用流程:
1、生产者这建立连接,生成channel
2、发送消息(交换器的名字+RountingKey),通过exchange_name找到发送的目标交换器,然后对比RountingKey和交换器的BindingKey是否一致,若一致则投递过去
3、消费者消费数据
kafka和rocket是通过topic,rabbitMQ不一样,是通过交换器对比路由键和绑定的key是否一致,一致则发送
两套体系(点对点/topic体系)
rocket和kafka是同一个体系,都有分区/topic等 自定义协议
rabbitMQ是单独的体系(点对点的模式) 忽略掉topic AMQP协议
注意:BindingKey和RoutingKey是一对
二、安装
参考:https://baiyp.ren/RabbitMQ%E5%AE%89%E8%A3%85.html
三、交换器类型
常用直连交换器、扇形交换器、主题交换器
1、直连交换器—最简单的交换器-局限性强-一模一样才能消费
如下图,key1消息会同时发送到队列1和队列2,key2只会发送到队列3
2、扇形交换器—广播交换器—没有局限性-谁都能接受
3、主题交换器
4、头交换器—不常用-性能不高
配置header就可以进行交换
可以使用直连交换器代替
5、默认交换器-用的少-没有绑定关系
直接不声明交换器,扔到队列可以吗?—可以,走默认交换器