python调用kafka_python调用kafka服务(使用kafka-python库)

试验环境:

CDH 5.15.1

CentOS 7

Python 3.7.0

kafka 1.1.1

实验目的:

通过python线程,不断的将指定接口中的数据取出,并将数据不断发送到kafka服务中。

实验步骤-1:

先将kafka-python下载并安装成功;

进行一个python调用kafka的简单测试:

进入python3的终端:

>>>from kafka import KafkaProducer>>> producer = KafkaProducer(bootstrap_servers=["master:9092"])>>> producer.send("test",b"Hello world")

>>> producer.send("test",b"Hello world")

启动kafka消费者:

kafka-console-consumer --zookeeper master:2181 --from-beginning --topic test

输出结果:

Hello world

Hello world

实验步骤-2:

实验代码:

#!/usr/bin/env python#-*- coding: utf-8 -*-#@File : ParsePS.py#@Author: cjj#@Date : 2019/6/4#@Desc : 请求接口,获取数据,对数据进行清洗

importreimportthreadingimporttimefrom urllib.error importURLErrorfrom kafka importKafkaProducerfrom kafka.errors importKafkaErrorfrom suds.client importClientclassData_clean:#获取测点数据的函数

defget_data(observation_point_name):try:#获取接口数据

user_url = 'http://xxx.xxx.xxx.xxx/ServiceSL/ServiceGetInsqlData.svc?wsdl'client=Client(user_url)

result=client.service.GetSingleTagInfo(observation_point_name)#1.对数据进行清洗

#1.1 先将数据转换成字符串

str1 =str(result)#1.2 取出所有双引号里面的数据,并将列表转换成字符串

pattern = re.compile('"(.*)"')

str2=str(pattern.findall(str1))#1.3 将单引号去掉

str3 = str2.replace('\'', '')#1.4 将逗号换成制表符

str4 = str3.replace(',', '\t')#1.5 去掉字符串前后的[]

str5 = str4[:-1][1:]returnstr5exceptTimeoutError as e:print("\033[1;31;0m>>>>>>TimeoutError ->->->->->-> 对接口的请求超时<<<<<<\033[0m")#print(e)

exceptURLError as e:print("\033[1;31;0m>>>>>>URLError ->->->->->-> 连接不到sql服务器<<<<<<\033[0m")except:print("\033[1;31;0m>>>>>>其它原因报错<<<<<<\033[0m")try:

producer= KafkaProducer(bootstrap_servers='master:9092')while 1:

msg = Data_clean.get_data("SLWS_ps_1hzybqz_WD.PV")print(msg)#指定主题和发送内容,将数据发送到kafka

producer.send('test', msg.encode('utf-8'))

time.sleep(5)exceptKafkaError as e:print(e)finally:

producer.close()print('done!!!')

将代码上传到Linux服务器

执行代码:python3 ParsePS.py

查看kafka消费者结果:

1295451-20190612100019755-1327634250.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值