文章详情页
java - 消息队列处理临界时间问题
浏览:222日期:2023-11-28 08:05:45
问题描述
现在从消息队列接收消息,然后写入文件。每小时写一个,是批量写入。但是出现个问题,每次写的新文件开头都有一些应该属于上个小时得数据,消息体有time。如何保证所有消息都严格写入自己小时得文件。现在想到的是将批量写入的buffer按小时区分,Map<hour,buffer>,一个buffer对应一个小时,以buffer 对应的小时字段生成文件名,这样就保证每个buffer 里的数据都属于自己的文件。还有其他更好的方法吗?
问题解答
回答1:文件在小时整点生成,每个消息都带上各自的时间戳,匹配写
回答2:感觉你这个问题可能有以下几个原因造成的:
producer重复发送了消息
mq重复发送了消息给consumer
前一小时consumer没有告知mq已经消费消息,导致后一个小时mq又发送了消息
参考资料:
duplicated-messages-on-activemq
avoiding-duplicated-messages-on-jms-activemq
duplicate-detection
标签:
java
相关文章:
1. mysql优化 - mysql 分页查询优化。2. mysql - SQL添加记录的数据来源于同一个表3. java - 请教一个spring定时任务的问题4. css - div设置float:left后高度设置自动会无效 ?5. javascript - vue报错,昨天也是这么写的也没报错呀,今天就报错了,不知原因。求解决6. node.js - nojs的response.write()如何返回一个html7. javascript - react能够使用什么时间插件8. java enum 变量不能再case里面重复定义?9. javascript - 请教,用原生js插入html的问题10. windows-7 - Win7中Vmware Workstatoin与Xampp中Apache服务器端口冲突?
排行榜

网公网安备