如何使用Samza在Kafka主题上创建分区?

时间:2015-09-03 20:57:20

标签: scala apache-kafka partitioning apache-samza

我有几个Samza作业运行Kafka主题的所有阅读消息,并将新消息写入新主题。要发送新消息,我使用的是Samza内置的OutgoingMessageEnvelope。还使用MessageCollector发送新消息。它看起来像这样:

collector.send(new OutgoingMessageEnvelope(SystemStream, newMessage))

有没有办法可以用它来为Kafka主题添加分区?例如对用户ID或类似内容进行分区。

或者如果有更好的方式我会喜欢听到它!

1 个答案:

答案 0 :(得分:3)

您应该可以使用partitioning key

发送消息
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<fieldset id="myWorkArea">
    <div class="fieldrow">
        <label for="input1">Class</label>
        <input  id="input1"/>
        <a id="help1" href="#">what's this?</a>
    </div>
    <div class="fieldrow">
        <label for="input2">Class</label>
        <input id="input2"/>
        <a id="help2" href="#">what's this?</a>
    </div>
</fieldset>

使用此方法将对数据进行分区。但是,我认为如果您正在考虑以编程方式控制分区数量,则应使用kafka API创建/更改所提到的主题here