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来处理集群中增加的负载;