我们有兴趣听听ActiveMQ与RabbitMQ和ZeroMQ的优缺点.还欢迎有关任何其他有趣的消息队列的信息.
我被要求评估RabbitMQ而不是Kafka,但发现很难找到一个比Kafka做得更好的原因.有谁知道它在吞吐量,耐用性,延迟或易用性方面是否真的更好?
我是RabbitMQ等消息代理的新手,我们可以使用它来为Celery等调度系统创建任务/消息队列.
现在,问题是:
我可以在PostgreSQL中创建一个表,它可以附加新任务并由Celery等消费者程序使用.
为什么我想为RabbitMQ设置一个全新的技术?
现在,我认为扩展不能成为答案,因为像PostgreSQL这样的数据库可以在分布式环境中工作.
我搜索了数据库为特定问题提出的问题,我发现:
现在,RabbitMQ或任何其他类似的消息代理如何解决这些问题?
此外,我发现AMQP
协议是它所遵循的.那有什么好处的?
可以Redis的也可以用作消息代理?我发现它更类似于memcache然后是RabbitMQ.
请注意这个!
我已根据官方网站上的说明在新的Centos 5.10 VM上安装了最新的RabbitMQ服务器(rabbitmq-server-3.3.0-1.noarch.rpm).
我在开发之前已经多次这样做了,从来没有遇到任何问题.但是,这次我无法使用默认的guest/guest用户登录管理Web界面.
在日志中,我看到以下内容:
=ERROR REPORT==== 4-Apr-2014::00:55:15 ===
webmachine error: path="api/whoami"
"Unauthorized"
Run Code Online (Sandbox Code Playgroud)
可能是什么导致了这个?
我安装rabbitmqadmin
并能够列出所有的交换和队列.我如何使用rabbitmqadmin
或rabbitmqctl
删除所有队列.
如何在不知道task_id
每个任务的情况下删除所有待处理任务?
该RabbitMQ的Java客户端具有以下概念:
Connection
- 与RabbitMQ服务器实例的连接Channel
- ???我想了解的关系,更重要的是,该协会之间.
Channel
是什么,除了这是你发布和使用的结构,以及它是从一个开放的连接创建的.如果有人可以向我解释"频道"代表什么,那么可能有助于澄清一些事情.在此先感谢您的帮助!
我一般只是开始使用RabbitMQ和AMQP.
大多数RabbitMQ文档似乎都专注于循环,即单个消费者使用单个消息,负载在每个消费者之间传播.这确实是我见证的行为.
例如:生产者有一个队列,每2秒发送一次消息:
var amqp = require('amqp');
var connection = amqp.createConnection({ host: "localhost", port: 5672 });
var count = 1;
connection.on('ready', function () {
var sendMessage = function(connection, queue_name, payload) {
var encoded_payload = JSON.stringify(payload);
connection.publish(queue_name, encoded_payload);
}
setInterval( function() {
var test_message = 'TEST '+count
sendMessage(connection, "my_queue_name", test_message)
count += 1;
}, 2000)
})
Run Code Online (Sandbox Code Playgroud)
这是一个消费者:
var amqp = require('amqp');
var connection = amqp.createConnection({ host: "localhost", port: 5672 });
connection.on('ready', function () {
connection.queue("my_queue_name", function(queue){
queue.bind('#'); …
Run Code Online (Sandbox Code Playgroud) rabbitmq ×10
amqp ×2
celery ×2
messaging ×2
apache-kafka ×1
celery-task ×1
channel ×1
java ×1
jms ×1
node-amqp ×1
node.js ×1
postgresql ×1
rabbitmqctl ×1
redis ×1
task ×1
zeromq ×1