06 | Kafka线上集群部署方案怎么做?
该思维导图由 AI 生成,仅供参考
操作系统
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了在生产环境中部署Kafka集群的方案选择和规划。首先,针对操作系统的选择,Linux系统被认为更适合部署Kafka,因其在I/O模型、网络传输效率和社区支持度方面具有优势。其次,对于磁盘的选择,建议使用普通机械硬盘,因为Kafka大量使用的是顺序读写操作,规避了机械磁盘的劣势。此外,对于磁盘容量的规划,文章提供了详细的计算方法和考量因素,帮助读者根据业务需求合理规划Kafka集群的存储空间。另外,文章还深入讨论了带宽资源的规划,指出带宽特别容易成为Kafka性能问题的瓶颈,并提供了实际例子和计算方法,帮助读者评估线上环境的服务器台数。总的来说,本文通过深入浅出的方式,为读者提供了在生产环境中部署Kafka集群的实用指南,涵盖了技术细节和实际操作,对于需要了解Kafka集群部署方案的读者具有很高的参考价值。
《Kafka 核心技术与实战》,新⼈⾸单¥68
全部留言(110)
- 最新
- 精选
- mickle置顶1000*1000/(60*60)=277,这个2336MB是怎么换算来的,还有什么要考虑的吗?
作者回复: 277MB,乘以8,大致等于2300+Mb(小b)。带宽资源一般用Mbps而不是MBps衡量
2019-06-1510106 - A_NATE_👻我们曾经也认为用普通硬盘就行,换成普通硬盘导致生产者堵塞写入负载偏高,换成SSD就没事了,我们每天消息数大概50亿。
作者回复: 嗯嗯,专栏里面只是给出一个评估的方法。具体还要结合自己的实际情况来调整。通常我们认为SSD的顺序写TPS大约是HDD的4倍。除了纵向扩展使用SSD之外,也可以尝试一下横向扩展,增加更多的broker或HDD分散负载:)
2019-06-15867 - 蒙开强老师,你好,你讲的这几个纬度很好,之前我们搭建一套kafka集群就不知道怎么去衡量,我再问一个相关问题,我个人觉得kafka会出现丢数据情况,比如某个分区的leader挂了,在切换选举到另外副本为leader时,这个副本还没同步之前的leader数据,这样数据就丢了
作者回复: 嗯嗯,对于producer而言,如果在乎数据持久性,那么应该设置acks=all,这样当出现你说的这个情况时,producer会被显式通知消息发送失败,从而可以重试。
2019-06-17451 - WL有三个问题请教一下老师: 1. 上文提到对于千兆网卡kafka服务器最多使用700M的带宽资源, 这700M的资源是单机使用的还是集群共用的, 为什么不能作为常规使用呢? 2. 文章举例是1小时1T的数据处理目标, 那一秒中是不是1024/3600 = 0.284G = 285M, 请问下文章中的2336M是咋算出来的. 3. 文章中的例子kafka单机要达到240M的读写能力, CPU应该配几核的?
作者回复: 1. 这个700Mb只是经验值罢了。另外预留buffer的意思是即使你最好不要让broker常规占用700Mb的资源。一旦碰到峰值流量,很容易将带宽打满。故做了一些资源预留 2. 285M是大B,即字节啊,乘以8之后就是2336Mb。带宽资源一般用Mbps而非MBps衡量 3. 我没有谈及CPU,是因为通常情况下Kafka不太占用CPU,因此没有这方面的最佳实践出来。但有些情况下Kafka broker是很耗CPU的:1. server和client使用了不同的压缩算法;2. server和client版本不一致造成消息格式转换;3. broker端解压缩校验 其中前两个都能规避,第三个目前无法规避。不过相比带宽资源,CPU通常都不是瓶颈
2019-06-1533 - 李跃爱学习老师希望解答一下,之前也说明了Kafka 机器上没有混布其他服务,为什么常规需要预留2/3,只能跑240Mbps,
作者回复: 为follower拉取留一些带宽
2019-07-161630 - 墙角儿的花弱弱的问一句老师,“根据这个目标,我们每秒需要处理 2336Mb 的数据,除以 240,约等于 10 台服务器”,机房入口带宽1Gbps,怎么能做到1秒处理2336Mb的数据的
作者回复: 这里是指单机带宽,机房总带宽不可能这么小的。。。
2019-06-15420 - Geek_Sue胡老师,您好,我想请问下,我们公司的环境是基于Docker这种微服务架构,那么kafka部署在Docker容器中部署方案是否会有一些不同呢?
作者回复: 目前社区对Docker方案支持的并不是太好,主要都是一些第三方公司还有Confluent公司在提供解决方案。在Docker上部署我个人觉得没有太大的不同,只是注意带宽资源吧,因为常见的做法都是买一台性能超强的服务器然后在上面启动多个Docker容器,虽然CPU、RAM、磁盘都能承受,但单机还是受限于带宽的。
2019-06-17218 - 疯琴老师,partitons的数量和硬盘的数量有匹配关系么?一块盘一个partiton比一块盘多个partiton要快么?是线性的关系么?
作者回复: 没有具体的关系。 “一块盘一个partiton比一块盘多个partiton要快么?” 没有实验数据支撑,单纯从分析角度来看我是认同的。当某块磁盘上有太多的分区时引入了很多随机IO拖慢了性能。事实上,阿里的RocketMQ一直宣称当单磁盘超过256分区时Kafka性能不如RocketMQ,原因也在于此。 数据来源:http://jm.taobao.org/2016/04/07/kafka-vs-rocketmq-topic-amout/
2019-06-17316 - 南辕北辙这个假设是:follower与leader处于不同的broker而实际环境中不推荐单机多broker的架构 摘自老师回复其他同学。 老师这个的意思是不是生产上的架构通常一台服务器上只会有leader或者follow的分区,而不会二者存在一台服务器上,所以根据带宽计算服务器数量时,根据备份数为2,所以就直接✖️3了。
作者回复: Leader副本和Follower副本必然在不同的Broker上,而生产环境一般也不推荐将多台Broker混布到同一台服务器上。当然服务器性能强劲的话也未尝不可:)
2019-06-1711 - Royal您好,我想请教下kafka metric相关的知识,比如kafka produce速率获取等
作者回复: kafka producer速率可以监控这个JMX指标: kafka.producer:type=[consumer|producer|connect]-node-metrics,client-id=([-.\w]+),node-id=([0-9]+)
2019-06-15211