没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
title: Kafka 分区分配计算(分区器 Partitions )
date: 2018-01-06
tag:
categories: Kafka
permalink: Kafka/partitions
author: 朱小厮
from_url: https://blog.csdn.net/u013256816/article/details/78703111
wechat_url:
-------
摘要: 原创出处 https://blog.csdn.net/u013256816/article/details/78703111 「朱小厮」欢迎转载,保留摘要,谢谢!
-------
![](http://www.iocoder.cn/images/common/wechat_mp_2017_07_31.jpg)
> 🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:
> 1. RocketMQ / MyCAT / Sharding-JDBC **所有**源码分析文章列表
> 2. RocketMQ / MyCAT / Sharding-JDBC **中文注释源码 GitHub 地址**
> 3. 您对于源码的疑问每条留言**都**将得到**认真**回复。**甚至不知道如何读源码也可以请教噢**。
> 4. **新的**源码解析文章**实时**收到通知。**每周更新一篇左右**。
> 5. **认真的**源码交流微信群。
-------
KafkaProducer在调用send方法发送消息至broker的过程中,首先是经过拦截器Inteceptors处理,然后是经过序列化Serializer处理,之后就到了Partitions阶段,即分区分配计算阶段。在某些应用场景下,业务逻辑需要控制每条消息落到合适的分区中,有些情形下则只要根据默认的分配规则即可。在KafkaProducer计算分配时,首先根据的是ProducerRecord中的partition字段指定的序号计算分区。读者有可能刚睡醒,看到这个ProducerRecord似曾相识,没有关系,先看段Kafka生产者的示例片段:
```java
Producer producer = new KafkaProducer(properties);
String message = "kafka producer demo";
ProducerRecord producerRecord = new ProducerRecord(topic,message);
try {
producer.send(producerRecord).get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
```
没错,ProducerRecord只是一个封装了消息的对象而已,ProducerRecord一共有5个成员变量,即:
```java
private final String topic;//所要发送的topic
private final Integer partition;//指定的partition序号
private final Headers headers
点击阅读更多
资源评论
神康不是狗
- 粉丝: 29
- 资源: 338
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功