首页 > 编程语言 >Python-操作kerberos验证的kafka

Python-操作kerberos验证的kafka

时间:2023-10-20 14:56:32浏览次数:41  
标签:Python kerberos kafka 修改 xx sasl 实际

本笔记为python操作kerberos认证的kafka的操作方法,此仅记录作为使用者,连接客户提供的kafka并进行操作的流程。

1、依赖安装:

python相关依赖库:

pip3 install kafka-python
pip3 install gssapi

系统(镜像):需要安装kerberos的客户端进行验证

对于mac:brew install krb5
对于Debian或Ubuntu:apt-get install -y -q krb5-config krb5-user libkrb5-dev

2、进行kerberos认证:

此时需要客户方提供认证信息,核心为:

1、krb5.conf文件(需放到/etc/krb5.conf或手动指定该文件的位置)
2、xx.keytab文件
3、用户名,USER_PRINCIPAL

执行认证在系统或者镜像中执行认证命令:

kinit -kt xx.keytab文件路径 USER_PRINCIPAL

执行成功则无任何返回

3、使用python进行kafka操作

此时需要客户提供相关的连接信息,加密方式等参数,如:group_id,security_protocol,sasl_kerberos_domain_name等

product.py

from kafka import KafkaProducer

producer = KafkaProducer(bootstrap_servers=["xx.xx.xx.xx:9092"], # (根据实际情况修改)
                         security_protocol="SASL_PLAINTEXT", # (根据实际情况修改)
                         sasl_mechanism="GSSAPI", # (根据实际情况修改)
                         sasl_kerberos_domain_name='hadoop.hadoop.com', # (根据实际情况修改)
                         sasl_kerberos_service_name="test") # (根据实际情况修改)
print("starting Kafka producer")
response = producer.send("test-topic", b"testmessage")
result = response.get(timeout=50)
print(result)

consumer.py

from kafka import KafkaConsumer

consumer = KafkaConsumer("test-topic",
                         bootstrap_servers=["xx.xx.xx.xx:9092"], # (根据实际情况修改)
                         group_id="xxxx", # (根据实际情况修改)
                         enable_auto_commit="true", # (根据实际情况修改)
                         security_protocol="SASL_PLAINTEXT", # (根据实际情况修改)
                         sasl_mechanism="GSSAPI", # (根据实际情况修改)
                         sasl_kerberos_domain_name='hadoop.hadoop.com', # (根据实际情况修改)
                         sasl_kerberos_service_name="test") # (根据实际情况修改)
for message in consumer:
    print("start consumer")
    print(f"{message}")

标签:Python,kerberos,kafka,修改,xx,sasl,实际
From: https://www.cnblogs.com/chiyun/p/17777097.html

相关文章

  • [922] Implementation of zooming to selected features by Python
    ref:ArcPy.mpGetSelectedFeaturesExtentref:Python/ArcPyclasses/Geometry#Setthepathtoyourprojectfile(.aprx)project_file=r"Map1.3Heritage.aprx"#Referencetheprojectaprx=arcpy.mp.ArcGISProject(project_file)#getthe......
  • Python + Selenium + Firefox 使用代理 auth 的用户名密码授权
    Python+Firefox+插件(closeproxy.xpi)其中,closeproxy.xpi文件,需要Google、Bing搜下都能搜到下载地址完整的测试代码如下: fromseleniumimportwebdriverfromselenium.webdriver.firefox.firefox_binaryimportFirefoxBinaryfromselenium.webdriver.common.proxyimp......
  • 关于Python的打包与编译
    1、nuitka编译成一个so文件nuitka3--module--include-module=target_file_or_dirtarget_file_or_dir2、compileall编译成pycpython3-mcompileall-b<dir>#删除相关的py文件find<dir>-name'*.py'-typef-print-execrm{}\;3、bdist_wheel打包whl文......
  • Python3+selenium3+Firefox 设置浏览器headless模式运行+下载文件
    设置Firefoxheadless模式   defsetUp(self):#Firefoxheadless模式运行options=webdriver.FirefoxOptions()options.add_argument('-headless')self.driver=webdriver.Firefox(options=options)self.driver.implicitly_wait(30)......
  • Windows Python 访问达梦数据库(环境配置)
    WindowsPython访问达梦数据库(环境配置) 一、前提条件本篇博客以访问本地达梦数据库(DM8)为基础进行演示。(前提:本地已经安装了DM8数据库!)关于Windows安装达梦数据库,请参考博客:Windows安装达梦数据库关于Docker安装达梦数据库,请参考博客:Docker安装达梦数据库关于JD......
  • 【Python&RS】基于Python批量镶嵌拼接遥感影像/栅格数据
    ​    我之前分享过【Python&RS】基于GDAL镶嵌拼接遥感影像,但是没有加入批量处理的代码。最近正好有这个需求,所以就对原来的代码进行了优化加入了批量拼接的代码。现在只需输入一个文件夹即可将其中的影像全部镶嵌起来。 一、导入GDAL库fromosgeoimportgdal二......
  • Python猴子补丁
    Python猴子补丁介绍猴子补丁是一种替换方法的方式。因为python是动态语言,所以我们在方法执行之前,可以将方法替换,以达到我们期望的结果。需要理解的是,python的方法在加上括号之前,代表的的只是方法的内存,可以被当做一个变量进行传递。使用#示例classTest:  a=1 ......
  • [920] Copy the font style from one cell in a table of a Word document to another
    TocopythefontstylefromonecellinatableofaWorddocumenttoanothercellusingPythonandthepython-docxlibrary,youcanaccessthefontpropertiesofthesourcecellandapplythemtothetargetcell.Here'showyoucandoit:First,ma......
  • python中json模块
    importjsonstring='{"name":"xxx","age":18,"object":[{"数学":100,"语文":90,"英语":70}]}'print(string)print(type(string))#将json字符串转为python字典data_dic=json.loads(string)print......
  • kafka介绍
    官网:https://kafka.apache.org/Kafka是一个分布式事件流平台1介绍核心特性:高吞吐量、弹性、持久化存储、高可用事件流类似人类的中枢神经系统。越来越多的业务被软件实现和自动化,在此种情况下软件的用户还是软件。技术上讲,事件流就是实时的从事件源(数据库,传感器,移动设备,......