Kafka·萨斯勒握手时间太长

jhiyze9q  于 2021-06-08  发布在  Kafka
关注(0)|答案(0)|浏览(252)

描述:使用sasl/scram或sasl/明文进行身份验证大约需要9秒才能完成。这正常吗?
如何复制:
一个kafka代理示例(v1.1.0)
一个c#制作人(confluent kafka客户端v0.11.4)执行以下操作:

var producerConfig =    
               PropertiesUtils.ReadPropertiesFile("producer.properties");

           using (var producer = new Producer(producerConfig, null, new StringSerializer(Encoding.UTF8)))
           {
               while (true)
               {
                   Console.Write("message: ");
                   string msg = Console.ReadLine();

                   producer.ProduceAsync("test-topic", null, msg);
               }
           }

一个c#消费者(confluent kafka客户端v0.11.4)执行以下操作:

var config = PropertiesUtils.ReadPropertiesFile("consumer.properties");

            using (var consumer = new Consumer(config, null, new StringDeserializer(Encoding.UTF8)))
            {
                consumer.OnMessage += (_, msg)
                      =>
                {
                    Console.WriteLine(msg.Value);
                };

                consumer.OnError += (_, error)
                  => Console.WriteLine($"Error: {error}");

                consumer.OnConsumeError += (_, msg)
                  => Console.WriteLine($"Consume error ({msg.TopicPartitionOffset}): {msg.Error}");

                consumer.Subscribe("test-topic");

                while (true)
                {
                    try
                    {
                        consumer.Poll(TimeSpan.FromMilliseconds(1000));
                    }
                    catch(Exception e)
                    {
                        Console.WriteLine(e.Message);
                    }
                }
            }

服务器属性:
broker.id=0
num.network.threads=3个
num.io.threads=8个
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
session.timeout.ms=1000
group.initial.rebalance.delay.ms=0
侦听器=sasl_ssl://localhost:9093
ssl.keystore.type=jks
ssl.keystore.location=。。。
ssl.keystore.password=。。。
ssl.key.password=。。。
ssl.truststore.type=jks
ssl.truststore.location=。。。
ssl.truststore.password=。。。
ssl.protocol=tls协议
ssl.enabled.protocols=tlsv1.2、tlsv1.1、tlsv1
ssl.client.auth=必需
security.inter.broker.protocol=sasl\u ssl协议
ssl.secure.random.implementation=sha1prng
sasl.enabled.mechanisms=普通,紧急停堆-sha-256
sasl.mechanism.inter.broker.protocol=普通
log.dirs=。。。
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168小时
log.retention.bytes=1073741824
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
num.replica.fetchers=1
zookeeper.connect连接=localhost:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
消费者属性:
bootstrap.servers服务器=localhost:9093
group.id=测试使用者组
fetch.min.bytes=1
fetch.wait.max.ms=1
auto.offset.reset=最新
socket.blocking.max.ms=1
fetch.error.backoff.ms=1
ssl.ca.location=。。。
ssl.certificate.location=。。。
ssl.key.location=。。。
ssl.key.password=。。
security.protocol=sasl\u ssl协议
sasl.mechanisms=普通
sasl.username=。。。
sasl.password=。。。
生产商属性
bootstrap.servers服务器=localhost:9093
compression.type=无
linger.ms=0
重试次数=0确认次数=0
ssl.ca.location=。。。
ssl.certificate.location=。。。
ssl.key.location=。。。
ssl.key.password=。。。
security.protocol=sasl\u ssl协议
sasl.mechanisms=普通
sasl.username=。。。
sasl.password=。。。
运行消费者。从请求到完成sasl握手大约需要9秒。日志如下:
[2018-07-06 17:03:37673]调试将sasl服务器状态设置为握手\u或\u版本\u请求(org.apache.kafka.common.security.authenticator.saslserverauthenticator)[2018-07-06 17:03:37673]调试处理kafka请求api \u版本(org.apache.kafka.common.security.authenticator.saslserverauthenticator)[2018-07-06 17:03:37,673]调试将sasl服务器状态设置为握手\u请求(org.apache.kafka.common.security.authenticator.saslserverauthenticator)[2018-07-06 17:03:37673]调试处理kafka请求sasl \u握手(org.apache.kafka.common.security.authenticator.saslserverauthenticator)[2018-07-06 17:03:37,674]使用客户端提供的sasl机制“plain”进行调试(org.apache.kafka.common.security.authenticator.saslserverauthenticator)[2018-07-06 17:03:46805]调试设置sasl服务器状态以进行身份验证(org.apache.kafka.common.security.authenticator.saslserverauthenticator)[2018-07-06 17:03:46,807]调试将sasl服务器状态设置为完成(org.apache.kafka.common.security.authenticator.saslserverauthenticator)
评论:
我在运行producer时也观察到了相同的持续时间
在使用scram-256进行身份验证时,我观察到了相同的持续时间
在运行java客户机时,我观察到了相同的持续时间( kafka-console-consumer 以及 kafka-console-producer )
更新:正如@edenhill在ubuntu虚拟机上设置代理并从windows连接客户端时所建议的那样,延迟不再被观察到。我想知道为什么ssl握手和sasl认证在windows上都需要10秒!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题