0
我有两个流。一个是事件流,另一个是数据库更新流。我想用从数据库更新流构建的信息丰富事件流。流负载平衡
事件流非常庞大,使用5个字段进行分区。这给了我很好的分配。数据库流比较少烦人,并使用两个字段进行分区。我目前使用两个公共字段连接两个流,并使用flapMap来丰富第一个流。 flatMap运算符使用ValueState维护状态,该状态由两个公共字段自动键入。
我发现事件流中的负载在两个常见字段中倾向于倾斜。这会导致跨越flapMap实例的负载均衡不均匀,并且少数实例的负载比其他实例大10倍左右。
我想更好的方法是在所有flatMap实例中广播数据库更新流,并根据其现有的分区方案转发事件流。然而,问题在于,因为没有为连接运算符指定键,所以无法使用ValueState。
除了实现自定义逻辑来手动提取密钥并更新维护状态之外,还有什么我可以做的吗?
有没有更简单的方法,我失踪了?