在基于DSL的转换中,我有一个流-->分支,其中我希望分支输出重定向到多个主题。当前branch.to()
方法仅接受String
。stream.branch
是否有任何简单的选项,我可以将结果路由到多个主题。对于使用者,我可以通过提供字符串数组作为主题来订阅多个主题。
的问题要求我在特定谓词满足查询时采取多种操作。
我尝试了stream.branch[index].to(string)
,但这不足以满足我的要求。我正在寻找类似stream.branch[index].to(string array of topics)
或stream.branch[index].to(string)
的东西.
我希望branch.to
方法具有多个主题,或者是否有其他方法可以通过流实现相同的方法?
添加示例代码。删除了实际的变量名称。
我的谓词
Predicate <String, MyDomainObject> Predicate1 = new Predicate<String, MyDomainObject>() {
@Override
public boolean test(String key, MyDomainObject domObj) {
boolean result = false;
if condition on domObj
return result;
}
};
Predicate <String, MyDomainObject> Predicate2 = new Predicate<String, MyDomainObject>() {
@Override
public boolean test(String key, MyDomainObject domObj) {
boolean result = false;
if condition on domObj
return result;
}
};
KStream <String, MyDomainObject>[] branches= myStream.branch(
Predicate1, Predicate2
);
// here I need your suggestions.
// this is my current implementation
branches[0].to(singleTopic),
Produced.with(Serdes.String(), Serdes.serdeFrom(inSer, deSer)));
// I want to send notification to multiple topics. something like below
branches[0].to(topicList),
Produced.with(Serdes.String(), Serdes.serdeFrom(inSer, deSer)));
如果您知道要将数据发送到哪些主题,则可以执行以下操作:
branches[0].to("first-topic");
branches[0].to("second-topic");
// etc.