在Storm中基于密钥聚合来自Kafka的消息

k5hmc34c  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(319)

背景
后端日志处理系统已经与Kafka和风暴集群到位。
用例
多个特定类型的事件 X 在后端生成并记录。每一个都包含一个id userid . 现在这些事件被一个风暴箭和提取消耗 useid 还有其他人说 userdata 写了Kafka的另一个主题,比如 data 主题。
现在,其他一些拓扑将从中消耗 data 主题。它发现多个这样的事件与一个 userid 而且不同 userdata . 如果有的话 n 这些记录向他们提出了一些需要采取的行动。
问题
如何使用Kafka的一些关键数据在Storm中聚合?一些用户可能达到 N 记录计数在20分钟内,有些可能需要几个小时,这取决于用户的交互,因此事件记录在后端。目标是在此类记录的计数达到一定值时获取所有userid和相应的usedata N

u0njafvf

u0njafvf1#

这不是风暴特有的问题,但与用户会话管理有关。如果您希望您的系统面对大量会话,而这些会话需要很长时间才能达到特定的状态(reach) n 事件),并最终建立了大量的数据,然后您需要在设计中考虑到这一点,即选择 n 并围绕它构建了大量的集成测试,以检查您的系统在负载下是否保持响应。
你可以的
考虑使 n 基于负载和统计的动态(我猜这就是devops的全部内容)
唯一的商店 n 为了 userid 并将数据持久化到数据库或文件系统中,如果 n 达到临界值。这在某种程度上与流式拓扑的概念相矛盾,但它开始有意义了,特别是当您需要在处理数据后保留(部分)数据时。
不是说如果你想部署软件的更新,你还需要考虑时间价值 t 除此之外 n 因为会话越短,就越容易连续部署。

相关问题