我有4台机器,其中Kafka群集配置了拓扑,每台机器有一个zookeeper和两个代理.
使用此配置,您对最佳主题和分区有何建议以获得最佳性能?
复制因子3:使用kafka 0.10.XX
谢谢?
无论节点数多少,每个主题都限制在100,000个分区(截至2017年7月)
至于主题数量取决于机器中最小RAM的大小.这是因为Zookeeper将所有内容保存在内存中以便快速访问(同时它不会对znodes进行分片,只需在写入时跨ZK节点进行复制).这实际上意味着一旦你耗尽一台机器内存,ZK将无法添加更多主题.
在他们的网站上引用KAFKA文档(6.1基本Kafka操作https://kafka.apache.org/documentation/#basic_ops_add_topic):
每个分片分区日志都放在Kafka日志目录下的自己的文件夹中.此类文件夹的名称由主题名称,短划线( - )和分区ID组成.由于典型的文件夹名称长度不能超过255个字符,因此主题名称的长度将受到限制.我们假设分区数量不会超过100,000.因此,主题名称不能超过249个字符.这在短划线的文件夹名称和可能的5位长分区ID中留下足够的空间.
引用Zookeeper文档(https://zookeeper.apache.org/doc/trunk/zookeeperOver.html):
复制数据库是包含整个数据树的内存数据库.更新将记录到磁盘以获得可恢复性,并且写入在应用于内存数据库之前会序列化到磁盘.
性能:
根据您的发布和消费语义,主题分区有限性将发生变化.以下是一组您应该问自己以深入了解潜在解决方案的问题(您的问题非常开放):
好的链接:
http://cloudurable.com/ppt/4-kafka-detailed-architecture.pdf https://www.slideshare.net/ToddPalino/putting-kafka-into-overdrive https://www.slideshare.net/JiangjieQin/ no-data-loss-pipeline-with-apache-kafka-49753844 https://kafka.apache.org/documentation/
归档时间: |
|
查看次数: |
2101 次 |
最近记录: |