我已经阅读了有关 Apache 风暴的信息并做了一些基本教程。我有以下拓扑结构,我想用storm来实现,但不确定如何处理数据分布。业务需求是实时评估客户组合。简而言之,它包括: 1) 接受实时市场价格(货币、商品等) 2) 对于每个价格变动,计算每个头寸的当前利润并将其转换为客户账户货币 3) 分析总盈亏和每个客户的所有头寸的数量,并在需要时生成信号 4) 在客户级别的计算必须是顺序的和原子的/序列化的。即,所有仓位必须按照其进入系统的顺序的每个分时进行评估,并且即使客户有 100 个仓位,也必须根据相同的价格计算总数。
所有订单都执行并存储在 rdbms 中。我的主要问题是如何在每个节点处理它自己的部分的不同节点上的 Storm bolts 上分配成千上万个位置。使用 Modulo 足以对客户进行分区,但是我如何为每个 bolt 实例提供 id,以便每个实例只处理它自己的相同部分客户?Storm 中是否有开箱即用的功能可以做到这一点?另一个问题是如何有效地进行上述聚合?