背景
后端日志处理系统已经与Kafka和风暴集群到位。
用例
多个特定类型的事件 X
在后端生成并记录。每一个都包含一个id userid
. 现在这些事件被一个风暴箭和提取消耗 useid
还有其他人说 userdata
写了Kafka的另一个主题,比如 data
主题。
现在,其他一些拓扑将从中消耗 data
主题。它发现多个这样的事件与一个 userid
而且不同 userdata
. 如果有的话 n
这些记录向他们提出了一些需要采取的行动。
问题
如何使用Kafka的一些关键数据在Storm中聚合?一些用户可能达到 N
记录计数在20分钟内,有些可能需要几个小时,这取决于用户的交互,因此事件记录在后端。目标是在此类记录的计数达到一定值时获取所有userid和相应的usedata N
1条答案
按热度按时间u0njafvf1#
这不是风暴特有的问题,但与用户会话管理有关。如果您希望您的系统面对大量会话,而这些会话需要很长时间才能达到特定的状态(reach)
n
事件),并最终建立了大量的数据,然后您需要在设计中考虑到这一点,即选择n
并围绕它构建了大量的集成测试,以检查您的系统在负载下是否保持响应。你可以的
考虑使
n
基于负载和统计的动态(我猜这就是devops的全部内容)唯一的商店
n
为了userid
并将数据持久化到数据库或文件系统中,如果n
达到临界值。这在某种程度上与流式拓扑的概念相矛盾,但它开始有意义了,特别是当您需要在处理数据后保留(部分)数据时。不是说如果你想部署软件的更新,你还需要考虑时间价值
t
除此之外n
因为会话越短,就越容易连续部署。