背景
后端日志处理系统已经与Kafka和Storm集群一起使用。
使用案例
生成某些类型X
的多个事件并在后端登录。每个都包含一个id userid
。现在这些事件由一个风暴螺栓消耗并提取useid
和其他一些字段说userdata
并写入kafka中的另一个主题,比如data
主题。
现在,此data
主题消耗了一些其他拓扑。它通过单个userid
和不同userdata
找到多个此类事件。如果有n
个这样的记录,则需要采取一些行动。
问题
如何使用来自kafka的一些关键数据在风暴中聚合?
有些用户可能会在20分钟内达到N
记录计数,有些用户可能需要几个小时,具体取决于用户互动,因此事件记录在后端。目标是在此类记录的计数达到某个N
答案 0 :(得分:0)
这不是特定于Storm的问题,而是与用户会话管理相关联。如果您希望系统面临很多会话,这些会话需要很长时间才能达到某种状态(在您的情况下达到always
个事件)并最终在此期间构建大量数据,那么您需要进行帐户管理在你的设计中,这意味着明智地选择import codecs
with codecs.open('README.rst', 'r', encoding='utf-8') as readme_file:
readme = readme_file.read()
并围绕它构建大量的集成测试,检查你的系统在负载下保持响应。
你可以
n
动态化(我猜这是DevOps的全部内容)n
n
并将数据保存在数据库或文件系统中,并在n
达到临界值时将其恢复。这在某种程度上与流式拓扑结构的观点相矛盾,但它开始有意义,特别是如果你需要在处理后保留(部分)数据。如果您想部署软件更新,则还需要考虑除userid
之外的时间值n
,因为会话越短,连续部署就越容易。