Edit:基础要求是,我有多个Web服务服务器进程接收来自Web服务客户端的请求,执行一些处理(我希望使用工作队列进行的处理),然后将结果返回给相应的客户端。但是,我希望能够等待这个队列的使用者在超时内获取已发布的请求。如果此超时过期,那么我希望原始webservice进程接收到此通知,以便它能够反馈给客户机。
我正在尝试实现一种“发布TTL”,如果消息是死字的,则(仅)通知原始发布者。(我希望发布者知道消息是否在某个超时内未被使用)。
这就解决了我的需求,因为只有发布消息的发布服务器才会将DLX消息路由到它。
然而,这似乎有点复杂--而且效率很低,因为通配符路由会对所有消息进行(除了那些没有字母的消息--这通常不应该发生)。
下面是我的设计图:
谢谢!
对,结果证明这个解决方案是有效的。当使用通配符绑定键和主题交换时,可能会有一个很小的延迟,但可能没有什么需要自己真正关心的。
邮件列表中的一个评论是,由于这是一个基于RPC的系统,每个发布者都已经定义了一个唯一的响应队列,因此可以将该队列绑定到DLX(而不是为每个发布者创建一个新的唯一队列),从而获得“有效”响应和被丢弃的消息。
在我的例子中,我想在一个通用的发布服务器中包装这个“发布TTL”功能,所以引用响应队列没有意义--尽管我的解决方案的效率可能略低,因为在出现死信的情况下会多一次往返。
如果您对Rabbit的人用于主题路由的机制感兴趣,可以访问:http://www.rabbitmq.com/blog/2010/09/14/very-fast-and-scalable-topic-routing-part-1/http://www.rabbitmq.com/blog/2011/03/28/very-fast-and-scalable-topic-routing-part-2//
本文向大家介绍Python如何将消息发布到RabbitMQ,包括了Python如何将消息发布到RabbitMQ的使用技巧和注意事项,需要的朋友参考一下 示例 从导入库开始。 接下来,我们需要打开与RabbitMQ服务器的连接。 之后,我们需要建立一个频道。每个连接可以有多个通道,通常在执行多线程任务时,建议(但不是必需)每个线程一个。 建立频道后,我们就可以开始准备信息了。 现在,我们可以通过简单
我已经实现了如下所示的示例Spring Dynamic Destination 在rabbitmq中,它动态地创建一个交换,但没有提供绑定或路由密钥的选项。我的要求是用路由密钥向这个动态创建的exchange发送消息。我需要如何实现这一点来设置路由密钥?
我是新Kubernetes。我在一个pod中实现了一个网络服务器,并为该pod设置了一个Nodeport服务。我想发送一个POST请求与自定义消息(在json中)到一个pod后,它已经被创建并准备好使用。我想使用go客户端库。你能告诉我怎么做吗?图书馆的哪个部分来帮忙?谢谢。
我正在考虑将Socket.io集成到一个express应用程序中。 js有一个非常好的特性,可以通过socket.io消息调用快速路由。 不过,帆在其他方面比我需要的要多一点。我正在寻找一种方法,使socket.io请求转发到快速路由,而不必使用整个sails框架。我想这是一个很常见的需求,所以我很惊讶我没有找到一个npm模块来做这件事,但是找了很长时间,我什么也没有找到。Express.io会这
在学习RabbitMq中,有几种情况我不太知道怎么回事: 情况一 假如我定义了一个队列test,他没有显示绑定交换机,那么会自动绑定到默认交换机,那么这个时候绑定键bindkey是不是队列名字test??现在生产者发了一个消息,假如这个消息没有定义路由键routingKey,那么这个时候消息会被路由到队列test吗? 情况二 假如我定义了一个队列test1和test2,他们也是没有显示绑定交换机,
全部的 我对RabbitMQ在消耗大量消息(例如280000条)时的性能有一个问题。从性能角度来看,它似乎会上下波动。从管理控制台获取的图中所示的图表演示了这一点,其中消费者平均每秒约40条消息,然后跳到每秒约120条消息: 该模式将再次重复,它将再次返回到40,然后再次返回120,依此类推,如果我在1小时后运行相同的测试,则会发生相同的上下效应,但范围可能会有很大差异,例如每秒140到400条消