配置线格式

使用 ActiveMQ Classic > 配置传输 > ActiveMQ Classic 连接 URI > 配置线格式

OpenWire 线格式

OpenWire 是 ActiveMQ Classic 使用的默认线格式。 它为高速消息传递提供了一种高效的二进制格式。 OpenWire 选项可以在 JMS 客户端的连接 URI 或代理的传输绑定 URI 上配置。

选项 默认 描述
cacheEnabled true 是否应缓存常用重复值,以便减少编组操作?
cacheSize 1024 cacheEnabled=true 时,此参数用于指定要缓存的值数量。
maxInactivityDuration 30000 最大 空闲 时间(在该时间之前套接字被认为已断开)以毫秒为单位。 在某些平台上,套接字可能需要很长时间才能断开连接。 因此,允许代理在连接处于空闲状态配置的时间段后终止连接。 由某些传输使用以启用保持活动心跳功能。 当设置为小于等于 0 的值时,空闲监控将被禁用。
maxInactivityDurationInitalDelay 10000 开始 空闲 检查之前的初始延迟。 是的,单词 'Inital' 应该像那样拼错。
maxFrameSize MAX_LONG 允许的最大帧大小。 可以帮助防止 OOM DOS 攻击。
maxFrameSizeEnabled true 是否应验证 maxFrameSize 检查? (自:v5.16.4)
sizePrefixDisabled false 在每个数据包编组之前,是否应在每个数据包之前加上数据包的大小?
stackTraceEnabled true 是否应将代理上发生的异常的堆栈跟踪发送到客户端?
tcpNoDelayEnabled true 不影响线格式,但提供了一个提示给对等方,表明 TCP_NODELAY 应该在通信套接字上启用。
tightEncodingEnabled true 是否应将线尺寸优化到 CPU 使用率?

使用正确的词缀!

线格式选项必须具有前缀 wireFormat. 才能生效,例如 wireFormat.maxInactivityDuration=10000。 缺少此前缀的选项将被忽略。

示例配置

Java

ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory("tcp://127.0.0.1:61616?wireFormat.cacheEnabled=false&wireFormat.tightEncodingEnabled=false");

Spring

<bean class="org.apache.activemq.ActiveMQConnectionFactory">
  <property name="brokerURL" value="failover:(tcp://127.0.0.1:61616?jms.optimizeAcknowledge=false&wireFormat.maxInactivityDuration=30000)"/>
  <!-- other options... -->
</bean>

最大帧大小

maxFrameSizeEnabled 检查适用于客户端和服务器端。 此设置不会在线格式协商期间从服务器传输到客户端。 这允许客户端和服务器独立配置(通常仅用于测试)。

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛徽标和 Apache ActiveMQ 项目徽标是 Apache 软件基金会的商标。 版权所有 © 2024,Apache 软件基金会。 根据 Apache 许可证 2.0 许可。