The big difference between topics and queues is that for queues, if the messages have a persistent delivery mode, they are always added to the message store. This is only true for topics if a durable subscriber exists and is interested in that topic.

By default, the message store used is the journal, which uses a jdbc store for its long term storage.

cheers,

Rob

On 15 Jan 2007, at 19:39, James Strachan wrote:

Are you positive you are using like for like - i.e. persistent
messages for both queues and topics?

You might also wanna try out using our maven based performance test
harness which makes it easy to test out your environment - it might be
worth seeing if your JMS code gets wildly different results which
could indicate some issue in how you are using JMS...

http://incubator.apache.org/activemq/activemq-performance-module- users-manual.html


On 1/15/07, Sebastien Pennec <[EMAIL PROTECTED]> wrote:
Hello James,

I understand very well that there are many factors that influence such tests. In my setup, I've tried to make the environment for both Queue and Topic as similar as possible, not to have the best results possible but to have results that can be compared.

As far as I know, the default config for Active MQ does not use JDBC, or does it? Also, on my tests, it's the Queue that is 40 times slower that the Topic.

My goal was more to have your opinion on the fact that, using the same environment, sending messages to a Queue is *much* slower that sending to a Topic. Does that make you thing that I've done something wrong, or is it something that can be expected?

I am currently checking out the source code of ActiveMQ to run some tests as described on your website[1] so I'll see how far my figures are from your tests.

Thanks for the answer,

Sébastien

[1] http://incubator.apache.org/activemq/jmeter-performance- tests.html


James Strachan wrote:
> In general, it all depends
>
> http://incubator.apache.org/activemq/how-fast-is-activemq.html
>
> if using JDBC persistence, there is a bit more work required to store > a topic message than a queue (since topics need to maintain a list of
> messages each consumer requires, whereas a queue is logically
> equivalent to a single row insert). Also obviously, if there are more
> than one consumer, then the broker has more work to do with topics.
>
> But like many things, it all depends on what you are doing, how you're
> doing it and what your environment is. YMMV
>
>
> On 1/15/07, Sebastien Pennec <[EMAIL PROTECTED]> wrote:
>> Hello,
>>
>> I checked on the list archive, but couldn't find the answer to my
>> current situation,
>> so here I am :)
>>
>> I've launched an ActiveMQ server on my machine, with the default
>> configuration stuff.
>> The only thing I've added is the jndi.properties file that I've found
>> in the
>> documentation.
>>
>> This jndi config file helps create an example Queue and an example
>> Topic. I can
>> easily connect message producers and consumers to the Queue and Topic.
>> The server, as
>> well as the two message producers and the two message consumers, are
>> on my local machine.
>>
>> When I send messages to the Topic, I observe that the time it takes to
>> send the
>> message is about 0.25 milliseconds. When I send messages to the Queue,
>> the figure
>> goes up to 10 milliseconds. These figures are the average time that is
>> observed when
>> sending 10'000 messages.
>> They are modified by the presence or absence of a consumer: it takes
>> approximately
>> 10% less time when there is no consumer.
>>
>> Is it a normal behavior? I expected the performance between Topic and
>> Queue to be
>> closer than that.
>>
>> Thanks for your help,
>>
>> Sébastien
>>
>> --
>> Sébastien Pennec
>> [EMAIL PROTECTED]
>>
>> Logback: The reliable, generic, fast and flexible logging framework
>> for Java.
>> http://logback.qos.ch/
>>
>
>

--
Sébastien Pennec
[EMAIL PROTECTED]

Logback: The reliable, generic, fast and flexible logging framework for Java.
http://logback.qos.ch/



--

James
-------
http://radio.weblogs.com/0112098/

Reply via email to