小编Gur*_*dal的帖子

使用HornetQ核心桥的低吞吐量

我们正在尝试使用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>
Run Code Online (Sandbox Code Playgroud)

以下是在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"/> …
Run Code Online (Sandbox Code Playgroud)

messaging core throughput hornetq

6
推荐指数
1
解决办法
1974
查看次数

Redis Internals - 用于采样的LRU实现

有人知道基于Redis LRU的驱逐/删除的内部.

Redis如何确保首先删除旧的(较少使用的)密钥(如果我们没有易失性密钥且我们没有设置TTL到期)?

我确信Redis有一个配置参数"maxmemory-samples"来管理它用于删除键的样本大小 - 所以如果你设置一个样本大小为10,那么它会对10个密钥进行采样并从中删除最旧的密钥.

我不知道的是它是否完全随机地对这些密钥进行采样,或者它是否有某种机制允许它自动从相当于"较旧/较少使用的代"中采样?

lru redis

5
推荐指数
1
解决办法
1337
查看次数

标签 统计

core ×1

hornetq ×1

lru ×1

messaging ×1

redis ×1

throughput ×1