bin/kafka-configs.sh --help
For entity-type 'users':
request_percentage
producer_byte_rate
SCRAM-SHA-256
SCRAM-SHA-512
consumer_byte_rate
For entity-type 'clients':
request_percentage
producer_byte_rate
consumer_byte_rate
从上面看可以对user 和client 设置 producer_byte_rate consumer_byte_rate 进行流量控制,针对topic是不能做流量限制的,但是可以对用户和客户端进行流量限制
producer_byte_rate=1024 #单个broker入流量限制参数,单位字节
consumer_byte_rate=2048 #单个broker出流量限制参数,单位字节
request_percentage=200 #限制CPU运行时间片百分比,不建议使用
===================================client 流量设置============================================================
设置client.id=client-2 流量为102400b/s 设置的流量为 102400/3 = 34133b/s
bin/kafka-configs.sh --zookeeper localhost:2181,localhost:2182,localhost:2183/kafka-test --entity-type clients --entity-name client-2 --add-config producer_byte_rate=34133 --alter
生产压测
bin/kafka-producer-perf-test.sh --topic topic6 --record-size 1024 --num-records 10000 --throughput -1 --producer-props acks=1 bootstrap.servers=10.10.17.210:8627,10.10.17.210:8628,10.10.17.210:8629 client.id=client-2
===================================user 流量设置============================================================
设置user=client-2 流量为102400b/s 设置的流量为 102400/3 = 34133b/s
bin/kafka-configs.sh --zookeeper localhost:2181,localhost:2182,localhost:2183/kafka-test --entity-type users --entity-name justin --add-config producer_byte_rate=34133 --alter
压测程序
bin/kafka-producer-perf-test.sh --topic topic6 --record-size 1024 --num-records 10000 --throughput -1 --producer-props acks=1 bootstrap.servers=10.10.17.210:8427,10.10.17.210:8428,10.10.17.210:8429 --producer.config jaas.properties
===============给user设置流量,如果一个user多个客户端呢,是否所有客户端相加=限制的流量还是每个客户端一样的流量?==============
bin/kafka-configs.sh --zookeeper localhost:2181,localhost:2182,localhost:2183/kafka-test --entity-type users --entity-name justin --add-config producer_byte_rate=34133 --alter
经过测试:按照这种方式只设置user的流量,同一个user,多个客户端压测,所有客户端流量相加=设置的流量值
================对user的某个client设置限流===================
bin/kafka-configs.sh --zookeeper localhost:2181,localhost:2182,localhost:2183/kafka-test --entity-type users --entity-name justin --entity-type clients --entity-name clientA --add-config producer_byte_rate=34133 --alter
bin/kafka-configs.sh --zookeeper localhost:2181,localhost:2182,localhost:2183/kafka-test --entity-type users --entity-name justin --entity-type clients --entity-name clientB --add-config producer_byte_rate=34133 --alter
压测程序
bin/kafka-producer-perf-test.sh --topic topic1 --record-size 1024 --num-records 10000 --throughput -1 --producer-props acks=1 client.id=clientA bootstrap.servers=10.10.17.210:8427,10.10.17.210:8428,10.10.17.210:8429 --producer.config jaas.properties
bin/kafka-producer-perf-test.sh --topic topic6 --record-size 1024 --num-records 10000 --throughput -1 --producer-props acks=1 client.id=clientB bootstrap.servers=10.10.17.210:8427,10.10.17.210:8428,10.10.17.210:8429 --producer.config jaas.properties
结果是每个client的流量都是100kb/s ------这样和单独给每个client设置流量有啥区别??