RabbitMQ面试必问基本概念

189 阅读1分钟

组成

  • Message
  • Publisher
  • Exchange
  • Binding绑定
  • Queue
  • Channel
  • Consumer
  • Virtual Host
  • Broker

Exchange类型

  • direct: RoutingKey和Binding中的bindKey一致,则消息发送到队列中,完成匹配,广播模式
  • fanout: 只是将队列绑定到交换器总,Exchange发送的消息都会发送到绑定的队列上去,一对多广播,,该类型发送消息时最快的。
  • topic: Exchange通过模式匹配分配晓得路由键属性。路由键和绑定键的字符切分成单词,单词之间用逗号分隔。同时又两个通配符,‘#:配置0个或多个单词,*:配置模糊匹配’。

常用命令

  • 启动:./sbin/rabbitmq-server
  • 后台启动:./sbin/rabbitmq-server -detached
  • 状态:./sbin/rabbitmqctl status
  • 关闭: ./sbin/rabbitmqctl stop
  • 关闭RabbitMQ应用程序,保证erlang结点运行可以用stop_app: ./sbin/rabbitctl stop_app
  • 启动 RabbitMQ 应用程序:./sbin/rabbitmqctl start_app
  • 重置 RabbitMQ 节点:./sbin/rabbitmqctl reset
  • 查看已声明的队列:./sbin/rabbitmqctl list_queues
  • 查看交换器:./sbin/rabbitmqctl list_exchanges
  • 查看绑定:查看绑定

RabbitMQ集群的特性

  • 集群只会在单节点而不是所有节点上创建完整的数据。只保存元数据
  • 声明队列,交换器,绑定的时候,所有节点提交元数据成功后才返回。
  • 集群要求至少有一个磁盘节点,其他节点可以是内存节点,磁盘节点崩了,集群可以继续路由信息,但不能创建队列、创建交换器、绑定 、用户、全删,添加和删除节点。