rabbitMq 基础知识总结

RabbitMq 高级消息队列协议 elong 语言开发的
几个重要的对象
server 也叫boser 就是服务器
ConnectionFactory :是connection的制造工厂
Connection:  封装了Rabbitmq的socket链接部分的逻辑
channel:管道我们的大部分业务的操作 queue exchange 消息的发布和订阅 都在这里完成的
vritual host: 虚拟主机虚拟的主机与主机之间的隔离  一般一个项目一个vritual host 模式是

rabbitMq 基础知识总结

exchange 交换机的类型
direct exchange 处理路由键  交换机根据路由键完全匹配 路由键是tag 则tag.man tag.min 都不会路由 
fanout exchange  不处理路由键 直接将消息转发到所有与交换机绑定的队列
topic exchange   路由键模式匹配  根据通配符匹配到队列
headers exchange  根据键值对去匹配的

 

rabbitMq 基础知识总结

工作模式
1.simple 简单的模式 一对一
2.work 工作模式  一对多  多个消费者是竞争的关系
3.订阅模式  一对多  通过交换机topic exchange 来实现 
4.广播模式 一对多 所有绑定交换机的队列都会发送  fannout exchange 

队列的属性:
TTL 消息的过期时间
Auto expire 生存时间多少时间内没有使用 就删除掉
Max length  队列的最大条数
Dead letter 死心交换机  死信路由键  
priority     优先级 

 

延迟队列: 队列设置过期时间,过期之后放到死信队列,监听死信队列 可以实现延迟队列

集群模式 普通模式  远程模式  镜像模式

普通模式:默认的模式就是普通模式 也叫主备模式,但是备份节点只可以提供读的功能,消息的实体是保存在一个节点上的,
当消费者访问备份节点的时候备份节点去请求主节点,将主节点的消息实体转发给消费者.主节点和备份节点保存有相同的元
数据,但是消息实体只在一个节点上保存. 在数据量和吞吐量不大的时候可以用这种模式.
缺点:如果消息所在的节点挂掉了,备份节点就无法获取到主节点未被消费的消息.如果消息持久化到磁盘要等到主节点恢复后才可以继续读

镜像模式:需要将队列变成镜像队列,存在与多个节点,每个节点上都存有消息实体.任意一个节点挂掉都不会影响消息的消费,更加稳定可靠 高可用
缺点:多个节点之间要进行消息的同步,网络 io 消耗比较大