我正在使用RabbitMQ和MassTransit使用pub / sub消息传递集成几个.Net模块。大多数消息订阅应该是持久的。但有些应该是短暂的。当消费者死亡时,不应存储消息,并且应丢弃已经排队的消息。
在每个模块中,我创建了1个带有2个接收端点的总线。一个配置为持久和非自动删除。另一个配置为非持久和自动删除。每个人都有自己的消费者。这可以按预期工作。
现在我正在尝试实现请求/响应消息。问题就出现了,因为现在发送方必须决定要路由到哪个交换机。这是错误的,因为我希望接收器决定是使用持久队列还是暂时队列。
我的问题:
答案 0 :(得分:0)
您的问题始于发送到未知端点的请求/响应,最后是删除交换。我想这些是不同的东西。
我无法逐点回答,只会尝试清理事情。
根据定义,请求/响应要求您知道发送内容的位置。根据MassTransit约定,端点地址始终是交换/队列对地址。因此,您不能让接收方决定谁将处理此消息,它将被传递到您发送给它的端点的交换/队列。
关于“取消订阅” - MassTransit不会删除任何内容。您必须清除未手动使用的绑定或使用管理API。