Мы пытаемся использовать механизм хранения и пересылки HornetQ ... однако пересылка сообщений от одного автономного экземпляра HornetQ к другому с использованием основного моста идет очень медленно.Нам не удалось увеличить пропускную способность выше 200 сообщений в секунду.
Удивительным фактом является то, что если мы указываем одного и того же клиента (который публиковал сообщения на экземпляр перенаправления HornetQ) непосредственно на экземпляр назначения HornetQмы начинаем наблюдать за пропускной способностью более 1000 сообщений в секунду (этот клиент основан на JMS).Это в основном означает, что основной мост, который был настроен между экземпляром Forwarding HornetQ и экземпляром Destination HornetQ, проблематичен.
Ниже приведены соответствующие разделы для настройки основного моста на Forwarding HornetQ:
<connectors>
<connector name="netty-bridge">
<factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
<param key="host" value="destination.xxx.com"/>
<param key="port" value="5445"/>
<param key="batch-delay" value="50"/>
<param key="tcp-send-buffer-size" value="1048576"/>
<param key="tcp-receive-buffer-size" value="1048576"/>
<param key="use-nio" value="true"/>
</connector>
</connectors>
<address-settings>
<address-setting match="jms.queue.Record">
<dead-letter-address>jms.queue.RecordDLQ</dead-letter-address>
<max-size-bytes>262144000</max-size-bytes>
<page-size-bytes>10485760</page-size-bytes>
<address-full-policy>PAGE</address-full-policy>
</address-setting>
</address-settings>
<queues>
<queue name="jms.queue.Record">
<address>jms.queue.Record</address>
</queue>
</queues>
<bridges>
<bridge name="core-bridge">
<queue-name>jms.queue.Record</queue-name>
<forwarding-address>jms.queue.Record</forwarding-address>
<retry-interval>1000</retry-interval>
<retry-interval-multiplier>1.0</retry-interval-multiplier>
<reconnect-attempts>-1</reconnect-attempts>
<confirmation-window-size>10485760</confirmation-window-size>
<static-connectors>
<connector-ref>netty-bridge</connector-ref>
</static-connectors>
</bridge>
</bridges>
Ниже приведены соответствующие разделы для настройки основного моста на Destination HornetQ:
<acceptors>
<acceptor name="netty">
<factory-class>org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory</factory-class>
<param key="host" value="${hornetq.remoting.netty.host:192.168.2.xxx}"/>
<param key="port" value="${hornetq.remoting.netty.port:xxxx}"/>
<param key="tcp-send-buffer-size" value="1048576"/>
<param key="tcp-receive-buffer-size" value="1048576"/>
<param key="use-nio" value="true"/>
<param key="batch-delay" value="50"/>
<param key="use-nio" value="true"/>
</acceptor>
<acceptors>
<address-settings>
<address-setting match="jms.queue.Record">
<dead-letter-address>jms.queue.RecordDLQ</dead-letter-address>
<max-size-bytes>262144000</max-size-bytes>
<page-size-bytes>10485760</page-size-bytes>
<address-full-policy>PAGE</address-full-policy>
</address-setting>
</address-settings>
<queues>
<queue name="jms.queue.Record">
<address>jms.queue.Record</address>
</queue>
</queues>
Все системные переменные (CPU / Memory / Disk IO / Network / и т. Д.) Используются недостаточно, и естьв журналах ошибок нет.
Примечание : мы пробовали как с NIO, так и со старым / старым IO.Это было опробовано как с HornetQ-2.2.5-Final, так и с HornetQ-2.2.8-GA (2.2.8-GA был построен из исходного кода)
Любая идея относительно того, что может вызывать эту проблему и чторазрешение может быть?
Другие наблюдения : Похоже, что сообщения, передаваемые через базовый мост, являются транзакционными ... поэтому возможно ли пакетировать эти транзакции и иметь связь междудва экземпляра HornetQ происходят асинхронно?