12.2. 配置大消息
12.2.1. 配置大型消息位置 复制链接链接已复制到粘贴板!
您可以使用下面的管理 CLI 命令读取大消息目录的配置。也包含 输出以突出显示默认配置。
为获得最佳性能,建议将大型消息目录存储在来自消息日志或分页目录的不同物理卷上。
large-messages-directory 配置元素用于指定在文件系统中存储大型消息的位置。请注意,默认情况下路径为 activemq/largemessages。您可以使用以下管理 CLI 命令更改路径位置:
/subsystem=messaging-activemq/server=default/path=large-messages-directory:write-attribute(name=path,value=PATH_LOCATION)
/subsystem=messaging-activemq/server=default/path=large-messages-directory:write-attribute(name=path,value=PATH_LOCATION)
另请注意上面输出中的 relative-to 属性。使用 relative-to 时,path 属性的值被视为 relative-to 指定的文件路径的相对。默认情况下,此值为 JBoss EAP 属性 jboss.server.data.dir。对于单机服务器,jboss.server.data.dir 位于 EAP_HOME/standalone/data。对于域,每一服务器自己的 serverX/data/activemq 目录位于 EAP_HOME/domain/servers 下。您可以使用以下管理 CLI 命令更改 relative-to 的值:
/subsystem=messaging-activemq/server=default/path=large-messages-directory:write-attribute(name=relative-to,value=RELATIVE_LOCATION)
/subsystem=messaging-activemq/server=default/path=large-messages-directory:write-attribute(name=relative-to,value=RELATIVE_LOCATION)
配置大型消息大小
使用管理 CLI 查看大型消息的当前配置。请注意,此配置是 connection-factory 元素的一部分。例如,要读取包含的默认 RemoteConnectionFactory 的当前配置,请使用以下命令:
/subsystem=messaging-activemq/server=default/connection-factory=RemoteConnectionFactory:read-attribute(name=min-large-message-size)
/subsystem=messaging-activemq/server=default/connection-factory=RemoteConnectionFactory:read-attribute(name=min-large-message-size)
使用类似语法设置 属性。
/subsystem=messaging-activemq/server=default/connection-factory=RemoteConnectionFactory:write-attribute(name=min-large-message-size,value=NEW_MIN_SIZE)
/subsystem=messaging-activemq/server=default/connection-factory=RemoteConnectionFactory:write-attribute(name=min-large-message-size,value=NEW_MIN_SIZE)
属性 min-large-message-size 的值应当以字节为单位。
配置大型消息压缩
您可以选择压缩大型消息,实现快速、高效的传输。所有压缩/解压缩操作都在客户端端处理。如果压缩的消息小于 min-large-message 大小,它将作为常规消息发送到服务器。使用管理 CLI,将 boolean 属性 compress-large-messages 设置为 true,以压缩大型消息。
/subsystem=messaging-activemq/server=default/connection-factory=RemoteConnectionFactory:write-attribute(name=compress-large-messages,value=true)
/subsystem=messaging-activemq/server=default/connection-factory=RemoteConnectionFactory:write-attribute(name=compress-large-messages,value=true)
12.2.2. 使用核心 API 配置大型消息大小 复制链接链接已复制到粘贴板!
如果您在客户端使用核心 API,则需要使用 setMinLargeMessageSize 方法来指定大型信息的最小大小。默认情况下,大消息(min-large-message-size)的最小大小设置为 100KB。
ServerLocator locator = ActiveMQClient.createServerLocatorWithoutHA(new TransportConfiguration(InVMConnectorFactory.class.getName())) locator.setMinLargeMessageSize(25 * 1024); ClientSessionFactory factory = ActiveMQClient.createClientSessionFactory();
ServerLocator locator = ActiveMQClient.createServerLocatorWithoutHA(new TransportConfiguration(InVMConnectorFactory.class.getName()))
locator.setMinLargeMessageSize(25 * 1024);
ClientSessionFactory factory = ActiveMQClient.createClientSessionFactory();