Poor topic publisher with topic -> queue routings

Solution Unverified - Updated -

Issue

A long time back we stopped using durable topic subscriptions, and moved to configuring topic -> queue routings in the xml config. This gave us better control over load balancing of consumers, and we thought it had no impact on producer send speed.

Recently we've hit a scalability bottleneck elsewhere, that i believe is here.
We have .net NMS publishers publishing to a topic which has 11 topic -> queue routings, and gets a max message rate attainable of ~1200 messages/sec, with each message around 2k in size.

We aim to get the maximum possible throughput to consumers, so the broker is never blocking/delaying a producer until the JMS hits an understood/visible limit (memory/diskstore). Currently the limit on the rate which we're able to deliver messages from producers to consumers is the speed at which the JMS can write/remove messages from the index & diskstore. This happens in such a way that producers block on the send() call.

org.apache.activemq.store.kahadb.KahaDBStore:

public Future<Object> asyncAddQueueMessage(final ConnectionContext context, final Message message)
public void removeAsyncMessage(ConnectionContext context, MessageAck ack)

Environment

Red Hat JBoss A-MQ 6.1

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content