RabbitMQ用restapi发布消息

2024-06-07 18:30:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个用Python(PIKA)和C#(官方NuGet包)编写的应用程序。这些应用程序正在将新消息发布到RabbitMQ队列中。在

到目前为止,我使用以下语法将新消息发布到队列中:

model.BasicPublish(exchange, routingKey, basicProperties, body);

我发现BasicPublish函数总是返回成功的。我还在RabbitMQ文档中读到,如果代理被破坏,还没有发送的消息将被删除,而不发送到RabbitMQ。在

我想避免信息丢失。因此,我找到了3个选项来提交这些消息进行发布:

  1. 事务处理-非常慢。在
  2. 确认-我发现在多线程环境中实现很困难。在
  3. 对于RESTAPI,你怎么看?在

我认为使用restapi将消息插入队列将是我的理想选择。在

问题是:

我发现使用API发送消息的方法是将POST消息发送到此端点:

^{pr2}$

如您所见,这个端口(15672)属于RabbitMQ管理系统。在

  1. 这是将RabbitMQ与restapi一起使用的正确方法吗?在
  2. 我可以信任生产环境中的RabbitMQ管理系统吗?在
  3. 你能推荐一种替代restapi的方法,它能在插入(阻塞)后立即接受消息排队吗?在

Tags: 方法restapi应用程序消息model官方exchange环境
1条回答
网友
1楼 · 发布于 2024-06-07 18:30:41

不,不要使用httpapi。它不用于发布或消费消息的生产用途。在

您必须使用publisher确认。this tutorial中描述的技术也适用于.NET客户端库。在

您还可以调查写在官方.NET库之上的库,这些库可以正确地为您实现publisher确认。EasyNetQ就是这样一个库。在

另一个关注100%可靠性的好资源是this blog post。在


注意:RabbitMQ团队监控rabbitmq-usersmailing list,有时只回答StackOverflow的问题。

相关问题 更多 >

    热门问题