python 实例权限认证连接 Kafka

为了确保Kafka主题生产和消费的安全,本文介绍了如何通过Python进行权限认证设置。首先,需要在Kafka server上配置权限认证,然后在生产者和消费者的代码实例中添加相应的认证参数,如SASL_PLAINTEXT安全协议和用户名密码。生产者代码演示了如何发送消息,而消费者代码展示了如何接收和打印消息。

背景:为保证kafka topic 生产和消费的安全,需增加权限认证功能

问题的解决:

            step1: kafka server增加权限认证配置: 链接

            step2: 代码实例中增加认证参数

 

1. 生产者

import time
from kafka import KafkaProducer

 

topic_name = 'test_group_topic'

producer = KafkaProducer(
                         sasl_mechanism="PLAIN",
                         security_protocol='SASL_PLAINTEXT',
                         sasl_plain_username="producer",
                         sasl_plain_password="prod-sec",
                         bootstrap_servers=['120.78.163.200:9092']
                         )

# 生产数据

for i in range(5):
    t = time.strftime('%Y%m%d%H%M%S', time.gmtime())
    data = t + '---%d--test' % i
    print('---%d---' % i)
    producer.send(topic_name, data.encode())

producer.close()

 

2. 消费者

from kafka import KafkaConsumer


topic_name = 'test_group_topic'

consumer = KafkaConsumer(topic_name,
                         # group_id='test_id',                   # 同名组多个消费者消费同一个topic
                         # enable_auto_commit=True,
                         # auto_commit_interval_ms=2,
                         sasl_mechanism="PLAIN",
                         security_protocol='SASL_PLAINTEXT',
                         sasl_plain_username="consumer",
                         sasl_plain_password="cons-sec",
                         bootstrap_servers=['120.78.163.200:9092'],
                         )

for msg in consumer:
    print("%s:%d:%d: key=%s value=%s" % (msg.topic, msg.partition, msg.offset, msg.key, msg.value.decode()))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值