Kafka】kafka数据分区的策略有哪些?

2020-07-20 09:02发布

2条回答
霸气的名字 - 喜欢晴天
2楼 · 2020-08-06 13:36

探究的是kafka的数据生产出来之后究竟落到了哪一个分区里面去了
第一种分区策略:给定了分区号,直接将数据发送到指定的分区里面去
第二种分区策略:没有给定分区号,给定数据的key值,通过key取上hashCode进行分区
第三种分区策略:既没有给定分区号,也没有给定key值,直接轮循进行分区
第四种分区策略:自定义分区

yjh
3楼 · 2021-07-01 10:55

一、指定分区号,数据会直接发送到所指定的分区
二、没有指定分区号,指定了数据的key,可以通过key获取hashCode决定数据发送到哪个分区
三、都没有指定的话,会采取round-robin fashion,是kafka的轮询策略
四、还可以自定义分区策略

相关问题推荐

  • 回答 17

    flume和kafka的侧重点不同,flume追求的是数据和数据源、数据流向的多样性,适合多个生产者的场景;flume有自己内置的多种source和sink组件,具体操作方式是编写source、channel和sink的.conf配置文件,开启flume组件的时候用命令关联读取配置文件实现kafka追...

  • 回答 2

    读取数据的过程中,数据是属于某一个topic的某一个partition对应的某一个segment文件中的某一条记录。①定位到具体的segment日志文件②计算查找的offset在日志文件的相对偏移量

  • 回答 2

    Spark Streaming的输出一般是靠foreachRDD()算子来实现,它默认是at least once的。如果输出过程中途出错,那么就会重复执行直到写入成功。为了让它符合exactly once,可以施加两种限制之一:幂等性写入(idempotent write)、事务性写入(transactional write...

  • 回答 3

    消息丢失解决方案:        首先对kafka进行限速, 其次启用重试机制,重试间隔时间设置长一些,最后Kafka设置acks=all,即需要相应的所有处于ISR的分区都确认收到该消息后,才算发送成功。消息重复解决方案:        消息可以使用唯一id标识 ...

  • 回答 4

    kafka数据推送失败,如果是生产者推送kafka数据失败,有可能是网络端口问题,配置网络ip的域名映射,防火墙问题可以做防火墙策略,还有配置的ip和端口是否正确,还要确定kafka是否启动服务。kafka推送数据到其他系统,可以使用flume以及消费者来做...

  • 回答 5

    遇到这种问题,基本上是心跳或offset更新不及时导致。在kafka环境中,有以下几个参数对于数据重复有很好的效果。auto.commit.interval.msconsumer向zookeeper提交offset的频率,单位是秒,默认60*1000此值太大会导致数据重复消费,将其调小可避免重复数据。建...

  • 回答 3

    数据一致性可以理解为数据前后是否一样,比如说数据的丢失或者重复都回造成数据的不一致!kafka的0.11之后引入了幂等性可以解决单次会话、单个partition的数据不重复,生产者可以利用其0.11后引入的事务来保证其数据一致性,消费者的话其实事务是无法保证的,...

  • 回答 1

    需要明白kafka的底层机制及工作原理,这里只简要说明,详细的参考kafka官网。kafka是将每一条写入kafka的数据按分区分布存储,将每条写入的数据作一个offset标记,这个标记的顺序是按插入数据自增的。当消费程序的时候,会按照分区区分,逐个根据offset顺序消费。...

没有解决我的问题,去提问