读书笔记——Kafka核心技术与实战(生产环境的 Kafka 集群方案需考虑的因素)

既然是集群,必定涉及到多Kafka节点机器,单台机器构成的伪集群只能在日常测试中使用,无法满足线上实际需求。考虑因素:

  • 操作系统
  • 磁盘
  • 磁盘容量
  • 带宽
操作系统
  • IO 模型的使用:Kafka 底层使用 Java 的 selector,selector 在 Linux 的实现机制是 epoll,在 Windows 的实现机制是 select,因此在这点上 Kafka 部署在 Linux 有优势。
  • 网络传输上:Linux 的 零拷贝技术 给 Kafka 的部署带来快速数据传输的优点。
  • 社区支持度:社区在 Windows 上发现的 Kafka bug 不做任何承诺;
磁盘
  • 机械硬盘成本低容量大易损坏,固态硬盘 SSD 单价高性能优势大;
  • 建议使用机械硬盘 HDD:Kafka 是顺序读写,规避了机械硬盘最大的劣势也就是随机读写慢;机械硬盘价廉物美;
  • 是否使用磁盘阵列-RAID:
    • RAID 提供冗余的磁盘存储空间和负载均衡;
    • 追究性价比的公司可不搭建 RAID,使用普通磁盘组成存储空间即可;
    • Kafka 本身就有软件层面的负载均衡机制;
磁盘容量
  • 规划磁盘容量需要考虑:1. 新增消息数;2.消息留存时间;3.平均消息大小;4.备份数;5.是否启用压缩;
带宽
  • 假设是千兆网络 1Gbps。场景是:1h 处理1TB 数据。则需要多少台 Kafka 服务器 完成这个业务呢?
    • 带宽是 1Gbps,一秒钟处理1Gb数据,由于真实环境中可能还部署有其他服务,所以要为其他进程或者应用预留一些空间,假设给 Kafka 的是 70% 也就是 700Mbps(再多的话恐怕会丢包等)
    • 700Mbps 是能使用到的最大资源,通常需额外预留 2/3 的资源,也就是平常可用 700*1/3 ≈ 240Mbps(为 follower 预留带宽);
    • 这样 1h 处理 1TB,即 2336Mbps(1024*1024/3600 *8),则需要约 10 台服务器资源,一般会有 2 台备份,则需要 30 台。这里的服务器就是指 broker
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值