Hazelcast Queue数据结构用于在生产者消费者模式下交换消息。在hazelcast.xml中有5个队列,其中max-size = 50。当队列大小达到最大大小值时,在发送消息时,生产者会按预期被阻止。在嵌入式和客户端服务器模式下使用hazlcast进行尝试。在这两种情况下,运行15分钟后,应用程序无响应。在嵌入模式下,hazelcast healthmonitor日志显示以下内容
2017年10月9日下午2:13:45 com.hazelcast.internal.diagnostics.HealthMonitor INFO: [127.0.0.1]:5702 [hj-12840-dev] [3.8.1] processor = 4, physical.memory.total = 15.7G,physical.memory.free = 8.2G, swap.space.total = 2.0G,swap.space.free = 2.0G, heap.memory.used = 2.2G , heap.memory.free = 1.1M ,heap.memory.total = 2.2G,heap.memory.max = 2.2G, heap.memory.used / total = 99.95%, heap.memory.used / max = 99.95%, minor.gc.count = 218,minor.gc.time = 50371ms, major.gc.count = 176 , major.gc.time = 559748ms,load.process = 0.33%,load.system = 0.27%, load.systemAverage = 100.00%,thread.count = 115,thread.peakCount = 117, cluster.timeDiff = -4670,event.q.size = 0,executor.q.async.size = 0, executor.q.client.size = 0,executor.q.query.size = 0, executor.q.scheduled.size = 0,executor.q.io.size = 0, executor.q.system.size = 0,executor.q.operations.size = 0, executor.q.priorityOperation.size = 0,operations.completed.count = 74875, executor.q.mapLoad.size = 0,executor.q.mapLoadAllKeys.size = 0, executor.q.cluster.size = 0,executor.q.response.size = 0, operations.running.count = 0, operations.pending.invocations.percentage = 0.00%, operations.pending.invocations.count = 2,proxy.count = 0, clientEndpoint.count = 0,connection.active.count = 1, client.connection.count = 0,connection.count = 1
数据仅在队列中推送,而消费者正在使用poll()方法从队列中获取消息。使用外部应用程序,验证队列的剩余容量,该队列报告排队消息正在处理并按预期从队列中删除。队列端点配置如下
hazelcast:seda:default?pollTimeout=1000&concurrentConsumers=5&transferExchange=false&transacted=false&hazelcastInstance=#hazelcastInstance
Hazelcast版本:3.8.1 。与Camel Hazelcast组件(版本2.19)以及Spring启动(1.5.3.RELEASE)一起使用。
之前有没有人遇到过类似的问题?我可能在这里缺少什么?