如何使用Scram类型密码连接消息队列Kafka

问题描述

客户在前端创建Scram类型密码,代码中无法连接到Kafka alt

问题分析

客户代码中协议及认证机制部分配置如下: alt

因为SASL_SSL协议并不支持SCRAM,需要更改为SASL_PLAINTEXT协议

解决方案

调整协议修改代码如下:

 "sasl.mechanism": "SCRAM-SHA-512"
 "security.protocol": "SASL_PLAINTEXT"

Python 示例demo如下:


import datetime
import json
import time
import uuid
from kafka import KafkaProducer
from kafka.errors import KafkaError
producer = KafkaProducer(bootstrap_servers=['kafka-6a1*****.kafka.ivolces.com:9093'],
                        sasl_mechanism="SCRAM-SHA-256",
                        security_protocol='SASL_PLAINTEXT',
                        api_version = (0,10),
                        retries=5,
                        sasl_plain_username='demo',
                        sasl_plain_password='A*******20')
topic = 'rudonx-demo'
def test():
    print('begin')
    try:
        n = 0
        while True:
            dic = {}
            dic['id'] = n
            n = n + 1
            dic['myuuid'] = str(uuid.uuid4().hex)
            dic['time'] = datetime.datetime.now().strftime("%Y%m%d %H:%M:%S")
            producer.send(topic, json.dumps(dic).encode())
            print("send:" + json.dumps(dic))
            time.sleep(0.5)
    except KafkaError as e:
        print(e)
    finally:
        producer.close()
        print('done')
if __name__ == '__main__':
    test()

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

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