Here are some example results.
The queue ptq is durable, using the default exchange, no replication. Both clients are using the same data source for the messages.
UniVerse BASIC Client using STOMP using receipts on publish, ack: client-individual on consume:
Source File : CLM.INSTANCE
Record stats: count = 100,000 min = 21 max = 23 avg = 23
Broker: RABBITMQ
CONNECTED, et = 0.083974
Sending 100,000 CLM.INSTANCE records to queue ptq ...
ET: 361.167181, rec/sec: 276.9
Subscribing to queue ptq ...
SUBSCRIBED, et = 0.00012
Retrieving messages from queue ptq...
recs: 100,000, et: 170.151906, rec/sec: 587.7
Unsubscribing from queue ptq ...
UNSUBSCRIBED, et = 0.060325
DISCONNECTED, et = 0.001189
And here are examples from my python publish-only client:
First with mandatory = False:
filespec : PTEST.CLM.INSTANCE
vhost : pttest
exchange :
queue : ptq
Mandatory : False
source file: CLM.INSTANCE
records : 100,000
min length : 21
max length : 23
avg length : 22.57549
et : 189.81155228614807
recs/sec : 526.8383235665564
And with mandatory = True:
filespec : PTEST.CLM.INSTANCE
vhost : pttest
exchange :
queue : ptq
Mandatory : True
source file: CLM.INSTANCE
records : 100,000
min length : 21
max length : 23
avg length : 22.57549
et : 203.69526314735413
recs/sec : 490.9294327952021
As you can see there is a pretty significant difference between STOMP with reciepts and pika using mandatory.
Thoughts?
Next, I'm going to download and try out the perf-test to get some baselines.
Thanks.
Perry