ActiveMQ Artemis 2.6.0大消息相关问题求助
ActiveMQ Artemis 2.6.0 大消息相关问题求助
Web控制台消息可见性问题
大小超过100 KiB的消息无法在控制台显示(截图显示hawtio控制台提示不支持该消息)。已在集群连接配置中将min-large-message-size设置为1000 KiB(即1MB),理论上仅超过该阈值的消息才会存储到大消息目录,但该配置未按预期生效。
大消息目录消息编码问题
大消息目录中持久化的部分消息包含二进制字符,示例如下:
�x<?xml version="1.0" encoding="UTF-8"?> <Message
经测试这些特殊字符并非客户端添加,不确定这是否为预期行为,或是存在配置问题。
REST API浏览行为问题
使用curl命令通过REST API浏览并导出消息时,无法获取存储为大消息的内容。请问浏览操作是否应支持访问大消息?若不支持,需要何种配置或替代方法处理?(截图显示REST API返回无大消息内容)
此外,是否有替代工具可查看此类消息并导出为无二进制字符的XML备份?
附当前broker.xml配置
<?xml version='1.0'?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <configuration xmlns="urn:activemq" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xi="http://www.w3.org/2001/XInclude" xsi:schemaLocation="urn:activemq /schema/artemis-configuration.xsd"> <core xmlns="urn:activemq:core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:activemq:core "> <name>artemis-master</name> <persistence-enabled>true</persistence-enabled> <journal-type>ASYNCIO</journal-type> <paging-directory>/data-volume/artemis-master/data/paging</paging-directory> <bindings-directory>/data-volume/artemis-master/data/bindings</bindings-directory> <journal-directory>/data-volume/artemis-master/data/journal</journal-directory> <large-messages-directory>/data-volume/artemis-master/data/large-messages</large-messages-directory> <journal-datasync>true</journal-datasync> <journal-min-files>10</journal-min-files> <journal-pool-files>100</journal-pool-files> <journal-file-size>10M</journal-file-size> <journal-buffer-size>2M</journal-buffer-size> <journal-buffer-timeout>20000</journal-buffer-timeout> <journal-max-io>4096</journal-max-io> <connectors> <connector name="artemis-master">tcp://x.x.x.x:61616</connector> <connector name="artemis-slave">tcp://x.x.x.x:61616</connector> </connectors> <cluster-connections> <cluster-connection name="MQ_Cluster"> <address></address> <connector-ref>artemis-master</connector-ref> <check-period>1000</check-period> <connection-ttl>60000</connection-ttl> <min-large-message-size>1000000</min-large-message-size> <call-timeout>30000</call-timeout> <retry-interval>500</retry-interval> <retry-interval-multiplier>1.0</retry-interval-multiplier> <max-retry-interval>5000</max-retry-interval> <initial-connect-attempts>-1</initial-connect-attempts> <reconnect-attempts>-1</reconnect-attempts> <use-duplicate-detection>true</use-duplicate-detection> <message-load-balancing>ON_DEMAND</message-load-balancing> <max-hops>1</max-hops> <confirmation-window-size>32000</confirmation-window-size> <call-failover-timeout>30000</call-failover-timeout> <notification-interval>1000</notification-interval> <notification-attempts>2</notification-attempts> <static-connectors> <connector-ref>artemis-slave</connector-ref> </static-connectors> </cluster-connection> </cluster-connections> <disk-scan-period>5000</disk-scan-period> <max-disk-usage>90</max-disk-usage> <critical-analyzer>true</critical-analyzer> <critical-analyzer-timeout>120000</critical-analyzer-timeout> <critical-analyzer-check-period>60000</critical-analyzer-check-period> <critical-analyzer-policy>HALT</critical-analyzer-policy> <global-max-size>7Gb</global-max-size> <acceptors> <!-- Acceptor for every supported protocol --> <acceptor name="artemis">tcp://0.0.0.0:61616?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;keepAlive=true</acceptor> <!-- AMQP Acceptor. Listens on default AMQP port for AMQP traffic.--> <acceptor name="amqp">tcp://0.0.0.0:5672?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=AMQP;useEpoll=true;amqpCredits=1000;amqpLowCredits=300</acceptor> <!-- STOMP Acceptor. --> <acceptor name="stomp">tcp://0.0.0.0:61613?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=STOMP;useEpoll=true</acceptor> <!-- HornetQ Compatibility Acceptor. Enables HornetQ Core and STOMP for legacy HornetQ clients. --> <acceptor name="hornetq">tcp://0.0.0.0:5445?anycastPrefix=jms.queue.;multicastPrefix=jms.topic.;protocols=HORNETQ,STOMP;useEpoll=true</acceptor> <!-- MQTT Acceptor --> <acceptor name="mqtt">tcp://0.0.0.0:1883?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=MQTT;useEpoll=true</acceptor> </acceptors> <cluster-user>admin</cluster-user> <cluster-password>admin</cluster-password> <ha-policy> <replication> <master> <check-for-live-server>true</check-for-live-server> </master> </replication> </ha-policy> <security-settings> <security-setting match="#"> <permission type="createNonDurableQueue" roles="amq"/> <permission type="deleteNonDurableQueue" roles="amq"/> <permission type="createDurableQueue" roles="amq"/> <permission type="deleteDurableQueue" roles="amq"/> <permission type="createAddress" roles="amq"/> <permission type="deleteAddress" roles="amq"/> <permission type="consume" roles="amq"/> <permission type="browse" roles="amq"/> <permission type="send" roles="amq"/> <permission type="manage" roles="amq"/> </security-setting> </security-settings> <address-settings> <address-setting match="activemq.management#"> <dead-letter-address>DLQ</dead-letter-address> <expiry-address>ExpiryQueue</expiry-address> <redelivery-delay>0</redelivery-delay> <max-size-bytes>-1</max-size-bytes> <message-counter-history-day-limit>10</message-counter-history-day-limit> <address-full-policy>PAGE</address-full-policy> <auto-create-queues>true</auto-create-queues> <auto-create-addresses>true</auto-create-addresses> <auto-create-jms-queues>true</auto-create-jms-queues> <auto-create-jms-topics>true</auto-create-jms-topics> </address-setting> <address-setting match="#"> <dead-letter-address>DLQ</dead-letter-address> <expiry-address>ExpiryQueue</expiry-address> <redelivery-delay>0</redelivery-delay> <max-size-bytes>-1</max-size-bytes> <message-counter-history-day-limit>10</message-counter-history-day-limit> <address-full-policy>PAGE</address-full-policy> <auto-create-queues>false</auto-create-queues> <auto-create-addresses>false</auto-create-addresses> <auto-create-jms-queues>false</auto-create-jms-queues> <auto-create-jms-topics>false</auto-create-jms-topics> </address-setting> </address-settings> <addresses> <address name="DLQ"> <anycast> <queue name="DLQ" /> </anycast> </address> <address name="ExpiryQueue"> <anycast> <queue name="ExpiryQueue" /> </anycast> </address> </addresses> </core> </configuration>
内容的提问来源于stack exchange,提问作者thedevopsguy
相关产品推荐
相关产品推荐

