Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

kafka---python访问Kerberos环境下的Kafka #99

Open
AronChung opened this issue Jan 26, 2021 · 0 comments
Open

kafka---python访问Kerberos环境下的Kafka #99

AronChung opened this issue Jan 26, 2021 · 0 comments
Labels
Projects

Comments

@AronChung
Copy link
Owner

AronChung commented Jan 26, 2021

先确保环境装有kafka-python和gssapi

sudo pip3 install kafka-python -i https://mirrors.aliyun.com/pypi/simple/
sudo pip3 install gssapi -i https://mirrors.aliyun.com/pypi/simple/

代码

#!/usr/bin/env python3
# coding=utf-8

# 执行前需要先kinit

import time

from kafka import KafkaProducer
from kafka import KafkaConsumer

def kafka_python_producer_main():
    producer = KafkaProducer(bootstrap_servers='hadoop.data.com:9092,hadoop2.data.com:9092',
                             security_protocol='SASL_PLAINTEXT',
                             sasl_mechanism='GSSAPI',
                             sasl_kerberos_service_name='kafka',
                             sasl_plain_username='zcm')
    for _ in range(100):
        print(_)
        producer.send('zcm_test', b'some_message_bytes')
    producer.flush()
    producer.close()
    print('done')

def kafka_python_consumer_main():
    consumer = KafkaConsumer('zcm_test',
                             bootstrap_servers='hadoop.data.com:9092,hadoop2.data.com:9092',
                             group_id='testgroup',
                             auto_offset_reset='earliest',
                             security_protocol='SASL_PLAINTEXT',
                             sasl_mechanism='GSSAPI',
                             sasl_kerberos_service_name='kafka',
                             sasl_plain_username='zcm')
    for msg in consumer:
        print(msg.value)
        print(msg.partition)

if __name__ == '__main__':
    kafka_python_producer_main()
    time.sleep(1)
    kafka_python_consumer_main()

具体的参数可参考:
https://kafka-python.readthedocs.io/en/master/apidoc/KafkaProducer.html

@AronChung AronChung added this to Kafka in My Blog Jan 26, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
My Blog
  
Kafka
Development

No branches or pull requests

1 participant