标签: rabbitmq

通过PECL安装AMQP

我正在尝试安装RabbitMQ PECL扩展但运行后

sudo pecl install amqp
Run Code Online (Sandbox Code Playgroud)

我得到以下神秘的错误消息,广泛的谷歌搜索没有帮助解决.

我安装了这些软件包:

  • librabbitmq - RabbitMQ C客户端本身)
  • librabbitmq-dev - dev头等

和RabbitMQ在localhost上成功运行

也许它可能是C客户端版本的不匹配以及PECL扩展所期望的,其他人遇到过这个吗?

在下方输出....

干杯

running: make
/bin/bash /tmp/pear/temp/pear-build-rootZNUmac/amqp-1.0.0/libtool --mode=compile cc  -I.         -I/tmp/pear/temp/amqp -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootZNUmac/amqp-        1.0.0/include -I/tmp/pear/temp/pear-build-rootZNUmac/amqp-1.0.0/main -I/tmp/pear/temp/amqp -      I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -       I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -    D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -DHAVE_CONFIG_H  -g -O2   -c /tmp/pear/temp/amqp/amqp.c -o amqp.lo
libtool: compile:  cc -I. -I/tmp/pear/temp/amqp -DPHP_ATOM_INC -I/tmp/pear/temp/pear-   build-rootZNUmac/amqp-1.0.0/include -I/tmp/pear/temp/pear-build-rootZNUmac/amqp-1.0.0/main -   I/tmp/pear/temp/amqp -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -  I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -  D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -g -O2 -c    /tmp/pear/temp/amqp/amqp.c  -fPIC -DPIC …
Run Code Online (Sandbox Code Playgroud)

php pecl amqp rabbitmq

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

为什么芹菜会给rabbitmq添加数千个队列,这些队列在任务完成后似乎会持续很长时间?

我正在使用带有rabbitmq后端的芹菜.在rabbitmq中生成数千个队列,其中包含0或1个项目,如下所示:

$ sudo rabbitmqctl list_queues
Listing queues ...
c2e9b4beefc7468ea7c9005009a57e1d        1
1162a89dd72840b19fbe9151c63a4eaa        0
07638a97896744a190f8131c3ba063de        0
b34f8d6d7402408c92c77ff93cdd7cf8        1
f388839917ff4afa9338ef81c28aad75        0
8b898d0c7c7e4be4aa8007b38ccc00ea        1
3fb4be51aaaa4ac097af535301084b01        1
Run Code Online (Sandbox Code Playgroud)

这似乎是低效的,但我进一步观察到这些队列在处理完成后会持续很长时间.

我发现似乎这样做的任务:

@celery.task(ignore_result=True)
def write_pages(page_generator):  
    g = group(render_page.s(page) for page in page_generator)
    res = g.apply_async()

    for rendered_page in res:
        print rendered_page # TODO: print to file
Run Code Online (Sandbox Code Playgroud)

似乎因为这些任务是在一个组中调用的,所以它们被抛入队列但从未被释放.但是,我显然正在消耗结果(因为我可以在迭代时看到它们被打印出来res.所以,我不明白为什么这些任务会持续存在于队列中.

另外,我想知道正在创建的大量队列是否表明我做错了什么.

感谢您的帮助!

rabbitmq celery

18
推荐指数
1
解决办法
3264
查看次数

在RabbitMQ中的Ack或Nack

我正在使用rabbitMQ,我使用basic_get从队列中获取每条消息而不自动执行acking过程,这意味着消息保留在队列中,直到我确认或无法消息.

有时我会抛出因为抛出一些异常而无法处理的消息,这会阻止它们被完全处理.

问题是,如果我同时收到成功的消息和抛出的异常,那么重要的是,我的意思是结果消息总是会从队列中消失,所以如果我在这种情况下使用ack或nack,那有什么关系呢?也许我在使用每个操作时都会错过一些东西?

amqp rabbitmq

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

如何在RabbitMQ服务器上设置超时检测?

我正在尝试使用这个 python绑定RabbitMQ.

我注意到的一件事是,如果我不洁净地杀死一个消费者(模仿一个崩溃的程序),服务器会认为这个消费者仍然存在很长时间.结果是每个其他消息都将被忽略.

例如,如果您杀死消费者1次并重新连接,则将忽略1/2消息.如果您杀死另一个消费者,则将忽略2/3消息.如果你杀了第3个,那么将忽略3/4个消息,依此类推.

我试过打开确认,但它似乎没有帮助.我找到的唯一解决方案是手动停止服务器并重置它.

有没有更好的办法?

如何重新创建此方案

  • 运行rabbitmq.

  • 取消归档此库.

  • 此处下载消费者和发布者.运行amqp_consumer.py两次.运行amqp_publisher.py,输入一些数据并观察它是否按预期工作.消息以循环方式接收.

  • 使用kill -9或任务管理器杀死其中一个使用者进程.

  • 现在,当您发布消息时,50%的消息将丢失.

python message-queue amqp rabbitmq

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

对于低端设置,RabbitMQ有什么好的替代品吗?

我现在已经在一些设置中使用RabbitMQ,我无法摆脱必须有更容易设置的东西的感觉.尽管它很方便,但很难证明MQ只能处理每天处理几千条消息的解决方案,这仅仅是因为维护RabbitMQ是如此之多.

有没有人通过简单的安装和维护过程了解AMQP实施?

对于那些不了解它的人,RabbitMQ是用Erlang编写的AMQP实现.它应该是非常稳定的,但只有你对Erlang有足够的了解才能避免它的问题.无论是内存限制还是主机名的更改,总是需要深入了解它.

message-queue amqp rabbitmq mq

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

RabbitMQ:消息仍为"未确认"

我的Java应用程序向RabbitMQ交换发送消息,然后交换重定向消息到绑定队列.我在RabbitMQ中使用Springframework AMQP java插件.

问题:消息进入队列,但它保持"未确认"状态,它永远不会变为"就绪".

可能是什么原因?

java message-queue amqp rabbitmq

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

想要选择:Node.js Meteor.js Ratchet RabbitMQ for Real-time WebChat(论坛)

在提出这个问题之前,我做了一些研究,但我无法找到适合我情况的具体答案.

我想创建WebChat,实时同步到服务器上的DB.(MySQL或MongoDB - 一切都还可以)但是关于同步数据的方法很少:

  1. Ratchet的PHP + websockets和我的工作只是通过JSON创建一个协议来进行身份验证和消息传递.许多文档,许多教程.(我知道websockets在IE中不起作用,但无所谓)

  2. node.js + socket.io - 有与1相同的技术解决方案,但是使用不同的语言.

  3. node.js + meteor.js(sockJS) - 似乎人们都做了所有工作,我不需要添加任何协议功能,只需编写逻辑代码.但是高负荷怎么样?文档怎么样......非常年轻的框架.

  4. Tornado + TornadIO2(socket.io)+ RabbitMQ

有人可以将RabbitMQ与meteor.js进行比较吗?按表现.谁能说哪种方式更好?

我不知道所有的框架,所以如果我有比这四个更好的选择,请告诉我:)

请告诉我你的意见.谢谢!

rabbitmq websocket node.js meteor ratchet

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

由于SocketException,RabbitMQ新连接被拒绝

在尝试创建与另一台服务器上运行的rabbitmq的新连接时,我收到以下错误:

java.io.IOException
at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:106)
at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:102)
at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:124)
at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:406)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:516)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:533)


Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; reason: java.net.SocketException: Connection reset


at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:67)
at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:33)
at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:343)
at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:216)
at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:118)



Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at java.io.DataInputStream.readUnsignedByte(Unknown Source)
at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:95)
at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:131)
at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:533)
Run Code Online (Sandbox Code Playgroud)

采取的步骤:

  • rabbitmq正在服务器上运行.
  • 服务器已指定
  • 指定了默认端口

lsof -i tcp:5672

命令PID用户FD类型设备大小/关闭节点名称

beam.smp 3084 rabbitmq 15u IPv6 18611 0t0 TCP*:amqp(LISTEN)

rabbitmqctl list_connections

列出连接... guest client_server …

java connection amqp rabbitmq

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

RabbitMQ:芹菜提供什么Pika没有?

我一直致力于通过RabbitMQ来完成一些分布式任务.

我花了一些时间试图让Celery做我想做的事情,但却无法让它发挥作用.

然后我尝试使用Pika和刚刚工作的东西,完美无缺,几分钟之内.

使用Pika而不是芹菜,有什么我错过的吗?

python rabbitmq task-queue celery pika

17
推荐指数
2
解决办法
8058
查看次数

RabbitMQ中心跳的合理值是多少?

RabbitMQ允许您"心跳"连接,即客户端和服务器不时检查(使用空消息)对方仍然存在且可用.到现在为止还挺好.

不幸的是,我无法在文档中找到建议的地方,这是一个合理的价值.我知道你需要在几秒钟内指定心跳,但什么是真实世界的最佳练习值?

显然,它不应该太频繁(流量),但也不是太罕见(代理,......).有什么建议?

15秒好吗?30?60?...?

rabbitmq

17
推荐指数
2
解决办法
7115
查看次数

标签 统计

rabbitmq ×10

amqp ×6

message-queue ×3

celery ×2

java ×2

python ×2

connection ×1

meteor ×1

mq ×1

node.js ×1

pecl ×1

php ×1

pika ×1

ratchet ×1

task-queue ×1

websocket ×1