作者:中凱kai | 来源:互联网 | 2023-07-07 21:24
目录:
1 |
简介 | exchange,queue,bindings |
2 |
RabbitMQ设计模式 | 点对点,发布者-订阅者模式,请求-回应模式,消息路由 |
3 |
配置与管理RabbitMQ实例,插件,以及HTTP API |
4 |
集群 | 集群的原理,可伸缩性,创建,节点的增删,集群的连接 |
5 |
高可用 | 可靠性,远程实例之间队列的复制,AMQP中发布者的确认、客户端重连 |
6 |
综合 | 提供实用场景。使用第三方框架测试RabbitMQ程序 |
7 |
性能监控和调优 | PerTest工具。几种监控方案,演示如何监控稳定性和性能 |
8 |
维护 | 关于erlang语言的介绍,为理解和分析rabbitmq提供帮助。Crashdump查看器 |
9 |
安全 | 高层次概括消息代理的弱点,配置和解决。身份认证,授权,安全通信 |
10 |
内部 | 讨论了消息代理的内部体系结构,重要组件的详细概述 |
1.Inrtoducing RabbitMQ
企业级的消息传送系统需要满足的特性:
- 低耦合
- 实时负载处理
- 可扩展性
- 可维护性
- 易整合到新系统
用例:
- 高频率的金融交易系统
- 社交网络
- E-mail
- 。。。
注:消息队列也广泛的部署在云计算中,为云应用提供提供 消息即服务。
使用模式:
AMQP : 高级消息队列协议
RabbitMQ: 为了实现系统之间的双向解耦实现。当生产者生产大量数据,消费者无法快速消费,那么需要一个中间层,保存这个数据。
通常队列服务包括 生产者,队列,消费者。 RabbitMQ在这基本概念上多做了一层抽象。在生产者和消费者之间,加入了交换器(Exchange).
另外几个重要概念:
虚拟主机(Vhost):一个虚拟主机持有一组交换机、队列和绑定。-------用户只能在虚拟主机的粒度进行权限控制。因此,如果需要禁止A组访问B组的交换机/队列/绑定,必须为A和B分别创建一个虚拟主机。每一个RabbitMQ服务器都有一个默认的虚拟主机“/”。
交换机:Exchange用于转发消息,但是不会做存储,如果没有Queue 到 Exchange 的话,会丢失掉Producer发来的消息。
队列
绑定:也就是队列和交换机需要相绑定。
交换机的几种类型:Direct Exchange,Topic Exchange, Headers Exchange, Fanout
- Direct:direct 类型的行为是”先匹配, 再投送”. 即在绑定时设定一个 routing_key, 消息的 routing_key 匹配时, 才会被交换器投送到绑定的队列中去.
- Topic:按规则转发消息(最灵活)
- Headers:设置header attribute参数类型的交换机
- Fanout:转发消息到所有绑定队列