[rabbitmq-discuss] Puka client and publisher confirms performance
Marek Majkowski
majek04 at gmail.com
Wed Mar 14 13:16:11 GMT 2012
On Wed, Mar 14, 2012 at 13:14, Marek Majkowski <majek04 at gmail.com> wrote:
> On Wed, Mar 14, 2012 at 12:31, Christos Stavrakakis
> <stavr.chris at gmail.com> wrote:
>> I am using Puka client [1] in order to send messages with guaranteed
>> delivery using publisher confirms.
>>
>> Trying to send 200.000 messages I see that waiting for the confirms, takes a
>> lot of time.
>>
>> To be more specific:
>>
>> promises = []
>> t0 = time.time()
>> for i in range(0,200000):
>> promise = client.basic_publish(exchange='test_exchange',
>> routing_key='test',
>> body="Hello
>> world!")
>> promises.append(promise)
>>
>> t1 = time.time()
>> client.wait(promises)
>> t2 = time.time()
>> promise = client.close()
>> client.wait(promise)
>>
>> In this example t1-t0 is arround 9s while t2-t1 is more than 100 seconds!!
>> Increasing the number of messages results in even worse performance.
>>
>> Can anyone explain this behavior ? Is there a more effective way to use
>> publisher confirms ?
Right, to the point:
- first part of code adds messages to the write buffer - no network activity
- second part of the code - wait for replies from rabbit
(there may be some cpu cost for managing a big number of promises,
within Puka library, this is TBD)
Marek
More information about the rabbitmq-discuss
mailing list