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 クライアントが遅いか、セットアップを適切にテストしていないと思われます。