标签: rabbitmq

RabbiMQ什么是"Ready""Unacked"类型的消息

我在RabbitMQ中对这两种类型的消息感到困惑.

我看到我的一些队列中有0个"Unacked"和1000个"Ready"消息,其中一些有1000个"Unacked",0个"Ready"消息.

他们之间有什么区别?

我觉得两者都是一样的.

我怎么知道消费者有多少消息被读取?

rabbitmq

60
推荐指数
2
解决办法
4万
查看次数

在rabbitmq中池化连接或通道之间是否存在性能差异?

我是Rabbitmq(和编程)的新手,如果这很明显,请提前对不起.我正在创建一个池来共享正在处理队列的线程,但我不确定是否应该在池中使用连接或通道.

我知道我需要通道来完成实际工作,但每个连接有一个通道(从队列中获得更多吞吐量)是否有性能优势?或者我最好只使用每个应用程序的单个连接并汇集多个渠道?

注意:因为我正在汇集资源,初始成本不是一个因素,因为我知道连接比渠道更昂贵.我对吞吐量更感兴趣.

queue message-queue rabbitmq task-queue

57
推荐指数
2
解决办法
3万
查看次数

"名称为"兔子"的节点已经在运行",但也"无法连接到节点'兔子'"

Rabbitmq服务器无法启动,说它已经运行:

$: rabbitmq-server
Activating RabbitMQ plugins ...
0 plugins activated:

node with name "rabbit" already running on "android-d1af002161676bee"
diagnostics:
- nodes and their ports on android-d1af002161676bee: [{rabbit,52176},
                                                      {rabbitmqprelaunch2254,
                                                       59205}]
- current node: 'rabbitmqprelaunch2254@android-d1af002161676bee'
- current node home dir: /Users/Jordan
- current node cookie hash: ZSx3slRJURGK/nHXDTBRqQ==
Run Code Online (Sandbox Code Playgroud)

但是,rabbitmqctl似乎不这么认为:

rabbitmqctl -n rabbit status
Status of node 'rabbit@android-d1af002161676bee' ...
Error: unable to connect to node 'rabbit@android-d1af002161676bee': nodedown
diagnostics:
- nodes and their ports on android-d1af002161676bee: [{rabbit,52176},
                                                      {rabbitmqctl2462,59256}]
- current node: 'rabbitmqctl2462@android-d1af002161676bee'
- current …
Run Code Online (Sandbox Code Playgroud)

rabbitmq

56
推荐指数
5
解决办法
6万
查看次数

第一次更改主机名后,rabbitmq-server无法启动

我正在为我的django项目使用django-celery.最后一天我更改了我的计算机主机名(我正在使用Ubuntu 12.04,编辑文件'/ etc/hostname'),然后在下次重启后django-celery失败并出现错误

Consumer: Connection Error: [Errno 111] Connection refused. Trying again in 4 seconds...
Run Code Online (Sandbox Code Playgroud)

这个错误经过一番研究,我能找到的,改变我的主机名从导致该错误在这里.我的rabbitmq启动日志显示

file:/ var/log/rabbitmq/startup_log

Activating RabbitMQ plugins ...

********************************************************************************
********************************************************************************

0 plugins activated:

ERROR: epmd error for host "jinesh": nxdomain (non-existing domain)
Run Code Online (Sandbox Code Playgroud)

我的startup_err文件为空.

我跑的时候

root@jinesh:/home/jinesh# rabbitmqctl list_users
Listing users ...
Error: unable to connect to node rabbit@jinesh: nodedown

DIAGNOSTICS
===========

nodes in question: [rabbit@jinesh]

hosts, their running nodes and ports:
- unable to connect to epmd on jinesh: nxdomain

current node details:
- node …
Run Code Online (Sandbox Code Playgroud)

ubuntu rabbitmq django-celery

56
推荐指数
5
解决办法
6万
查看次数

RabbitMQ示例:多个线程,通道和队列

我刚刚阅读了RabbitMQ的Java API文档,发现它非常丰富且直截了当.如何设置简单Channel的发布/消费的示例非常容易理解.但这是一个非常简单/基本的例子,它给我留下了一个重要的问题:如何设置1+ Channels来发布/消费多个队列?

比方说,我有上有3个队列中的RabbitMQ服务器:logging,security_eventscustomer_orders.因此,我们要么需要一个Channel能够发布/消费所有3个队列,或者更有可能需要3个独立的Channels队列,每个队列都专用于一个队列.

除此之外,RabbitMQ的最佳实践要求我们Channel为每个消费者线程设置1 个.对于这个例子,让我们说security_events是罚款,只有1消费者线程,但loggingcustomer_order都需要5个线程来处理卷.所以,如果我理解正确,这是否意味着我们需要:

  • Channel用于发布/消费的1 和1个消费者线程security_events; 和
  • Channels用于发布/消费的5 和5个消费者线程logging; 和
  • Channels用于发布/消费的5 和5个消费者线程customer_orders

如果我的理解在这里被误导,请先纠正我.无论哪种方式,一些厌倦战斗的RabbitMQ老手能帮助我"连接点"和一个体面的代码示例来设置符合我要求的发布者/消费者吗?提前致谢!

java messaging multithreading channel rabbitmq

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

NServiceBus和Rabbit MQ或Kafka

我正在尝试学习消息传递系统.我发现RabbitMq和NServiceBus在很少的地方一起使用.我的问题是

  1. 如果我使用RabbitMQ那么为什么我需要NServiceBus?反之亦然
  2. 什么NServiceBus可以做但RabbitMQ或卡夫卡不能?
  3. 我可以一起使用NServiceBus和kafka吗?或者Apache-Kafka不需要NServiceBus

nservicebus message-queue rabbitmq apache-kafka

54
推荐指数
1
解决办法
9838
查看次数

为什么我们需要使用rabbitmq

当我们在Python中使用一个名为Twisted的更强大的网络框架时,为什么我们需要RabbitMQ.我试图理解为什么有人想要使用RabbitMQ.

你能提供一个使用RabbitMQ的场景或例子吗?

另外,我在哪里可以找到有关如何使用RabbitMQ的教程?

python django twisted rabbitmq

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

RabbitMQ vs Socket.io?

我正在进行实时的实时Web应用程序开发.

浏览器用户应该能够通过node.js服务器相互通信.其中一个用户写入消息,所有其他用户将获得它.

我不太了解RabbitMQ的工作原理.但是从快速阅读来看,它似乎处理消息的发布/订阅.

用户(在浏览器中)发布内容,订阅者(在其他浏览器中)获取该消息.这不是Socket.io用websockets做的吗?

这是我的问题:

  1. 每个人的优点/缺点是什么?
  2. Socket.io可以取代RabbitMQ吗?
  3. 是否存在我需要RabbitMQ用于Socket.io不足的Web应用程序的场景?

amqp rabbitmq websocket node.js socket.io

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

RabbitMQ/AMQP - MicroService架构中的最佳实践队列/主题设计

我们正在考虑为我们的微服务基础设施(编排)引入基于AMQP的方法.我们提供多种服务,比如客户服务,用户服务,文章服务等.我们计划将RabbitMQ作为我们的中央消息系统.

我正在寻找有关主题/队列等系统设计的最佳实践.一种选择是为我们系统中可能发生的每个事件创建一个消息队列,例如:

user-service.user.deleted
user-service.user.updated
user-service.user.created
...
Run Code Online (Sandbox Code Playgroud)

我认为创建数百个消息队列不是正确的方法,不是吗?

我想使用Spring和这些不错的注释,例如:

  @RabbitListener(queues="user-service.user.deleted")
  public void handleEvent(UserDeletedEvent event){...
Run Code Online (Sandbox Code Playgroud)

将"用户服务通知"作为一个队列,然后将所有通知发送到该队列是不是更好?我仍然想将听众只注册到所有事件的子集,那么如何解决呢?

我的第二个问题:如果我想要侦听之前未创建的队列,我将在RabbitMQ中获得异常.我知道我可以使用AmqpAdmin"声明"一个队列,但是我是否应该为每个微服务中的数百个队列执行此操作,因为到目前为止总是会发生队列创建?

esb amqp rabbitmq spring-amqp

52
推荐指数
3
解决办法
2万
查看次数

从ActiveMQ切换到RabbitMQ

我目前正在使用ActiveMQ来满足我的消息传递需求; 除了几个db故障之外,它运行良好.但是,我至少考虑尝试使用RabbitMQ.但在此之前,我想了解以下内容:

  1. RabbitMQ在哪些方面与ActiveMQ不同?RabbitMQ比ActiveMQ更好还是更差?
  2. 相比之下,RabbitMQ配置有多容易/困难?
  3. RabbitMQ与Spring的集成程度如何?
    • 使用ActiveMQ,我只需将连接工厂bean连接到一个,JmsTemplate并使用DefaultMessageListenerbean将队列连接到各自的处理程序.我可以用RabbitMQ做同样的事情吗?

activemq-classic amqp rabbitmq

50
推荐指数
3
解决办法
3万
查看次数