一、两款工具对比
功能用途
kafka - console - consumer.sh
是简单的命令行消费者工具,主要用于在控制台显示从Kafka主题消费的消息,适用于测试生产者是否正常发送消息、查看消息格式等调试场景。kafka - consumer - perf - test.sh
则专为测试Kafka消费者性能设计,能在指定条件下(如消息数量、线程数等)测试消费者吞吐量等性能指标,帮助进行性能评估、优化及容量规划。
参数设置
kafka - console - consumer.sh
参数简洁,主要有连接集群地址(--bootstrap - servers
)、消费主题(--topic
)、消费者组ID(--group
)、是否从最早消息消费(--from - beginning
)等。kafka - consumer - perf - test.sh
参数更丰富,除基本的集群地址、主题参数外,还有消费消息数量(--messages
)、并发线程数(--threads
)、报告间隔时间(--reporting - interval
)、超时时间(--timeout
)、是否显示详细统计信息(--show - detailed - stats
)等,用于精确控制性能测试条件。
输出结果
kafka - console - consumer.sh
将消费的消息内容逐行输出,直观展示消息数据。kafka - consumer - perf - test.sh
输出每秒消费消息数、每秒消费数据量、平均延迟、最大延迟等性能指标,量化评估消费者性能。
二、使用SCRAM - ACL认证连接集群
集群端配置
- 开启SASL认证 :在
server.properties
中配置listeners
、security.inter.broker.protocol
、sasl.mechanism.inter.broker.protocol
、sasl.enabled.mechanisms
等属性,如listeners=SASL_PLAINTEXT://your_host:your_port
等,启用SASL/SCRAM认证。 - 创建用户并设置密码 :使用
kafka - configs.sh
脚本创建用户并设置密码,如kafka - configs.sh --bootstrap - servers your_bootstrap_servers --alter --add - config 'password=your_password' --entity - type users --entity - name your_username
。 - 配置ACL策略 :运用
kafka - acl.sh
脚本配置ACL策略,如kafka - acl.sh --bootstrap - servers your_bootstrap_servers --add --allow - principals User:your_username --topic your_topic --consumer --read
,为用户授予主题读权限。
工具使用配置
kafka - console - consumer.sh
:运行时通过参数指定SASL配置和连接信息,如./kafka - console - consumer.sh --bootstrap - servers your_bootstrap_servers --topic your_topic --from - beginning --consumer.config <(echo -e "security.protocol=SASL_PLAINTEXT\n sasl.mechanism=SCRAM - SHA - 256\n sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username='your_username' password='your_password';")
。kafka - consumer - perf - test.sh
:运行时同样指定相关配置,如./kafka - consumer - perf - test.sh --bootstrap - servers your_bootstrap_servers --topic your_topic --messages 100000 --threads 10 --consumer.config <(echo -e "security.protocol=SASL_PLAINTEXT\n sasl.mechanism=SCRAM - SHA - 256\n sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username='your_username' password='your_password';")
,以实现通过SCRAM认证连接开启ACL的Kafka集群进行性能测试。