Rabbit mq 属于 AMQP 标准的开源实现之一,相对于 Kafka 而言,个人认为该标准过于复杂陈腐,当然对于企业级的需求一定程度而言是合理的,以下简述 Rabbit MQ 中的一些基本概念
Producer
生产者,消息发送者
Consumer
消费者,消息接受者
Broker
rabbit mq 的 server,负责消息接收与分发
Vhost
虚拟主机,作为命名空间,对 exchange、queue 、binding 等进行隔离管控,多租户的基础
Exchange
交换机, producer 发送数据到 exchange
有 4 种 exchange
- direct
消息根据 routingKey 决定分发到哪个 queue - fanout
同一条消息分发到 exchange 绑定的所有 queue - topic
根据 正则表达式匹配 routingKey 决定分发到哪个 queue - header
Queue
消息队列,存储 message 的地方,消费者指定对应的 queue 进行消费
Binding
绑定,将 exchange 和 queue 进行绑定并指定路由的 routingKey,生产者将消息投递给 exchange,exchange 根据绑定的信息和路由 routingKey 将消息分发到对应的 queue