rabbitmq : 默认交换机是没有名字的直连交换机,每个新建的队列都会绑定到默认交换机上,绑定的路由键与队列名称相同 直连交换机: 将队列绑定到某个交换机上,同时绑定一个路由key,当携带路由key的消息投递到交换机时,就会发给绑定了同样路由的队列
扇型交换机(funout exchange)将消息路由给绑定到它身上的所有队列,而不理会绑定的路由键 实现了广播,最简单的一种使用
主题交换机 能够模糊匹配路由key,发送到主题交换机上的消息需要携带指定规则的routing_key,主题交换机会根据这个规则将数据发送到对应的(多个)队列上,主题交换机的routing_key需要有一定的规则,交换机和队列的binding_key需要采用*.#.*…的格式,每个部分用.分开
*表示一个单词 #表示任意数量(零个或多个)单词。 https://www.jianshu.com/p/469f4608ce5d
头交换机 头交换机使用多个消息属性来代替路由键建立路由规则。通过判断消息头的值能否与指定的绑定相匹配来确立路由规则,可以看做是另一种直连交换机,只是匹配方式不同
rabbitmq的队列持久化和消息持久化不同,需要分别设置
绑定是定义一个路由键,然后队列与该路由键进行绑定,这样消息就能发给绑定了该路由key的队列 一个队列可以注册多个消费者,也可以注册一个独享的消费者
消息确认的两种方式: 自动确认模式,消息发出到消费端后立即删除; 显示确认模式:消息发送后等应用端返回回执,等不到则会将消息发给另一个消费者,如果没有则死等
消息的负载均衡是发生在消费者(consumer)之间的,即同一个队列注册多个消费者时,而不是队列(queue)之间
连接和通道 一旦 TCP 连接建立起来,客户端紧接着可以创建一个 AMQP 信道(Channel),每个信道都会被指派一个唯一的 ID。 信道是建立在 Connection 之上的虚拟连接,RabbitMQ 处理的每条 AMQP 指令都是通过信道完成的。 https://www.cnblogs.com/eleven24/p/10326718.html 信道是为了在多线程/进程发送的情况下不用创建多个连接,而是每个线程/进程分配一个信道
|