python 实例权限认证连接 Kafka

背景:为保证kafka topic 生产和消费的安全,需增加权限认证功能问题的解决:            step1: kafka server增加权限认证配置: 链接            step2: 代码实例中增加认证参数 1. 生产者import timefrom kafka import KafkaProducer topic_name = 'test...
摘要由CSDN通过智能技术生成

背景:为保证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 + '---%

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 中可以使用 `confluent-kafka-python` 库来消费 GSSAPI 认证Kafka 集群。具体步骤如下: 1. 安装 `confluent-kafka-python` 库: ``` pip install confluent-kafka ``` 2. 编写消费者代码: ```python from confluent_kafka import Consumer, KafkaError conf = { 'bootstrap.servers': '<kafka_bootstrap_servers>', 'security.protocol': 'sasl_plaintext', 'sasl.mechanisms': 'GSSAPI', 'sasl.kerberos.service.name': '<kafka_service_name>', 'group.id': '<consumer_group_id>', } consumer = Consumer(conf) topics = ['<topic_name>'] def print_assignment(consumer, partitions): print('Assignment:', partitions) # Subscribe to topics consumer.subscribe(topics, on_assign=print_assignment) while True: msg = consumer.poll(1.0) if msg is None: continue if msg.error(): if msg.error().code() == KafkaError._PARTITION_EOF: print('End of partition event') else: print('Error:', msg.error()) else: print('Received message: {0}'.format(msg.value())) consumer.close() ``` 在上面的代码中,`<kafka_bootstrap_servers>` 指定 Kafka 集群的 bootstrap servers,`<kafka_service_name>` 指定 GSSAPI 认证的服务名称,`<consumer_group_id>` 指定消费者组 ID,`<topic_name>` 指定要消费的主题名称。在 `conf` 字典中,指定了 Kafka 集群的连接配置,包括安全协议、SASL 机制等。 `Consumer` 对象用于消费 Kafka 集群中的消息,可以使用 `subscribe` 方法订阅一个或多个主题。`poll` 方法用于从 Kafka 集群中拉取消息,如果没有消息可用,则会在超时时间内返回 `None`。如果拉取消息出错,可以通过 `error` 方法获取错误信息,如果没有错误,则可以通过 `value` 方法获取消息的值。 最后,记得关闭 `Consumer` 对象。 注意:在使用 GSSAPI 认证时,需要确保客户端机器上已经正确配置了 Kerberos 客户端,并且可以正确地获取到 Kerberos 的凭证。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值