zdq0394.github.com

Tech study and research.

Follow me on GitHub

集群环境规划

规划

操作系统

首选Linux系统。

  • IO模型:epoll
  • 数据网络传输效率:sendfile零拷贝技术

磁盘规划

  • 追求性价比高的可以考虑使用JBOD(Just Bunch Of Disks)
  • 使用机械硬盘完全够用,当然SSD更好

磁盘容量

  • 新增消息数量
  • 消息留存时间
  • 平均消息大小
  • 副本数
  • 是否启用压缩及压缩率

内存规划

  • 尽量分配更多的内存给操作系统的page cache
  • 不要为broker设置过大的堆内存,最好不超过6GB
  • page cache大小至少要大于一个日志段的大小

CPU规划

  • 使用多核系统,CPU核数最好大于8

带宽规划

  • 尽量使用告诉网络
  • 根据自身网络条件和带宽来评估Kafka集群机器数量
  • 避免使用跨机房网络

典型基准配置

  • CPU 24核
  • 内存 32GB
  • 磁盘 1TB 7200转SAS盘2块
  • 带宽 1Gb/s
  • ulimit -n 1,000,000
  • Socket Buffer至少64KB——适用于跨机房网络传输