1.Kafka 架构
生产者、Broker、消费者、Zookeeper;
注意:Zookeeper 中保存 Broker id 和消费者 offsets 等信息,但是没有生产者信息。
2.Kafka 的机器数量
Kafka 机器数量 = 2 *(峰值生产速度 * 副本数 / 100)+ 1
3. 副本数设定
一般我们设置成 2
个或
3
个,很多企业设置为
2
个。
副本的优势:提高可靠性;副本劣势:增加了网络 IO
传输
4.Kafka 压测
Kafka 官方自带压力测试脚本(kafka-consumer-perf-test.sh、
kafka-producer-perf-test.sh
)。 Kafka 压测时,可以查看到哪个地方出现了瓶颈(CPU
,内存,网络
IO
)。一般都是网络
IO 达到瓶颈。
5.Kafka 日志保存时间
默认保存 7
天;生产环境建议
3
天
6.Kafka 中数据量计算
每天总数据量 100g
,每天产生
1
亿条日志,
10000
万
/24/60/60=1150
条
/
每秒钟
平均每秒钟:1150
条
低谷每秒钟:50
条
高峰每秒钟:1150
条
*
(
2-20 倍)
= 2300
条
- 23000
条
每条日志大小:0.5k - 2k
(取
1k
)
每秒多少数据量:2.0M - 20MB
7.Kafka 的硬盘大小
每天的数据量 100g * 2
个副本
* 3
天
/ 70%
8.Kafka 监控
公司自己开发的监控器;
开源的监控器:KafkaManager
、
KafkaMonitor
、
KafkaEagle
9.Kakfa 分区数
1)创建一个只有
1
个分区的
topic
2)测试这个
topic
的
producer
吞吐量和
consumer
吞吐量。
3)假设他们的值分别是
Tp
和
Tc
,单位可以是
MB/s
。
4)然后假设总的目标吞吐量是
Tt
,那么分区数
=Tt / min
(
Tp
,
Tc
)
例如:producer
吞吐量
= 20m/s
;
consumer
吞吐量
= 50m/s
,期望吞吐量
100m/s
;
分区数 = 100 / 20 = 5
分区
分区数一般设置为:3-10
个
10.多少个 Topic
通常情况:多少个日志类型就多少个 Topic
。也有对日志类型进行合并的。
11.Kafka 的 ISR 副本同步队列
ISR(In-Sync Replicas),副本同步队列。
ISR
中包括
L