1.当前quota维度如下
/config/users/<user>/clients/<client id>
/config/users/<user>/clients/<default>
/config/users/<user>
/config/users/<default>/clients/<client id>
/config/users/<default>/clients/<default>
/config/users/<default>
/config/clients/<client id>
/config/clients/<default>
2.存在问题
1.quota维度不够精细,一些情况下无法很好的完成流量限制;
2.当同一个broker上的多个用户同时产生和消耗大量数据时,如果希望broker正常运行,必须使所有用户quota字节之和不超过broker的吞吐量上限,如果超过了,那broker就会超负载,存在down机的危险;
3.即使所有的用户的流量之和没有达到broker的上限,但是所有的用户流量都集中在broker的几个磁盘上,超过了磁盘的读写负载,所有的生产和消费请求也会被阻塞;
4.有时候只是某个用户下的一个topic流量突增,所以我们只需要限制这个突增的topic流量即可;
3.改进建议
1.改造源码,添加单个broker的quota字节的上限限制,防止多个用户流量之和超过broker流量上限,打挂broker;
2.改造源码,在broker上添加单个磁盘quota的上限,避免因流量集中到某块磁盘时,因单盘的瓶颈影响整个broker服务;
3.改造源码,添加topic维度的quota。
issue地址:https://issues.apache.org/jira/projects/KAFKA/issues/KAFKA-10897?filter=reportedbyme