【发布时间】:2019-09-17 17:57:16
【问题描述】:
我希望能够根据消息键的键将 Kafkastream 中的所有记录发送到不同的主题。 前任。 Kafka 中的流包含名称作为键和记录作为值。我想根据记录的键将这些记录扇出到不同的主题
数据: (jhon -> {jhonsRecord}),(sean -> {seansRecord}),(mary -> {marysRecord}),(jhon -> {jhonsRecord2}), 预计
- topic1 :name: jhon ->(jhon -> {jhonsRecord}),(jhon -> {jhonsRecord2})
- topic2 :sean-> (sean -> {seansRecord})
- topic3 :mary -> (mary -> {marysRecord})
以下是我现在执行此操作的方式,但是由于名称列表很长,所以速度很慢。另外,即使记录了几个名字,我也需要遍历整个列表请提出修复建议
for( String name : names )
{
recordsByName.filterNot(( k, v ) -> k.equalsIgnoreCase(name)).to(name);
}
【问题讨论】:
-
注意:这可能会导致一堆主题(使用默认设置)。这里的用例是什么?
-
@cricket_007 感谢您指出这一点,但这就是这里的意图。每个名称有 100 条记录,每条记录都需要单独处理和汇总。
标签: java apache-kafka apache-kafka-streams