Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
确保消息的传递,RabbitMq_Rabbitmq_Messaging_Enterprise Integration - Fatal编程技术网

确保消息的传递,RabbitMq

确保消息的传递,RabbitMq,rabbitmq,messaging,enterprise-integration,Rabbitmq,Messaging,Enterprise Integration,我知道通常的方法是在发布消息之前创建消费者队列,但这里似乎存在着非常紧密的耦合,通常我不想知道有多少队列从这个交换中消费以及每个队列得到多少消息,我们如何在将服务器与消费者分离的同时保持可靠性 在此映像上,客户端应用程序仍然需要知道是否有任何服务器队列可用于处理身份验证请求。因为如果没有队列,消息将是死信,我不相信没有人会想到这一点?或者我们假设这个队列总是存在的(它们是持久的) RabbitMQ和AMQP 0.9.1通常的工作方式是不将消息的发送者耦合到使用者。您可以使用许多不同的方法查询e

我知道通常的方法是在发布消息之前创建消费者队列,但这里似乎存在着非常紧密的耦合,通常我不想知道有多少队列从这个交换中消费以及每个队列得到多少消息,我们如何在将服务器与消费者分离的同时保持可靠性


在此映像上,客户端应用程序仍然需要知道是否有任何服务器队列可用于处理身份验证请求。因为如果没有队列,消息将是死信,我不相信没有人会想到这一点?或者我们假设这个队列总是存在的(它们是持久的)

RabbitMQ和AMQP 0.9.1通常的工作方式是不将消息的发送者耦合到使用者。您可以使用许多不同的方法查询exchange,以找出绑定到它的队列,但在发送消息时,您永远无法确定确切可用的队列,除非您自己实际创建队列和绑定 可以检查消息是否未放入队列的一种方法是使用。另一种可能的异步方式是侦听标准RabbitMQ日志交换上关于您的消息是DLQ'd的通知。

您可以使用队列池来保证可靠的消息传递。在这种情况下,客户机应用程序不需要明确了解可用队列-它只需向
QueuePool
询问下一个可用队列。如果
QueuePool
耗尽,QueuePool将以客户机通过高阶函数定义的方式返回队列。更多信息