消息中间件RabbitMQ知识点

1.rabbitmq 的使用场景有哪些?

  1. 解耦
  2. 削峰
  3. 异步处理
  4. 分布式应用之间的通信

2. rabbitmq 有哪些重要的角色?

  1. 生产者
  2. 消费者
  3. 代理

3. rabbitmq 有哪些重要的组件?

消息中间件RabbitMQ知识点_第1张图片

  1. Connection:  Connection是RabbitMQ的socket链接,它封装了socket协议相关部分逻辑。
  2. Channel:Channel是我们与RabbitMQ打交道的最重要的一个接口,我们大部分的业务操作是在Channel这个接口中完成的,包括定义Queue、定义Exchange、绑定Queue与Exchange、发布消息等。
  3. Queue:Queue(队列)是RabbitMQ的内部对象,用于存储消息。
  4. Message:由Header和Body组成,Header是由生产者添加的各种属性的集合,包括Message是否被持久化、由哪个Message Queue接受、优先级是多少等。而Body是真正需要传输的APP数据。
  5. Exchange(交换器):用于接受、分配消息。Exchange包含4种类型:Direct, Topic, Fanout, Headers。不同的类型,他们如何处理绑定到队列方面的行为会有所不同。                                                                                                                                           
  6. direct类型的Exchange路由规则也很简单,它会把消息路由到那些binding key与routing key完全匹配的Queue中。
  7. fanout类型的Exchange路由规则非常简单,它会把所有发送到该Exchange的消息路由到所有与它绑定的Queue中。
  8. Topic类型前面讲到direct类型的Exchange路由规则是完全匹配binding key与routing key,但这种严格的匹配方式在很多情况下不能满足实际业务需求。topic类型的Exchange在匹配规则上进行了扩展,它与direct类型的Exchage相似,也是将消息路由到binding key与routing key相匹配的Queue中,但这里的匹配规则有些不同
  9. RPC:在一个大型的公司,系统由大大小小的服务构成,不同的团队维护不同的代码,部署在不同的机器。但是在做开发时候往往要用到其它团队的方法,因为已经有了实现。但是这些服务部署不同的机器上,想要调用就需要网络通信,这些代码繁琐且复杂,一不小心就会写的很低效。RPC协议定义了规划,其它的公司都给出了不同的实现。现在我们的客户端、服务端都是消息发布者与消息接收者。

消息中间件RabbitMQ知识点_第2张图片

4. rabbitmq 中 vhost 的作用是什么?

  1. 虚拟主机vhost,感觉他主要是起到了消息隔离的作用
  2. vhost本质上是一个mini版的RabbitMQ服务器,拥有自己的队列、绑定、交换器和权限控制。

11. rabbitmq 怎么实现延迟消息队列?

12. rabbitmq 集群有什么用?

13. rabbitmq 节点的类型有哪些?

14. rabbitmq 集群搭建需要注意哪些问题?

15. rabbitmq 每个节点是其他节点的完整拷贝吗?为什么?

16. rabbitmq 集群中唯一一个磁盘节点崩溃了会发生什么情况?

17. rabbitmq 对集群节点停止顺序有要求吗?

你可能感兴趣的:(分布式中间件)