1. Introduction

  • 真实的Kafka集群,应具有高可用性(HA)和高性能(performant);

  • 需不同数据中心(机架rack)中的多个broker来分配负载(distribute load);

  • 在同一台机器上托管多个Kafka组件不安全,因它们会争夺资源,
    并使集群在出现错误时很容易失败,需好的Kafka管理员;

  • 需实时监测,监控系统,在集群运行时备份和升级;

2. Broker Number

  • 首先根据retention policy(默认一周的数据),和预期总吞吐量
    (expected total throughput)来了解保留消息需多少磁盘空间;

  • 若整个集群需50T的存储,而每个broker只有10T的存储空间,那至少需5个broker;

  • 需多少存储,还需考虑replication factor;如集群中以2MB/s的速度写入所有
    主题的数据,需在任何时候保留一个月的数据,且replication factor为3,那需:

# Total Size in MB
2MB * 3600 * 24 * 30 * 3 (replication factor) = 15552000MB

Total Size in TB = 15.552 TB
  • 第二个因素:需了解broker的网络,CPU,内存需求,以适当调整其大小,
    并能处理吞吐的峰值负载,这取决于期望有多少生产者和消费者;

  • 所有这些指标都需监控,除系统指标,如OpenFileDescriptor,GC Time,
    system load等,且需准备好最终添加更多broker来处理集群中增加的负载;