如何使用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()

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

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

所属团队号:
相关资源
云原生可观测性技术的落地实践
云原生技术和理念在近几年成为了备受关注的话题。应用通过云原生改造,变得更动态、弹性,可以更好地利用云的弹性能力。但是动态、弹性的环境也给应用以及基础设施的观测带来了更大的挑战。本次分享主要介绍了云原生社区中可观测性相关的技术和工具,以及如何使用这些工具来完成对云原生环境的观测。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论