如何使用 SASL_SSL 公网连接消息队列Kafka版

容器与中间件中间件技术服务知识库
问题描述

开启公网连接后,如何使用 Python 正常连接到 Kafka 进行生产和消费。

问题分析

在公网环境下,消息队列 Kafka 版要求通过 SSL 证书对消息进行鉴权和加密,保障数据传输过程的安全性,防止数据在网络传输过程中被截取或者窃听,相较于普通公网访问方式具备更高的安全性。目前支持客户端对服务端证书的单向认证, 所以需要下载 SASL_SSL 证书 并指定 SASL_SSL 协议。

解决方案

Python 示例demo如下:


from kafka import KafkaProducer
import ssl
##连接信息
conf = {
    'bootstrap_servers': ["kafka-cn*****v.kafka.volces.com:9492","kafka-cn*******.kafka.volces.com:9493","kafka-cn*****.kafka.volces.com:9494"],
    'topic_name': 'test',
    'sasl_plain_username': 'user',
    'sasl_plain_password': 'PASSWORD'
}

print('start producer')
producer = KafkaProducer(bootstrap_servers=conf['bootstrap_servers'],
                        sasl_mechanism="PLAIN",
                        ssl_check_hostname=False,
                        security_protocol='SASL_SSL',
                        sasl_plain_username=conf['sasl_plain_username'],
                        sasl_plain_password=conf['sasl_plain_password'])

data = bytes("hello kafka!", encoding="utf-8")
producer.send(conf['topic_name'], data)
producer.close()
print('end producer')

如果您有其他问题,欢迎您联系火山引擎技术支持服务

33
0
0
0
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论