- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
kafka生产者消息投递分区?消费者选择分区?
我们晓得,生产者发送消息到主题,消费者订阅主题(以消费者组的名义订阅),而主题下是分区,消息是存储在分区中的,所以现实上生产者发送消息到分区,消费者则从分区读取消息,那么,这里问题来了,生产者将消息投递到哪个分区?消费者组中的消费者实例之间是怎样安排分区的呢?接下来,就围围着这两个问题一探到底。
2. 主题的分区数设置
在perties配置文件中可以指定一个全局的分区数设置,这是对每个主题下的分区数的默认设置,默认是1。
当然每个主题也可以本人设置分区数量,假如创建主题的时候没有指定分区数量,则会使用perties中的设置。
bin/kafka-topics.sh?--zookeeper?localhost:2181?--create?--topic?my-topic?--partitions?2?--replication-factor?1
在创建主题的时候,可以使用**--partitions**选项指定主题的分区数量
[root@localhost?kafka_2.11-2.0.0]#?bin/kafka-topics.sh?--describe?--zookeeper?localhost:2181?--topic?abcTopic:abc???????PartitionCount:2????????ReplicationFactor:1?????Configs:????????Topic:?abc??????Partition:?0????Leader:?0???????Replicas:?0?????Isr:?0????????Topic:?abc??????Partition:?1????Leader:?0???????Replicas:?0?????Isr:?0
3. 生产者与分区
首先提出一个问题:生产者将消息投递到分区有没有规律?假如有,那么它是如何打算一条消息该投递到哪个分区的呢?
3.1. 默认的分区策略
The default partitioning strategy:
If a partition is specified in the record, use it
If no partition is specified but a key is present choose a partition based on a hash of the key
If no partition or key is present choose a partition in a round-robin fashion
ernals.DefaultPartitioner
默认的分区策略是:
假如在发消息的时候指定了分区,则消息投递到指定的分区
假如没有指定分区,但是消息的key不为空,则基于key的哈希值来选择一个分区
假如既没有指定分区,且消息的key也是空,则用轮询的方式选择一个分区
/**?*?Compute?the?partition?for?the?given?record.?*?*?@param?topic?The?topic?name?*?@param?key?The?key?to?partition?on?(or?null?if?no?key)?*?@param?keyBytes?serialized?key?to?partition?on?(or?null?if?no?key)?*?@param?value?The?value?to?partition?on?or?null?*?@param?valueBytes?serialized?value?to?partition?on?or?null?*?@param?cluster?The?current?cluster?metadata?*/public?int?partition(String?topic,?Object?key,?byte[]?keyBytes,?Object?value,?byte[]?valueBytes,?Cluster?cluster)?{????List?partitions?=?cluster.partitionsForTopic(topic);????int?numPartitions?=?partitions.size();????if?(keyBytes?==?null)?{????????int?nextValue?=?nextValue(topic);????????List?availablePartitions?=?cluster.availablePartitionsForTopic(topic);????????
您可能关注的文档
- 张图带你深入理解 Docker 架构!.docx
- 条 SQL 语句性能优化策略,建议收藏!.docx
- 种让线程顺序执行的方式,你知道吗?.docx
- 张图梳理 Intellij IDEA 常用设置.docx
- . 万亿条数据查询,如何做到毫秒级响应?.docx
- ClickHouse全面解析,看这一篇文章就够了.docx
- Elasticsearch 在业界的大量应用案例.docx
- HDFS .x 升级到 .x 在车好多的实践.docx
- Hbase、Kudu 和 ClickHouse 全面对比(万字、张图).docx
- Jar 包依赖冲突很烦人,总结一波排查思路和解决方法.docx
- Kafka的灵魂伴侣LogiKafkaManger()之运维管控集群列表.docx
- Kafka的灵魂伴侣LogiKafkaManger(一),滴滴开源项目.docx
- MySql删除重复记录并且只保留一条.docx
- RabbitMQ如何动态创建队列和监听.docx
- Redis 的 大数据类型,写得非常好!.docx
- Redis牛逼!轻松实现实时订阅推送.docx
- Sentinel 实现限流,竟是如此的简单!.docx
- Sentinel流量控制和熔断降级执行流程与源码分析.docx
- Spark性能优化实战手册.pdf.docx
- Spring Boot 无侵入式 实现API接口统一JSON格式返回.docx
最近下载
- 艾滋病防治知识讲座.pptx VIP
- T∕ZZB 2086-2021 塑料拖链标准规范.docx VIP
- 2025年文化教育职业技能考试-钢琴调律师考试近5年真题集锦(频考类试题)带答案.docx
- 高清版40篇短文搞定3500词.pdf VIP
- 分流职员申请表标准模板.docx VIP
- 人教版(2024年新教材)七年级上册英语Unit 2 We're Family 单元整体教学设计.docx VIP
- 急诊手术患者围术期肺保护管理策略专家共识解读PPT课件.pptx VIP
- 基于临床实践出血性疾病动态危急值专家共识2024版解读.pptx VIP
- 绘本《我家是动物园》.ppt VIP
- 广州数控GSK928TF 车床数控系统 使用手册 速印版2009-5-13.pdf
文档评论(0)