RabbitMQ允许'Quorum Queues'。据我在文档中所读到的,'quorum'队列允许在Rabbit集群中的所有节点上复制队列,而'classic'队列在特定节点上托管特定队列。我知道使用'quorum'比使用'classic'队列有更高的延迟。
我使用ServiceStack与RabbitMQ对话。交换和队列是基于我的请求和响应自动创建的,这一切都运行得很好。
我正在编写用于高可用性环境的软件-我正在编写C#代码,在Linux环境中使用.NET 6(Docker容器在K8中运行),并且正在使用ServiceStack 6.0.2。如果可能,我希望使用“仲裁”队列而不是“经典”队列,以帮助防止在集群中的某个兔子节点出现故障时丢失消息。
ServiceStack是否有可能创建“quorum”队列?在通读了文档、搜索了SO、搜索了ServiceStack论坛、一般的Web搜索和在独立应用程序中进行了实验之后,我没有找到通过ServiceStack自动创建这些类型的队列的明显方法。从外观上看,这些队列注册了各种特性,但似乎总是被创建为“经典”队列。
此外,使用ServiceStack和'quorum'队列会有什么问题吗?RabbitMQ文档建议A client library that can use regular mirrored queues will be able to use quorum queues.
,但我不清楚ServiceStack是否是这种情况。
1条答案
按热度按时间r55awzrz1#
无ServiceStack不支持创建Rabbit MQ仲裁队列。
ServiceStack MQ是多个MQ实现上的消息传递抽象,用于启用备用的Reply和OneWay端点来调用服务。
当您需要除此之外的其他特定于MQ的特性时,您将需要直接利用MQ库。