生产者
生产者创建消息,消息分为标签label和消息体(也叫负载体,payload)。label中放着交换机、路由键routeKEY,payload中放着业务数据,比如json本文,或者序列化数据.
消费者
消费者消费消息。
队列
rabbitmq内部对象(queue),用户存储消息。
交换机
主要用于路由消息exchange,交换机根据routeKey路由消息到队列中。
绑定键
bindingKey, 用于交换机和队列关联起来。
路由键
发送消息会指定交换机和路由键,用来指定消息的路由规则。需要和绑定键联合起来使用。
交换机的类型
| 类型 | 备注 |
|---|---|
| fanout | 发送消息到与该交换机绑定的队列 |
| direct | 发送消息到路由键与绑定键完全匹配的队列 |
| topic | 发送消息到路由键与绑定键匹配的队列。匹配规则:路由键由.分割的字符串,绑定键可以存在两种特殊字符,‘*’用于匹配一个单词,‘#’用于匹配多个单次(可以0个) |
| header | 不依赖路由键来路由消息,根据发送消息中的headers属性来匹配。在绑定交换机和队列时指定一组键值对。在发送消息时,rabbitmq获取消息中与绑定的键值对匹配。此性能很差,不实用。 |