繁体   English   中英

Kafka流,将输出分支到多个主题

[英]Kafka streams, branched output to multiple topics

在我的基于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.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM