【发布时间】:2021-09-30 00:07:04
【问题描述】:
我很难理解 RabbitMQ 的基本概念。我发现在线文档不是很清楚。
到目前为止,我了解什么是通道、队列、绑定等。
但是如何实现以下用例:
用例:将帖子发送到不同主题的交易所。在接收方方面,根据主题,应通知不同的接收方。
因此,通过主题交换,以下内容应该是可行的:
- 创建一个频道
- 在这个频道中,创建一个主题交流
- 为每个要订阅的主题,创建一个队列和一个队列绑定,并以此主题为属性
我的困难在于 callback 将与 channel 相关,而不是与 queue 或 queue 绑定时间>。我不是 100% 确定我是否就在这里。
这就是我的问题:为了有多个回调,IOW:不同的消息处理程序,取决于订阅的主题 - 你是否必须创建 多个频道,每个“不同的消息处理” ?所有这些通道都应该获取相同的交换并为该特定主题定义自己的队列 + 队列绑定?
请确认这是否正确,或者我是否偏离了 AMPQ 的规范路径......“队列”听起来很轻,所以我直观地认为队列或队列绑定是附加一个正确的点消费事件处理程序,但似乎频道是我的朋友。对吧?
我问题的另一方面:
如果我真的必须为此使用多个频道,我是否必须为每个频道声明相同的交换(交换名称和“主题”的交换类型)?我希望有类似的东西:
- 用此名称和“主题”类型定义交换一次
- 对于每个通道,“获取”此预定义交换并通过向此交换添加队列和队列绑定来使用它
【问题讨论】: