我正在尝试构建一个实时的成就处理器,例如:
这种对事件流处理的描述似乎很适合我需要的processing。
如果用例只是从单个事件中更新或触发,我可以使用amazon或azure提供的众多云队列或发布服务中的一个,比如Kinesis或SQS,并使用AWS lambda函数来处理队列中的消息。Azure似乎提供了一个叫做事件中心的东西,它可以充当数据流广播机构。本质上,让所有动作/事件和多个通知处理器的云队列作为事件流的订阅者,逻辑触发器、聚合和成就奖励封装在每个成就处理器中。
但是,由于我需要根据一些任意规则对项进行分组(每个实现可以有许多分组参数),所以我不能简单地查看操作队列中的最新事件来实时处理每个成就。为了提高效率,我需要在记忆中设置一个集合吗?另一种方法是让每个成就处理器对每个事件进行数据库查找(例如,选择与此类型匹配的当天的所有事件),但我担心如果这样做,它将不会很好地执行。我听说过诸如星火流和雪犁之类的东西,所以我想知道在AWS或Azure云服务上是否有一种模式和一种产品可以以非常可伸缩和简单的方式解决这个问题--以及现有的azure和aws (事件中心和动态系统)上的数据流服务是否适合这种数据聚合用例。
发布于 2017-01-10 06:50:48
发布于 2018-02-02 17:03:00
免责声明:我是Striim的产品经理
为了回答这个问题,Striim允许您在生命数据流上运行SQL查询,使用时间/计数/混合窗口聚合它,并触发警报。它也是水平可伸缩的。
Striim可在Azure和AWS市场上使用。THe其他好东西,相同的管道可以很容易地在云之间传输,也可以在前提下运行。
https://stackoverflow.com/questions/35433276
复制