storm实时流处理中如何利用redis去除重复数据?

发布于 2022-09-06 04:48:18 字数 588 浏览 16 评论 0

1.storm处理上网行为日志数据(单条日志时间戳很接近),同一用户30天内不重复发送消息,我使用redis去重,由于storm高并发的机制,当我设置redis bolt的并发度大于1的时候,结果数据总是会有重复的情况,时间基本相同或很接近。如:
第一组:
201711|08|ID01XXXXXXXX|INTERNATIONALPORT|TEST001|2017-11-08 21:38:45
201711|08|ID01XXXXXXXX|INTERNATIONALPORT|TEST001|2017-11-08 21:33:43
第二组:
201711|09|ID02XXXXXXXX|INTERNATIONALPORT|TEST001|2017-11-09 05:59:45
201711|09|ID02XXXXXXXX|INTERNATIONALPORT|TEST001|2017-11-09 05:59:45
2.尝试的解决办法,将redis bolt的并发度设置为1,可以解决以上问题,实际需求并不希望这样做,将redis bolt设置为1之后,可能成为整个storm程序的性能瓶颈(虽然到这里数据量已经不是很大了)
3.请假一下有没有什么好的办法可以在高并发下实现30天内对同一个用户不重复发送消息?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

纸伞微斜 2022-09-13 04:48:18

直接为每个用户设置一个事件锁不就成了,发了直接设置当前用户的事件锁并且失效时间30天,每次发送check一下锁存不存在。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文