首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用带有Spring-kafka kafkaTemplate的sendDefault方法的DefaultPartitioner

如何使用带有Spring-kafka kafkaTemplate的sendDefault方法的DefaultPartitioner
EN

Stack Overflow用户
提问于 2017-04-13 03:57:56
回答 1查看 477关注 0票数 1

我正在尝试将消息发送到一个具有4个partitions.And的主题,我希望消息到达由DefaultPartitioner决定的分区(它使用键的散列)

kafkaTemplate.sendDefault(DefaultPartitioner(job.getId()),job.getId(),job);我不确定如何让kafkaTemplate使用DefaultPartitioner来获取分区号。

有人能帮我解决这个问题吗?

EN

Stack Overflow用户

发布于 2017-04-13 04:24:52

让我们从JavaDocs开始吧!

代码语言:javascript
运行
复制
/**
 * The default partitioning strategy:
 * <ul>
 * <li>If a partition is specified in the record, use it
 * <li>If no partition is specified but a key is present choose a partition based on a hash of the key
 * <li>If no partition or key is present choose a partition in a round-robin fashion
 */
public class DefaultPartitioner implements Partitioner {

代码语言:javascript
运行
复制
/**
 * Send the data to the default topic with the provided key and no partition.
 * @param key the key.
 * @param data The data.
 * @return a Future for the {@link SendResult}.
 */
ListenableFuture<SendResult<K, V>> sendDefault(K key, V data);

因此,如果您希望依赖于DefaultPartitioner,那么您只需要一个记录的key。因此,只需使用特定的KafkaTemplate方法:

代码语言:javascript
运行
复制
kafkaTemplate.sendDefault(job.getId(),job);
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43378569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档