请教大家一下Kafka队列和Kerberos票据的问题。
我在运行一段python代码的时候,
from kafka import KafkaConsumer, KafkaProducer
import ssl
...
context = ssl.create_default_context()
context.verify_mode = ssl.CERT_REQUIRED
context.load_verify_locations(self.ssl_cafile)
context.load_cert_chain(certfile=self.ssl_certfile, keyfile=self.ssl_keyfile)
context.options &= ssl.OP_NO_TLSv1
context.options &= ssl.OP_NO_TLSv1_1
return KafkaConsumer (self.inbound_topic, group_id=self.group_id, bootstrap_servers=json.loads(self.bootstrap_servers),
auto_offset_reset=self.auto_offset_reset,
security_protocol=self.security_protocol,
sasl_mechanism=self.sasl_mechanism,
ssl_context=context,
api_version=(0,10))
当正常用kinit设定Kerberos时,以上代码运行良好。但是,一旦我指定了Kerberos的生存周期,比如kinit "-l 15s",那么15秒之后以上代码停滞在return KafkaConsumer那里不动。
这个问题对我的project非常重要,因为涉及到多久refresh一次Kerberos的问题。我本来的设想是:在0~14秒之间,所有return KafkaConsumer所需要的参数已经设置好了,print一下self.bootstrap_servers等等也都正常。那么即使第15秒Kerberos失效,所有return KafkaConsumer所需要的参数不该随之失效。但是,现在看来不是这样。可是我也说不清为什么……
请问Python模块KafkaConsumer会被Kerberos的状态影响嘛?谢谢了先!