为什么可用区不能选择2个?
所有不同规格的Kafka集群实例都是3个Zookeeper节点,并且是通过Zookeeper集群进行管理配置的,Kafka依赖Zookeeper,如果Zookeeper集群出现问题,Kafka将无法正常运行。
一个Zookeeper集群正常运行,至少需要2个Zookeeper节点正常运行。
假设允许可用区选择2个,可用区1有1个Zookeeper节点,可用区2有2个Zookeeper节点。如果可用区1故障,则集群实例能正常使用;如果可用区2故障,则集群不能正常使用。集群可用的场景只有50%,所以不支持选择2个可用区
如何选择Kafka实例的存储空间?
存储空间,主要是指用于存储消息所需要的空间,选择时包括选择磁盘规格和大小,磁盘规格,当前支持“超高IO”和“高IO”两种类型。
假设业务存储数据保留天数内磁盘大小为100GB,则磁盘容量最少为100GB*副本数 + 预留磁盘大小100GB。Kafka集群中,每个Kafka节点会使用33G的磁盘作为日志和Zookeeper数据的存储,因而实际可用存储会小于购买存储。
其中,副本数在创建Topic时可以选择,默认为3副本存储。
Kafka实例的超高IO和高IO如何选择?
高IO:平均时延1-3ms,最大带宽150MB/s(读+写)。
超高IO:平均时延1ms,最大带宽350MB/s(读+写)。
建议选择超高IO,云硬盘服务端压力大场景,都不能达到最大带宽,但是超高IO可达到的带宽比高IO高很多。
如何选择Kafka实例存储容量阈值策略?
当前支持以下两种策略:
生产受限策略
该策略场景下一旦磁盘使用达到容量阈值95%,会导致后续生产失败,但保留了当前磁盘中的数据,直至数据自然老化(Kafka原有的老化机制,数据默认保留3天)。该场景适用于对数据不能丢的业务场景,但是会导致生产业务失败。
自动删除策略
该策略场景下磁盘使用到达容量阈值之后,以一个segment文件为单位(1GB),会自动删除最早的segment文件,保证生产业务能继续正常运行。该场景优先保障业务不中断,数据可能会丢失。
以上两种策略的需要基于业务对数据和业务的可靠性来进行选择,只能作为极端场景下的一个种处理方式。建议业务购买时保证有充足的磁盘容量,避免磁盘的使用达到容量阈值。
Kafka实例的Topic数量是否有限制?
在Kafka使用过程中,Topic数量本身无限制,但Topic的分区数之和有上限,当达到上限后,会导致用户无法继续创建Topic。