我想运行测试来测量不同框架的延迟和吞吐量。我使用从txt文件读取的脚本向Kafka主题发送消息。此框架使用来自此输入主题的事件并生成输出主题。我有两个问题:假设我想每秒发送400个事件。我该如何控制呢?它是由发送数据的脚本控制的,还是可以在Kafka中配置?B)如果我可以控制吞吐量调整Kafka参数,我如何逐渐增加发送的事件数量(动态)?非常感谢!
bf1o4zei1#
在Kafka中,可以通过在客户端强制执行配额来控制吞吐量,但问题是它是按照字节/秒而不是每秒的消息数来强制执行的。由于它是用于测试目的,您可以在Kafka配置文件(server.properties)中定义如下配额:
quota.producer.default=100 quota.consumer.default=100
请注意,这意味着它将对所有主题应用此限制。另外,这里的100表示100字节。如果要在特定生产者或使用者客户端上强制实施配额,可以使用以下命令执行此操作:
quota.producer.override="clientA:4M,clientB:6M"
这意味着无论默认配额是什么,生产商与client.id“ClientA”可以产生在最大4 Mbps。对于动态部件,您可以使用www.example.com文件来设置这些配置,而不必在属性文件中手动kafka-config.sh设置这些配置:
bin/kafka-configs.sh --bootstrap-server localhost:9092 --alter --add-config 'producer_byte_rate=1024' --entity-name clientA --entity-type clients
这意味着,我希望对clientID为“clientA”的客户机强制执行节流,并且节流是基于produce-limit的,需要将其设置为最大1024字节。您可以通过编程方式使用此脚本来动态增加或减少配额。
1条答案
按热度按时间bf1o4zei1#
在Kafka中,可以通过在客户端强制执行配额来控制吞吐量,但问题是它是按照字节/秒而不是每秒的消息数来强制执行的。
由于它是用于测试目的,您可以在Kafka配置文件(server.properties)中定义如下配额:
请注意,这意味着它将对所有主题应用此限制。另外,这里的100表示100字节。
如果要在特定生产者或使用者客户端上强制实施配额,可以使用以下命令执行此操作:
这意味着无论默认配额是什么,生产商与client.id“ClientA”可以产生在最大4 Mbps。
对于动态部件,您可以使用www.example.com文件来设置这些配置,而不必在属性文件中手动kafka-config.sh设置这些配置:
这意味着,我希望对clientID为“clientA”的客户机强制执行节流,并且节流是基于produce-limit的,需要将其设置为最大1024字节。
您可以通过编程方式使用此脚本来动态增加或减少配额。