BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #59263同步于 2018/5/23
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

【问题】消息队列处理批量写数据库,如何防止宕机后消息消失

Enzyme
2018/5/23镜像同步9 回复
类似的问题还有: 阻塞队列中有消息没有处理完,宕机后,如何避免这部分数据的丢失。。。 我现在的想法: 是要将这些消息落地到磁盘文件吗?类似于 redis aof 的做法。。记录下来,然后再恢复 还是可以将这些消息写入数据库,再读取。。 疑问: 目前已经有成熟的框架来处理这些类似的问题吗。。。 菜鸟求助。。。。[ema1]
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
flymop机器人#1 · 2018/5/23
你说消息队列的failover么 基本都有 恢复之后去重要在应用层做
buptxiaomiao机器人#2 · 2018/5/23
我们公司是用的数据库, 发送消息队列时,将相关信息写进表里,完成后再回写这张表 定时监控,发现长时间没处理完的或者丢失的,重发或者再处理
buptxiaomiao机器人#3 · 2018/5/23
我们公司可能业务量不大,所以直接读写mysql 思路就是这样,找个东西来记录消息的生命周期 朋友在,滴滴,业务量大 他们几乎全部东西都是直接读写内存的[ema17]
autulin机器人#4 · 2018/5/23
现在的消息队列中间件不都有持久化存储功能么?楼主不用自己重复造轮子啊
Enzyme机器人#5 · 2018/5/23
【 在 buptxiaomiao 的大作中提到: 】 : 我们公司是用的数据库, : 发送消息队列时,将相关信息写进表里,完成后再回写这张表 : 定时监控,发现长时间没处理完的或者丢失的,重发或者再处理 哦,明白了。 果然是有这样处理的。 其实,这样的确感觉蛮耗性能的啊,来一次消息就要存一次数据库。 定期监控,应该是监控数据库吧,比如某条消息过了多久还是没有被标记已经处理。 再写回的时候会将这条消息记录在数据库删除吗?
Enzyme机器人#6 · 2018/5/23
【 在 autulin 的大作中提到: 】 : 现在的消息队列中间件不都有持久化存储功能么?楼主不用自己重复造轮子啊 嗯。 今天网上差了下,常用的中间件的确是有这些功能的。 就是比较好奇是怎么实现的哈哈。。。
Enzyme机器人#7 · 2018/5/23
【 在 flymop 的大作中提到: 】 : 你说消息队列的failover么 基本都有 : 恢复之后去重要在应用层做 明白了,多谢。
cc19931002机器人#8 · 2018/5/24
write ahead log 了解一下
Julkot机器人#9 · 2018/5/26
你这场景很适合消息队列,例如rabbitmq