你好,我正在寻找简单的解决方案,兔子MQ。下面是在兔子身上做的设置。
1.启动Rabbit服务器
1.创建带有持久选项的主题类型的Exchange(myExchange)。
1.使用durable选项创建队列(myqueue),x-max-length-bytes设置为4,x-max-length设置为2。
1.将带有myrouting的myexchange绑定到myqueue。
1.发布消息使用basic_publish使用aqmp通道(channel.basicPublish(myexchange,myrouting,true,null,“test”. getName(“UTF-8”));
1.使用发布者确认设置,如channel.confirmSelect(); public String getString();
以下代码片段
channel = connectionFactory.getChannel();
channel.queueDeclarePassive("myqueue");
channel.confirmSelect();
channel.basicPublish("myexchange", "myrouting", true,
null, "test".getBytes("UTF-8"));
channel.waitForConfirmsOrDie();
现在兔子mq没有回复超过邮件数量/大小的错误。我可以发送1000条消息/1 kb大小,消费者也可以使用所有这些消息。那么我如何才能得到错误代码呢?有没有人帮忙?
1条答案
按热度按时间vsdwdz231#
这里有两件事你需要考虑。首先,您的消费者可能会以足够快的速度消费消息,以至于永远不会达到限制。
其次,当达到队列长度限制时,将从队列的头部删除消息,以便为新消息腾出空间。这意味着您将丢失队列中最早的消息-docs。此行为在
3.7.0
中是可配置的。但是,在任何情况下都不会返回错误,所以我不知道为什么你认为会返回错误。文档清楚地说明了达到队列限制时会发生什么。