Я пытался выяснить, как лучше всего использовать библиотеку rabbitmq python (pika / aiopika), хотя я заметил, что получаю совсем другие результаты, когда я делаю то же самое, используя do tnet library (RabbitMQ.Client).
python:
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
exchange_name = "test-load"
channel.exchange_declare(exchange_name, exchange_type="topic", durable=True)
msg = 'WhySoSLow?'
while True:
channel.basic_publish(exchange=exchange_name,routing_key="random", body=msg)
Это дало мне результаты 11K msgs / s при 100% загрузке процессора
И для do tnet:
using RabbitMQ.Client;
var factory = new ConnectionFactory() { HostName = "localhost" };
using(var connection = factory.CreateConnection())
using(var channel = connection.CreateModel())
{
channel.ExchangeDeclare(exchange: "test-load", durable: true, type: "topic");
var routingKey = "random";
var message = "WhySoSLow?";
var body = Encoding.UTF8.GetBytes(message);
while(true)
{
channel.BasicPublish( exchange: "test-load",
routingKey: routingKey,
basicProperties: null,
body: body);
}
}
Этот код выдает результаты 100K мсг / с при использовании ЦП 30%
Что я делаю не так?