gpt4 book ai didi

python - RabbitMQ 客户端性能

转载 作者:太空宇宙 更新时间:2023-11-04 06:11:17 24 4
gpt4 key购买 nike

伙计们,尝试用 pika 客户端将日志文件解析到 RabbitMQ 中:

import pika

credentials = pika.PlainCredentials('username', 'password')
parameters = pika.ConnectionParameters(credentials=credentials,host='ec2privateip',port=5672,virtual_host='/')
connection = pika.BlockingConnection(parameters)
channel = connection.channel()
channel.queue_declare(queue='blahqueue')

f = open(r'apicalls.log', 'r')

while True:
line = f.readline()
if not line:
time.sleep(1)
else:
channel.basic_publish(exchange='',routing_key='hello',body=line)

为了性能,我发现 1 台 ec2 机器可以以大约 300 条消息/秒的速度发送。这不会从 m1.small 更改为 m1.large。

为了更好的性能,我应该花时间用 C 语言重写上面的代码,还是应该寻找其他地方?

在同一台 RabbitMQ 机器上本地运行的测试显示完全相同。

如果我在本地运行 runjava.sh com.rabbitmq.examples.MulticastMain 测试,我会看到 10K/秒的性能。这让我相信 Python 客户端很慢,或者我没有正确测试设置。

最佳答案

用 C 重写上面的代码可能不会带来任何改进,因为文件系统和随机 time.sleep 是瓶颈。我对 Amazon EC2 不完全确定,但一般来说,当您升级更快的机器时,您不一定会获得更快的文件系统 IO。

发布速度和消费速度之间也存在差异。显然要确保问题出在发布速度上。

关于python - RabbitMQ 客户端性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18622961/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com