1、什么是消息中间件(MQ)?
没有标准定义,一般认为,消息中间件属于分布式系统中一个子系统,关注于数据的发送和接收,利用高效可靠的异步消息传递机制对分布式系统中的其余子系统进行继承。
2、为什么要用消息中间件?
- 解耦
- 异步处理能力
- 缓冲能力
- 伸缩性
- 扩展性
3、和RPC有和区别?
略。
4、有哪些使用场景?
- 异步处理
场景:用户注册后,需要发送注册邮件和短信通知,以告知用户注册成功。如下图所示。
- 应用解耦
- 日志处理
- 流量削峰
一般使用在秒杀或团购活动中,12306购票系统、双十一等高并发量场景。
5、如何选择消息中间件?
6、AMQP与RabbitMQ
AMQP,Advanced Message Queuing Protocol。提供统一消息服务的应用层标准高级消息队列协议。
(可以理解为和JDBC类似的东西,就是一系列的标准。)
7、客户端与RabbitMQ连接
- 连接
- 信道
8、RabbitMQ基本要素及工作原理
- 生产者、消费者、消息
- 交换器、队列、绑定、路由器
9、消息确认
消费者收到每条消息都必须要进行消息确认。
有2种确认方式:自动确认、自行确认。(涉及不同的配置操作方式,暂略)
10、RabbitMQ的基本概念 - 虚拟主机vhost
11、RabbitMQ的交换器类型
- Direct
- Fanout
- Topic
12、为什么选择RabbitMQ?
小结:本文主要是带领去大概了解下MQ和RabbitMQ。具体操作还是在RabbitMQ的java客户端使用上。本文图片均来自King老师对消息中间件的讲解,感谢King老师的付出。