Kafka发送到分区的message是否是负载均衡的?
首先说结论,是负载均衡的。也就是说,现在有一个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是否是负载均衡的?的更多相关文章
- kafka负载均衡相关资料收集(三)
apache kafka系列之Producer处理逻辑 下文是转载的,原文链接地址:点这儿 [转] Kafka ProducerKafka Producer处理逻辑kafka生产者处理逻辑apache ...
- Kafka 负载均衡在 vivo 的落地实践
vivo 互联网服务器团队-You Shuo 副本迁移是Kafka最高频的操作,对于一个拥有几十万个副本的集群,通过人工去完成副本迁移是一件很困难的事情.Cruise Control作为Kafka的 ...
- kafka partition(分区)与 group
kafka partition(分区)与 group 一. 1.原理图 2.原理描述 一个topic 可以配置几个partition,produce发送的消息分发到不同的partition中,co ...
- kafka partition(分区)与 group(转)
原文 https://www.cnblogs.com/liuwei6/p/6900686.html 一. 1.原理图 2.原理描述 一个topic 可以配置几个partition,produce发送 ...
- 【Kafka】数据分区策略
数据分区策略 四种策略 一.指定分区号,数据会直接发送到所指定的分区 二.没有指定分区号,指定了数据的key,可以通过key获取hashCode决定数据发送到哪个分区 三.都没有指定的话,会采取rou ...
- 玩转Kafka的生产者——分区器与多线程
上篇文章学习kafka的基本安装和基础概念,本文主要是学习kafka的常用API.其中包括生产者和消费者, 多线程生产者,多线程消费者,自定义分区等,当然还包括一些避坑指南. 首发于个人网站:链接地址 ...
- (一)kafka修改topic分区的位置
(一)kafka修改topic分区的位置 环境:kafka_2.10-0.8.2.1 + JDK1.7.0_80 1. 查看分区topic的分区分布 $ le-kafka-topics.sh --de ...
- Kafka发送消息失败原因
Kafka发送消息方法如下: Properties properties = new Properties(); properties.put("zookeeper.connect" ...
- kafka之partition分区及副本replica升级
修改kafka的partition分区 bin/kafka-topics.sh --zookeeper datacollect-2:2181 --alter --partitions 3 --topi ...
随机推荐
- linux块设备缓存bcache
1 Bcache介绍Bcache是一种缓存技术,它是根据SSD的特性设计的,由于SSD的随机读写速度要比普通硬盘的随机读写快N多倍,但是一般SSD的容量小且贵,当然土豪除外,所以我们可以综合SSD的读 ...
- SDWC补题计划
2018的寒假去了SD的冬令营,因为一班二班难度悬殊,对我很不友好,几乎什么也没学会,但是我把两个班的课件都存了下来,现在慢慢把两个班的例题以及课后题都补一补(毕竟冬令营的钱不能白花). 这些题目横跨 ...
- virtualbox+vagrant学习-2(command cli)-21-vagrant up命令
Up 格式: vagrant up [options] [name|id] 这个命令根据你的Vagrantfile文件创建和配置客户机. 这是“vagrant”中最重要的一个命令,因为它是创建任何va ...
- Spring源码分析(十)注册解析的BeanDefinition
摘要:本文结合<Spring源码深度解析>来分析Spring 5.0.6版本的源代码.若有描述错误之处,欢迎指正. 对配置文件解析完成后,获取的beanDefiniton已经可以进行使用了 ...
- iredmail 设置
一些问题和修改 1.收邮件很慢安装完毕后,测试会发现 发送邮件都是秒到,但收邮件特别慢 长达十几分钟,这是因为iredmail的灰名单规则导致的(需要外部邮箱进行3次投递才接收,防止垃圾邮件),禁用灰 ...
- highchart本地化导出图片
因为项目执行在内容,并且本身自带的功能是想highcharts server写文件然后再下载的,所以 highchart本地化导出图片 就非常须要. 第一步改动export.js 里的URl 在在e ...
- Linux VFS的主要的数据结构
先说明一下,linux内核中各种数据结构也不停的在变,所以不同版本的内核各个数据结构的定义可能会差别很大,这一组关于linux 文件系统的文章中的代码都摘自linux-2.6.34.1. VFS依赖于 ...
- SpringMVC的应用与工作流程解析
一:SpringMVC是什么 SpringMVC只是Spring的一个子框架,作用学过Struts2的应该很好理解,他们都是MVC的框架.学他就是用来代替Struts2的,那么为什么不用Struts2 ...
- js动态生成水印
原理:通过动态生成canvas然后转为base64格式 代码Demo export const waterMark = (text) =>{ let _wm = document.createE ...
- Linux开机自启动脚本
将需要开机自启动的脚本命令写在文件/etc/rc.d/rc.local中即可. 比如需要开机自启动MySql和Apache,则在/etc/rc.d/rc.local文件尾部加入两行命令: system ...