我在RabbitMQ中对这两种类型的消息感到困惑.
我看到我的一些队列中有0个"Unacked"和1000个"Ready"消息,其中一些有1000个"Unacked",0个"Ready"消息.
他们之间有什么区别?
我觉得两者都是一样的.
我怎么知道消费者有多少消息被读取?
我是Rabbitmq(和编程)的新手,如果这很明显,请提前对不起.我正在创建一个池来共享正在处理队列的线程,但我不确定是否应该在池中使用连接或通道.
我知道我需要通道来完成实际工作,但每个连接有一个通道(从队列中获得更多吞吐量)是否有性能优势?或者我最好只使用每个应用程序的单个连接并汇集多个渠道?
注意:因为我正在汇集资源,初始成本不是一个因素,因为我知道连接比渠道更昂贵.我对吞吐量更感兴趣.
Rabbitmq服务器无法启动,说它已经运行:
Run Code Online (Sandbox Code Playgroud)$: 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==
但是,rabbitmqctl似乎不这么认为:
Run Code Online (Sandbox Code Playgroud)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 …
我正在为我的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) 我刚刚阅读了RabbitMQ的Java API文档,发现它非常丰富且直截了当.如何设置简单Channel的发布/消费的示例非常容易理解.但这是一个非常简单/基本的例子,它给我留下了一个重要的问题:如何设置1+ Channels来发布/消费多个队列?
比方说,我有上有3个队列中的RabbitMQ服务器:logging,security_events和customer_orders.因此,我们要么需要一个Channel能够发布/消费所有3个队列,或者更有可能需要3个独立的Channels队列,每个队列都专用于一个队列.
除此之外,RabbitMQ的最佳实践要求我们Channel为每个消费者线程设置1 个.对于这个例子,让我们说security_events是罚款,只有1消费者线程,但logging并customer_order都需要5个线程来处理卷.所以,如果我理解正确,这是否意味着我们需要:
Channel用于发布/消费的1 和1个消费者线程security_events; 和Channels用于发布/消费的5 和5个消费者线程logging; 和Channels用于发布/消费的5 和5个消费者线程customer_orders?如果我的理解在这里被误导,请先纠正我.无论哪种方式,一些厌倦战斗的RabbitMQ老手能帮助我"连接点"和一个体面的代码示例来设置符合我要求的发布者/消费者吗?提前致谢!
我正在尝试学习消息传递系统.我发现RabbitMq和NServiceBus在很少的地方一起使用.我的问题是
当我们在Python中使用一个名为Twisted的更强大的网络框架时,为什么我们需要RabbitMQ.我试图理解为什么有人想要使用RabbitMQ.
你能提供一个使用RabbitMQ的场景或例子吗?
另外,我在哪里可以找到有关如何使用RabbitMQ的教程?
我正在进行实时的实时Web应用程序开发.
浏览器用户应该能够通过node.js服务器相互通信.其中一个用户写入消息,所有其他用户将获得它.
我不太了解RabbitMQ的工作原理.但是从快速阅读来看,它似乎处理消息的发布/订阅.
用户(在浏览器中)发布内容,订阅者(在其他浏览器中)获取该消息.这不是Socket.io用websockets做的吗?
这是我的问题:
我们正在考虑为我们的微服务基础设施(编排)引入基于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"声明"一个队列,但是我是否应该为每个微服务中的数百个队列执行此操作,因为到目前为止总是会发生队列创建?
我目前正在使用ActiveMQ来满足我的消息传递需求; 除了几个db故障之外,它运行良好.但是,我至少考虑尝试使用RabbitMQ.但在此之前,我想了解以下内容:
JmsTemplate并使用DefaultMessageListenerbean将队列连接到各自的处理程序.我可以用RabbitMQ做同样的事情吗?rabbitmq ×10
amqp ×3
apache-kafka ×1
channel ×1
django ×1
esb ×1
java ×1
messaging ×1
node.js ×1
nservicebus ×1
python ×1
queue ×1
socket.io ×1
spring-amqp ×1
task-queue ×1
twisted ×1
ubuntu ×1
websocket ×1