问题描述:
有一个消息的生产者,向Activemq发送带有存活时候ttl的消息。然后另外一个consumer通过receive读取消息。最后发现在读取几条消息后就出现超时读取不到消息。
问题原因:
因为,activemq server和activemq client两台机器时间不同步造成的。client的系统时间大于server的,所以当client用本地时间去请求消息的时候,服务器比较消息时间和client时间发现client时间远远大于消息的TTL,所以默认这些消息对于这个client都是超时的,从而不再接收这些消息。
解决方案:
提高消息的TTL,还有就是同步server和client的机器时间
推荐第二个方案。