我有一个用Python(PIKA)和C#(官方NuGet包)编写的应用程序。这些应用程序正在将新消息发布到RabbitMQ队列中。在
到目前为止,我使用以下语法将新消息发布到队列中:
model.BasicPublish(exchange, routingKey, basicProperties, body);
我发现BasicPublish
函数总是返回成功的。我还在RabbitMQ文档中读到,如果代理被破坏,还没有发送的消息将被删除,而不发送到RabbitMQ。在
我想避免信息丢失。因此,我找到了3个选项来提交这些消息进行发布:
我认为使用restapi将消息插入队列将是我的理想选择。在
我发现使用API发送消息的方法是将POST消息发送到此端点:
^{pr2}$如您所见,这个端口(15672)属于RabbitMQ管理系统。在
不,不要使用httpapi。它不用于发布或消费消息的生产用途。在
您必须使用publisher确认。this tutorial中描述的技术也适用于.NET客户端库。在
您还可以调查写在官方.NET库之上的库,这些库可以正确地为您实现publisher确认。EasyNetQ就是这样一个库。在
另一个关注100%可靠性的好资源是this blog post。在
注意:RabbitMQ团队监控
rabbitmq-users
mailing list,有时只回答StackOverflow的问题。相关问题 更多 >
编程相关推荐