我的雇主有一个处理有价值数据的Kafka集群。有没有办法知道我们的集群正在以多少百分比的容量运行?我们的集群能够处理更大的流量吗?如果单个节点故障,我们是否能够存活一小时或一天?
我的雇主有一个处理有价值数据的Kafka集群。有没有办法知道我们的集群正在以多少百分比的容量运行?我们的集群能够处理更大的流量吗?如果单个节点故障,我们是否能够存活一小时或一天?
我不确定你的意思,所以我会采取广泛的方法。
你所说的容量是指,“我的Kafka集群能否容纳所有的日志?”这取决于以下几个因素:
如果您有两周的保留期,没有日志压缩(当一条消息消失时,它就消失了),没有日志压缩,并且在这两周内您预计推送10,000条1k大小的消息(在这两周内)并复制3次……您最好有30,000k的存储空间,或者30MB。
至于进一步的计算,如集群的大小和多少台机器可以停机而不会出现问题、磁盘空间、IO等操作问题,以下是一些关于该主题的非常棒的链接:
如果您说的容量是指,“我的Kafka集群,即Kafka集群中的“物理”盒子可以处理多少Kafka流量?”:也就是说,Kafka可以在您的盒子上存储数据的速度有多快,那么这是另一个问题。如果您想知道(例如)哪种AWS实例类型最适合处理Kafka数据,或者要给JVM分配多少内存/在该代理上还可以运行什么其他内容等等,那么这是一件好事。
值得注意的是,从Unix的角度来看,您在盒子上拥有的空闲内存越多,Unix内核可以用于文件缓存的空间就越多(因此不要只是简单地全部分配给JVM;))。网络卡的类型/容量也非常重要。
这里有一些有趣的阅读材料:
考虑到理论最大值(“超过您所需的”)的想法,测试您的单个代理/安装可能是值得的。可以使用Ranger或类似工具,也可以将大量真实数据转储到其中(也许同时测试数据管道,转入下一个要点...)
如果容量是指,“一条消息通过我的数据管道需要多长时间(平均值或中位数),从生成到传递到Kafka,由微服务消耗,经过转换,生成新主题,再次消耗... 最终落在微服务集群/数据管道的末端?”
这是一个关于以下内容的函数: