- Broker:接受和分发消息的应用,RabtirMQ Server就是Message Braoker
- Virtual host:出于对多租户和安全因为设计,把AMQP的基本组件划分到一个虚拟的分组中,类似于网络中的namespace概念,每个用户在自己的vhost串讲exchange/queue等
- Connection:publisher/consumerhe braoker之间的TCP连接
- Channel:是connection内部建立的逻辑连接,如果程序支持多线程,每一个线程单独创建一个channel,channelId使channel完全是隔离状态的。
- Exchange:message到达broker的第一站,根据分发规则,匹配查询表中的routing key,分发消息到queue,常见类型:direct (point-to-point), topic (publish-subscribe) and fanout (multicast)
- Queue:消息最终被送到这里等待consumer取走
- Bindding:exchange和queue之间的虚拟连接,binding中可以包含routing key.Bingding信息被保存到exchange中的查询表中,用于message分发
生产者发送消息给broker,靠confirm和return来区分是否接受(与消费者是否接收无关)
confirm :ack表示已经接受
nack:表示被拒收
return:broker收到消息ack后,没有相应的队列进行投递时的生产状态,退回给生产者