小编pin*_*ain的帖子

如何在RabbitMQ中重新排队消息

在消费者获得消息之后,消费者/工作者进行一些验证然后调用Web服务.在此阶段,如果发生任何错误或验证失败,我们希望将消息放回最初使用的队列.

我读过RabbitMQ文档.但我对reject,nack和cancel方法之间的区别感到困惑.

amqp rabbitmq node-amqp

28
推荐指数
1
解决办法
4万
查看次数

RabbitMQ:什么是默认的x-message-ttl值

我在RabbitMQ文档中找不到安装附带的默认x-message-ttl值.

我知道如何将其设置为所需的值,但我很想知道默认值.

amqp rabbitmq

15
推荐指数
1
解决办法
1万
查看次数

消费者不承认来自RabbitMq的消息

我创建了一个简单的发布者和使用者在队列上订阅的消费者basic.consume.

我的消费者在作业无异常运行时确认消息.每当我遇到异常时,我都不会收到消息并提前返回.只有已确认的消息才会从队列中消失,因此工作正常.
现在我希望消费者再次接收失败的消息,但重新生成这些消息的唯一方法是重新启动消费者.

我该如何处理这个用例?

设置代码

$channel = new AMQPChannel($connection);

$exchange = new AMQPExchange($channel);

$exchange->setName('my-exchange');
$exchange->setType('fanout');
$exchange->declare();

$queue = new AMQPQueue($channel);
$queue->setName('my-queue');
$queue->declare();
$queue->bind('my-exchange');
Run Code Online (Sandbox Code Playgroud)

消费者代码

$queue->consume(array($this, 'callback'));

public function callback(AMQPEnvelope $msg)
{
    try {
        //Do some business logic
    } catch (Exception $ex) {
        //Log exception
        return;
    }
    return $queue->ack($msg->getDeliveryTag());
}
Run Code Online (Sandbox Code Playgroud)

制片人代码

$exchange->publish('message');
Run Code Online (Sandbox Code Playgroud)

php amqp rabbitmq

14
推荐指数
1
解决办法
2万
查看次数

如何在消息传递中使用相关id的实际示例?

任何人都可以举例说明生产中如何使用相关ID?

我已经读过它用于请求/响应类型的消息,但我不明白我会在哪里使用它?

我可以想到的一个例子(可能是错误的)是在发布订阅场景中,我可以有5个订阅者,如果我得到5个具有相同关联ID的回复,那么我可以说我的所有订阅者都收到了它.不确定这是否正确使用它.

或者如果我发送一条简单的消息,我可以使用相关性来保证客户端收到它.

还有其他例子吗?

nservicebus message-queue amqp rabbitmq cqrs

12
推荐指数
2
解决办法
1万
查看次数

我不应该使用couchdb进行消息传递或实时活动流的任何原因?

虽然使用ampq或xmpp(rabbitmq或ejabbered,可能有couchdb作为后端)似乎非常适合在社交游戏平台上提供关于朋友状态的实时更新,其中更新很小但频繁,我不禁想到为什么不会榻榻米是一个提供此类更新的好平台吗?

我能想到的主要优势是能够根据朋友和更改api的可用性来过滤更新,这使得开发这样的应用程序并管理它(包括复制)相比,与ampq或xmpp相比,你必须考虑如何管理pubsub节点以及在任何时间点订阅它们的人.

但是,我不禁想到这太好了,我无法找到有关couchdb缺点的信息.不知何故,感觉就像使用MySQL进行消息传递一样,这就是为什么我对使用它犹豫不决.

任何人都有使用couchdb这样的应用程序的经验?你会推荐另一个平台吗?

messaging couchdb xmpp real-time amqp

7
推荐指数
1
解决办法
2206
查看次数

没有amqp服务器的django-celery(rabbitmq)

我正在使用芹菜进行分布式任务处理.我想在web主机上部署我的工作,只是为了展示我的项目的工作.那么我如何让djcelery使用数据库(sqlalchemy)作为django而不是rabbitmq或其他amqp服务器的后端.

django amqp task-queue celery

6
推荐指数
1
解决办法
2474
查看次数

在android中使用rabbitmq进行聊天

我们在android中实现了rabbitmq聊天.但是rabbitmq的java客户端是耗电的.对于android聊天,是不是很好用?我们使用直接交换个人队列的人和个人路由键.在rabbitmq中进行一对一聊天的最佳设计模式是什么?以及减少电池使用的方法

android amqp rabbitmq

6
推荐指数
1
解决办法
8570
查看次数

AMQP basic.get从队列中提取并发消费者

当使用RabbitMQ作为Message Broker时,我有一个场景,其中多个并发使用者使用basic.get AMQP方法从队列中提取消息,并使用显式确认来从队列中删除消息.假设以下设置

Q具有消息M1,M2,M3并且消费者C1,C2和C3(每个都具有其自己的连接和信道)连接到它.

  1. 如何在basic.get方法中处理并发?对basic.get方法的调用是否同步处理每个使用自己的连接和通道的并发消费者?C1,C2和C3发出basic.get调用以同时接收消息(假设服务器同时接收所有3个请求).

  2. C1使用basic.get请求消息并获取M1.当C2请求消息时,由于它使用不同的连接,它是否再次获得M1?

  3. 消费者如何以预定义的大小批量提取消息?

message-queue amqp rabbitmq

6
推荐指数
2
解决办法
5290
查看次数

RabbitMQ:从队列扇出(不是从交换)

RabbitMQ 有什么方法可以让多个消费者从同一个队列获取相同的消息吗?

我需要向任何正在收听的人发送同样的信息,但也要确保有人处理它。基本上,我需要交换器的扇出功能与队列的basic.ack功能相结合。有什么方法可以以可扩展的方式实现这一点吗?

message-queue amqp rabbitmq

5
推荐指数
1
解决办法
1459
查看次数

.NET 的 AMQP V1.0 客户端

我正在考虑使用 RabbitMQ 或 ActiveMQ 等产品。我看到在某种程度上,这些产品对 AMQP v1.0 提供了一定程度的支持。

但是,我正在努力寻找将 AMQP 1.0 与 .NET 结合使用的客户端。到目前为止,我遇到的唯一一个是 Apache Qpid。但是,必须安装其所有依赖项并构建它,而不是仅使用 NuGet 之类的东西来获取客户端库,这似乎有点麻烦,并且不会让我有信心继续支持。

Microsoft Azure 服务总线支持 AMQP 1.0 并有一个客户端,但据我所知,它似乎特定于该产品,这很遗憾,因为我认为 AMQP 的一个好处是可以轻松切换不同的代理。

从我在 RabbitMQ 上读到的内容来看,他们似乎没有承诺为 AMQP 1.0 构建客户端。

有没有人对以上有任何想法,是否有任何我忽略的客户?

提前谢谢了

.net amqp rabbitmq qpid azureservicebus

5
推荐指数
2
解决办法
3427
查看次数