首先说结论,是负载均衡的。也就是说,现在有一个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. JDBC规范(转)

    公司开发一直用的是ibatis,进来心血来潮想研究一下源码,可是发现自己的JDBC似乎已经忘得差不多了,为了自己能顺利的研读ibatis的源码,于是乎找到了 XIAO_DF的JDBC规范的博客,转到自 ...

  2. 【目录】利用Python进行数据分析(第2版)

    第一章 准备工作 1.1 What Is This Book About(这本书是关于什么的) 1.2 Why Python for Data Analysis?(为什么使用Python做数据分析) ...

  3. jmeter验证WEB页面的href链接请求

    1. 第一步: 创建Samper_HTTP请求,打开测试页面 2. 第二步: 创建后置处理器_正则表达式(也有其他方式,这里仅介绍正则) 如图 3. 第三步 创建逻辑控制器_ForEach控制器,配置 ...

  4. autogen.sh脚本执行报错问题解决(针对DOMJudge平台搭建)

    错误信息:./autogen.sh: 9: ./autogen.sh: aclocal: not found 解决办法: $ sudo apt-get install automake $ sudo ...

  5. 译:ORCFILE IN HDP 2:更好的压缩,更高的性能

    原文地址: https://hortonworks.com/blog/orcfile-in-hdp-2-better-compression-better-performance/ ORCFILE I ...

  6. C#版谷歌地图下载器设计与实现

    关于如何将地球经纬度坐标系统转换成程序中常用到的平面2D坐标系统,网上的文章很多,参考http://www.cnblogs.com/beniao/archive/2010/04/18/1714544. ...

  7. ajax表单提交post(错误400) 序列化表单(post表单转换json(序列化))

    序列化表单 使用serializeArray()序列化 转换成json格式 function arrayTOjson(node) { var b = "{"; for (var i ...

  8. 【git2】git+码云+webStrom

    在[git1]中介绍了Git的安装.webstrom配置Git和GitHub.GitHub项目上传下载的方法. 这篇将一下在[git1]步骤(一)基础上webstorm配置码云 实现项目的上传下载. ...

  9. mysql8.0.15安装

    1. 官网下载mysql,此处下载的是.zip文件 2. 解压下载的文件夹,并且配置环境变量:Path : E:\mysql-8.0.15-winx64\bin 3. 配置my.ini文件 4. 以管 ...

  10. linux学习第十九天(iscsi配置)

    一.iSCSI 服务部署网络存储 服务器配置 添加硬盘,创建分区 l[root@localhost Desktop]# ls /dev/sd*  (系统下查看硬盘信息) /dev/sda  /dev/ ...