Chúng tôi đang cố gắng sử dụng kho lưu trữ HornetQ và cơ chế chuyển tiếp ... tuy nhiên chuyển tiếp tin nhắn từ một cá thể HornetQ độc lập sang một phiên bản khác bằng cách sử dụng cây cầu lõi rất chậm. Chúng tôi đã không thể tăng tỷ lệ thông lượng trên 200 tin nhắn mỗi giây.Thông lượng rất thấp Sử dụng cầu lõi HornetQ
Thực tế đáng ngạc nhiên là nếu chúng tôi chỉ cùng một máy khách (đã xuất bản thư cho cá thể HornetQ chuyển tiếp) trực tiếp tại đích HornetQ đích, chúng tôi bắt đầu quan sát tốc độ thông lượng trên 1000 thư mỗi giây (khách hàng này là JMS dựa trên). Điều này về cơ bản có nghĩa là cây cầu chính được cấu hình giữa thể hiện Forwarding HornetQ và thể hiện đích của HornetQ là vấn đề.
Sau đây là các bộ phận liên quan để cấu hình cầu cốt lõi trên 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>
Sau đây là các bộ phận liên quan để cấu hình cầu cốt lõi trên HornetQ Điểm đến:
<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>
Tất cả các biến hệ thống (CPU/Memory/Disk IO/Network/etc.) Đều được sử dụng đúng mức và không có lỗi trong nhật ký.
Lưu ý: Chúng tôi đã thử với cả NIO cũng như IO cũ/cũ. Điều này đã được thử cả với HornetQ-2.2.5-Final và HornetQ-2.2.8-GA (2.2.8-GA được xây dựng từ nguồn)
Bất kỳ ý tưởng nào về những gì có thể gây ra vấn đề này và độ phân giải có thể là?
Quan sát khác: Dường như các tin nhắn đang được gửi qua cầu chính là giao dịch ... vì vậy có thể thực hiện các giao dịch này và liên lạc giữa hai cá thể HornetQ xảy ra không đồng bộ không?
Đây là lỗi cố định –