Ibm cloud kafka python-Bluemix MessageHub-ConnectionError:套接字已断开连接

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

我正在使用kafka python客户端将消息推送到消息中心,但注意到在运行我的应用程序一段时间后,它将停止向消息中心发送消息

然后,我在日志文件中注意到以下内容:

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错误,我相信是这个错误造成的。