rabbitmq 笔记简要 三
1.什么是routingKey路由键?
生产者将消息发送给交换机的时候,会指定一个routingkey,用来指定这个消息的路由规则,这个routingkey需要于交换机类型和绑定键(bindingkey)联合使用才能最终生效。
2.binding绑定?
通过绑定将交换机和队列广联起来,一般会指定一个bindingkey,这样rabbitmq就知道如何正确路由消息到队列了
3.交换器4种类型
主要有以下4种类型
fanout:把所有发送到该交换器的消息路由到所有与该交换器绑定的队列中
direct:把消息路由到bindingkey海润toutingkey完全匹配的队列中
topic匹配规则: routingkey 为一个点号 . 分割的字符串 比如 jave.xiaoka.show bindingkey和routingkey一样也是用点号.分割的字符串
bindingkey可使用*和#用作于模糊匹配 * 匹配一个单词 # 匹配多个或者0个
headers :不依赖路由键匹配规则路由消息,是根据发送消息内容中的headers属性进行匹配,性能差 基本用不到
4. 生产者消息运转?
1.producer先链接到broker,建立连接connection,开启一个信道(channel)。
2.producer声明一个交换器并设置好相关属性
3.prodecer声明一个队列并设置好相关属性
4.producer通过路由键将交换器和队列绑定起来
5.producer发送消息到broker,其中包含路由键、交换器等信息。
6.相应的交换器根据接收到的路由键查找匹配的队列
7.如果找到。将消息存入对应的队列,如果没有找到,会根据生产者的配置丢弃或者退回给生产者
8.关闭信道
15.消费者接受消息过程?
1.producer先链接到broker,建立连接connection,开启一个信道(channel)。
2.向broker请求消费响应的队列中消息,可能会设置响应的回调函数。
3.等待broker回应并投递相应队列中的消息,接受消息。
4.消费者确认收到的消息,ack
5.rabbitmq从队列中删除已经确定的消息
6.关闭信道
7.关闭连接