首先说结论,是负载均衡的。也就是说,现在有一个producer,向一个主题下面的三个分区发送message,没有指定具体要发送给哪个partition,

这种情况,如果是负载均衡的,发送的消息应该均匀分布在三个分区的日志文件中。

下面开始验证:

首先创建一个带三个分区的topic, my-partitioned-topic。

bin\windows\kafka-topics --create -zookeeper localhost: --replication-factor  --partitions  --topic my-partitioned-topic

  查看分区信息是否正确

bin\windows\kafka-topics --describe --zookeeper localhost: --topic my-partitioned-topic

  可以看到当前topic下分区数量为3,分区编号依次是0,1,2。

  现在创建一个producer:

bin\windows\kafka-console-producer --broker-list localhost: --topic my-partitioned-topic

  发送消息:

  然后我们去找分区的日志文件,日志文件在哪儿呢?

  我们需要先去看kafka的配置文件server.xml里面配置的日志存放路径。

  我用的是windows,这个目录在我的D盘,看一下都有啥:

  可以看到,这里面有my-partitioned-topic下面的三个分区目录,随便打开一个看下里面是啥:

  这里我们主要看*.log文件,打开之后有乱码,我的编码格式不对,在linux就是好的

  但是没关系,依次打开my-partitioned-topic-1,my-partitioned-topic-2的日志文件,会发现里面都有之前producer发送的消息,并且消息都不同。

  这就说明了,producer向分区发送消息是做了负载均衡的。

  但是这里由于乱码,看不到每个日志文件里面有几条记录,无法确定是否均匀分布,但是没有关系,我们再看一下刚才的目录:

  发下这里还有几个*-checkpoint文件,也就是检查点文件,我们需要看的是replication-offset-checkpoint这个文件,打开:

  我们只关注这里面的my-partitioned-topic,比如my-partitioned-topic 1 2这条记录。

  1代表分区编号,它就是第二个分区(从0开始编号),2代表当前存放了几条记录,然后我们就会发现三个分区存放的数量都是一致的,

  所以我们可以认定它是均匀分配的。

  

Kafka发送到分区的message是否是负载均衡的?的更多相关文章

  1. kafka负载均衡相关资料收集(三)

    apache kafka系列之Producer处理逻辑 下文是转载的,原文链接地址:点这儿 [转] Kafka ProducerKafka Producer处理逻辑kafka生产者处理逻辑apache ...

  2. Kafka 负载均衡在 vivo 的落地实践

    ​vivo 互联网服务器团队-You Shuo 副本迁移是Kafka最高频的操作,对于一个拥有几十万个副本的集群,通过人工去完成副本迁移是一件很困难的事情.Cruise Control作为Kafka的 ...

  3. kafka partition(分区)与 group

    kafka partition(分区)与 group   一. 1.原理图 2.原理描述 一个topic 可以配置几个partition,produce发送的消息分发到不同的partition中,co ...

  4. kafka partition(分区)与 group(转)

    原文  https://www.cnblogs.com/liuwei6/p/6900686.html 一. 1.原理图 2.原理描述 一个topic 可以配置几个partition,produce发送 ...

  5. 【Kafka】数据分区策略

    数据分区策略 四种策略 一.指定分区号,数据会直接发送到所指定的分区 二.没有指定分区号,指定了数据的key,可以通过key获取hashCode决定数据发送到哪个分区 三.都没有指定的话,会采取rou ...

  6. 玩转Kafka的生产者——分区器与多线程

    上篇文章学习kafka的基本安装和基础概念,本文主要是学习kafka的常用API.其中包括生产者和消费者, 多线程生产者,多线程消费者,自定义分区等,当然还包括一些避坑指南. 首发于个人网站:链接地址 ...

  7. (一)kafka修改topic分区的位置

    (一)kafka修改topic分区的位置 环境:kafka_2.10-0.8.2.1 + JDK1.7.0_80 1. 查看分区topic的分区分布 $ le-kafka-topics.sh --de ...

  8. Kafka发送消息失败原因

    Kafka发送消息方法如下: Properties properties = new Properties(); properties.put("zookeeper.connect" ...

  9. kafka之partition分区及副本replica升级

    修改kafka的partition分区 bin/kafka-topics.sh --zookeeper datacollect-2:2181 --alter --partitions 3 --topi ...

随机推荐

  1. 原生JS和jQuery分别使用jsonp来获取“当前天气信息”

    需掌握的技能点: jsonp.跨域相关等. 以下两种代码,均可直接运行. 1.使用原生JS: <!DOCTYPE html> <html lang="en"> ...

  2. jQuery获取radio选中项checked的几种方法

    如何知道radio哪个选项被选中了,也就是获取checked的radio项.这是个很简单的任务,这里我总结了几个常用的方法,体验一下jQuery的灵活. 具体的 HTML 和 jQuery 代码可以右 ...

  3. 【CF809E】Surprise me!

    题目 这是一道神仙题 看到这样一个鬼畜的柿子 \[\sum_{i=1}^n\sum_{j=1}^n\varphi(a_i\times a_j)\times dis(i,j)\] 又是树上距离又是\(\ ...

  4. 第一章 进入java的世界

    一.你要做的事情: 1.  编写源代码:xxx.java 2. 编译器编译:检测代码错误 3. 输出:编译器输出xxx.class 4. 运行:java虚拟机运行xxx.class

  5. cascade rcnn论文总结

    1.bouding box regression总结: rcnn使用l2-loss 首先明确l2-loss的计算规则: L∗=(f∗(P)−G∗)2,∗代表x,y,w,h    整个loss : L= ...

  6. 网页里面出现"$#2342"类似这样 应该怎么转义过来?

    Python2 from HTMLParser import HTMLParser print HTMLParser().unescape('【竞彩足球')

  7. 集合之Iterator

    迭代对于我们搞Java的来说绝对不陌生.我们常常使用JDK提供的迭代接口进行Java集合的迭代. Iterator iterator = list.iterator(); while(iterator ...

  8. Oracle 数据库纯dos代码操作

    1. 安装成功后进入DOS界面操作 在进行以下操作时,需启动Oracle服务. A.进入sql界面:开始--运行--cmd:输入sqlplus 回车 提示输入正确的用户名和密码 B.开始—>所有 ...

  9. 关于NRF52832能否被替代的详解

    ULP无线系统级芯片 nRF52832是用于ULP无线应用的功能强大的多协议单芯片解决方案.它结合了业界性能最佳的Nordic最新无线收发器.ARM Cortex M4F CPU和512kB闪存及64 ...

  10. 使用putty进行ssh tunnel远程内网机器

    通常我们通过登录具有外网ip的远程机器来连接内网的机器:本文介绍,通过putty进行ssh tunnel,进而达到使用本机直接连接远程内网机器: 1,在putty中创建一个session,输入具有外网 ...