Ibm cloud kafka python-Bluemix MessageHub-ConnectionError:套接字已断开连接
我正在使用kafka python客户端将消息推送到消息中心,但注意到在运行我的应用程序一段时间后,它将停止向消息中心发送消息 然后,我在日志文件中注意到以下内容:Ibm cloud kafka python-Bluemix MessageHub-ConnectionError:套接字已断开连接,ibm-cloud,kafka-python,message-hub,Ibm Cloud,Kafka Python,Message Hub,我正在使用kafka python客户端将消息推送到消息中心,但注意到在运行我的应用程序一段时间后,它将停止向消息中心发送消息 然后,我在日志文件中注意到以下内容: ConnectionError: socket disconnected 我更新了代码以添加重试次数=5: from kafka import KafkaProducer from kafka.errors import KafkaError import ssl sasl_mechanism = 'PLAIN' securit
ConnectionError: socket disconnected
我更新了代码以添加重试次数=5
:
from kafka import KafkaProducer
from kafka.errors import KafkaError
import ssl
sasl_mechanism = 'PLAIN'
security_protocol = 'SASL_SSL'
# Create a new context using system defaults, disable all but TLS1.2
context = ssl.create_default_context()
context.options &= ssl.OP_NO_TLSv1
context.options &= ssl.OP_NO_TLSv1_1
producer = KafkaProducer(bootstrap_servers = app.config['KAFKA_BROKERS_SASL'],
sasl_plain_username = app.config['KAFKA_USERNAME'],
sasl_plain_password = app.config['KAFKA_PASSWORD'],
security_protocol = security_protocol,
ssl_context = context,
sasl_mechanism = sasl_mechanism,
api_version = (0,10),
retries=5)
def send_message(message):
try:
producer.send(app.config['KAFKA_TOPIC'], message.encode('utf-8'))
# FIXME sending seems to be unreliable unless we flush
producer.flush()
except:
print("Unexpected error:", sys.exc_info()[0])
raise
我的代码从python flask应用程序运行。传入的每个特定类型的请求都调用send\u message()
方法
以下是Bluemix的相关日志行。我可能错过了一两行复制和粘贴,但希望这足以弄清楚发生了什么:
APP/1 <BrokerConnection host=kafka01-prod01.messagehub.services.us-south.bluemix.net/23.246.202.51 port=9093>: Authenticated as xxxxx May 15, 2017 8:50:54 PM
APP/1 <BrokerConnection host=kafka01-prod01.messagehub.services.us-south.bluemix.net/23.246.202.51 port=9093>: socket disconnected May 15, 2017 8:50:54 PM
APP/1 Got error produce response on topic-partition TopicPartition(topic='movie_ratings', partition=0), retrying (4 attempts left). Error: ConnectionError: socket disconnectedMay 15, 2017 8:50:54 PM
APP/1 Node 0 connection failed -- refreshing metadata May 15, 2017 8:50:54 PM
APP/1 <BrokerConnection host=kafka01-prod01.messagehub.services.us-south.bluemix.net/23.246.202.51 port=9093>: Authenticated as xxxxxMay 15, 2017 8:50:54 PM
APP/1 <BrokerConnection host=kafka01-prod01.messagehub.services.us-south.bluemix.net/23.246.202.51 port=9093>: socket disconnected May 15, 2017 8:50:54 PM
APP/1 Node 0 connection failed -- refreshing metadata May 15, 2017 8:50:54 PM
APP/1 <BrokerConnection host=kafka01-prod01.messagehub.services.us-south.bluemix.net/23.246.202.51 port=9093>: Authenticated as xxxxx May 15, 2017 8:50:54 PM
APP/1 <BrokerConnection host=kafka01-prod01.messagehub.services.us-south.bluemix.net/23.246.202.51 port=9093>: socket disconnected May 15, 2017 8:50:55 PM
APP/1 Node 0 connection failed -- refreshing metadata May 15, 2017 8:50:55 PM
APP/1 Got error produce response on topic-partition TopicPartition(topic='movie_ratings', partition=0), retrying (2 attempts left). Error: ConnectionError: socket disconnected May 15, 2017 8:50:55 PM
APP/1 <BrokerConnection host=kafka01-prod01.messagehub.services.us-south.bluemix.net/23.246.202.51 port=9093>: Authenticated as xxxxx May 15, 2017 8:50:55 PM
APP/1 <BrokerConnection host=kafka01-prod01.messagehub.services.us-south.bluemix.net/23.246.202.51 port=9093>: socket disconnected May 15, 2017 8:50:55 PM
APP/1 Node 0 connection failed -- refreshing metadata May 15, 2017 8:50:55 PM
APP/1 Got error produce response on topic-partition TopicPartition(topic='movie_ratings', partition=0), retrying (1 attempts left). Error: ConnectionError: socket disconnected May 15, 2017 8:50:55 PM
APP/1 <BrokerConnection host=kafka01-prod01.messagehub.services.us-south.bluemix.net/23.246.202.51 port=9093>: Authenticated as xxxxx May 15, 2017 8:50:55 PM
APP/1 <BrokerConnection host=kafka01-prod01.messagehub.services.us-south.bluemix.net/23.246.202.51 port=9093>: socket disconnected May 15, 2017 8:50:55 PM
APP/1 Got error produce response on topic-partition TopicPartition(topic='movie_ratings', partition=0), retrying (0 attempts left). Error: ConnectionError: socket disconnected May 15, 2017 8:50:55 PM
APP/1 Node 0 connection failed -- refreshing metadata May 15, 2017 8:50:55 PM
APP/1 <BrokerConnection host=kafka01-prod01.messagehub.services.us-south.bluemix.net/23.246.202.51 port=9093>: Authenticated as xxxxx May 15, 2017 8:50:55 PM
APP/1 Node 0 connection failed -- refreshing metadata May 15, 2017 8:50:56 PM
APP/1 ConnectionError: socket disconnected May 15, 2017 8:50:56 PM
APP/1 Unable to import 'sasl'. Fallback to 'puresasl'. May 15, 2017 8:51:00 PM
APP/1 Closing active operation May 15, 2017 8:51:01 PM
APP/1:xxxxx认证日期2017年5月15日晚上8:50:54
APP/1:插座断开2017年5月15日晚上8:50:54
APP/1在主题分区TopicPartition(topic='movie\u ratings',partition=0)上生成响应时出错,正在重试(还剩4次尝试)。错误:ConnectionError:插座断开2017年5月15日晚上8:50:54
APP/1节点0连接失败--刷新元数据2017年5月15日晚上8:50:54
APP/1:认证为XXXXX 2017年5月15日晚上8:50:54
APP/1:插座断开2017年5月15日晚上8:50:54
APP/1节点0连接失败--刷新元数据2017年5月15日晚上8:50:54
APP/1:认证为xxxxx 2017年5月15日晚上8:50:54
APP/1:插座断开2017年5月15日晚上8:50:55
APP/1节点0连接失败--刷新元数据2017年5月15日晚上8:50:55
APP/1在主题分区TopicPartition(topic='movie\u ratings',partition=0)上生成响应时出错,正在重试(还剩2次尝试)。错误:ConnectionError:插座已断开2017年5月15日晚上8:50:55
APP/1:认证为xxxxx 2017年5月15日晚上8:50:55
APP/1:插座断开2017年5月15日晚上8:50:55
APP/1节点0连接失败--刷新元数据2017年5月15日晚上8:50:55
APP/1在主题分区TopicPartition(topic='movie\u ratings',partition=0)上生成响应时出错,正在重试(剩余1次尝试)。错误:ConnectionError:插座已断开2017年5月15日晚上8:50:55
APP/1:认证为xxxxx 2017年5月15日晚上8:50:55
APP/1:插座断开2017年5月15日晚上8:50:55
APP/1在主题分区TopicPartition(topic='movie\u ratings',partition=0)上生成响应时出错,正在重试(剩余0次尝试)。错误:ConnectionError:插座已断开2017年5月15日晚上8:50:55
APP/1节点0连接失败--刷新元数据2017年5月15日晚上8:50:55
APP/1:认证为xxxxx 2017年5月15日晚上8:50:55
APP/1节点0连接失败--刷新元数据2017年5月15日晚上8:50:56
APP/1连接器错误:插座断开2017年5月15日晚上8:50:56
APP/1无法导入“sasl”。退回到“puresasl”。2017年5月15日晚上8:51:00
APP/1关闭活动操作2017年5月15日晚上8:51:01
我的主题存在。我的完整客户端代码如下:
任何最受欢迎的指针…根据评论,将kafka python升级到1.3.3为我解决了这个问题。@chris.snow将您的kafka python从1.3.1升级到更新的版本,如1.3.3。他们修复了公共关系中的一个主要sasl错误,我相信是这个错误造成的。