Running WriteCheck
初学者,自己参照网上写了个demo~~
我想问下这是正常的吗?谢谢各位,因为网上找不到答案~~
控制台信息如下:
——————————————————————————————————————
2017-12-08 14:55:51,066 - DEBUG - Running WriteCheck[tcp://127.0.0.1:61616]
2017-12-08 14:56:01,070 - DEBUG - WriteChecker: 10005ms elapsed since last write check.
2017-12-08 14:56:01,070 - DEBUG - Running WriteCheck[tcp://127.0.0.1:61616]
2017-12-08 14:56:11,075 - DEBUG - WriteChecker: 10005ms elapsed since last write check.
2017-12-08 14:56:11,075 - DEBUG - Running WriteCheck[tcp://127.0.0.1:61616]
2017-12-08 14:56:21,013 - DEBUG - 30002ms elapsed since last read check.
2017-12-08 14:56:21,077 - DEBUG - WriteChecker: 10002ms elapsed since last write check.
2017-12-08 14:56:21,078 - DEBUG - Running WriteCheck[tcp://127.0.0.1:61616]
2017-12-08 14:56:31,077 - DEBUG - WriteChecker: 10000ms elapsed since last write check.
2017-12-08 14:56:31,077 - DEBUG - Running WriteCheck[tcp://127.0.0.1:61616]
2017-12-08 14:56:41,082 - DEBUG - WriteChecker: 10005ms elapsed since last write check.
2017-12-08 14:56:41,082 - DEBUG - Running WriteCheck[tcp://127.0.0.1:61616]
---------------------------------------
jms xml配置如下:
---------------------------------------
   <!-- 配置连接ActiveMQ的ConnectionFactory -->
<bean id="amqConnectionFactory"
      class="org.apache.activemq.ActiveMQConnectionFactory">
      <property name="brokerURL" value="tcp://localhost:61616"/>
 </bean>
<!--为了提高效率,配置一个连接池-->
<bean id="cachedConnectionFactory"
      class="org.springframework.jms.connection.CachingConnectionFactory">
       <property name="targetConnectionFactory" ref="amqConnectionFactory"/>
       <property name="sessionCacheSize" value="10"/>
</bean>
    
        <!-- 定义JmsTemplate的Queue类型,还可以定制订阅模式,这里不列出 -->
    <bean id="jmsQueueTemplate" class="org.springframework.jms.core.JmsTemplate">
        <!-- 这个connectionFactory对应的是我们定义的Spring提供的那个ConnectionFactory对象 -->
        <constructor-arg ref="cachedConnectionFactory" />
        <!-- 非pub/sub模型(发布/订阅),即队列模式 -->
        <property name="pubSubDomain" value="false" />
    </bean>-----------------------------------------------
调用处如下:
------------------------------------------------
@RequestMapping("amqSend")
public void amqSend() {
JmsTemplate jmsTemplate = (JmsTemplate) SpringContextUtil.getBean("jmsQueueTemplate");
jmsTemplate.convertAndSend("testAmqSend", "I am Flxia");
}
-------------------------------------------------

解决方案 »

  1.   

    "write check"过于频繁了,5ms一次日志文件很快就爆了,另外日志输出也会消耗CPU,高频的日志输出将会导致CPU消耗过高。从日志看,消费者的receiveTimeout参数设置采用默认的10000。建议检查:
    1. 确认消息可以正常收发,不正常的收发可能导致消费者的反复检查。
    2. 设置日志的threshold,这类DEBUG日志可以考虑屏蔽掉,防止日志输出过于啰嗦。
      

  2.   

    Spring整合ActiveMQ可以参考这篇文章
    http://blog.csdn.net/qq_37142346/article/details/78758564