python3连接kafka模块pykafka生产者简单封装代码


Posted in Python onDecember 23, 2019

1.1安装模块

pip install pykafka

1.2基本使用

# -* coding:utf8 *- 
from pykafka import KafkaClient 
host = 'IP:9092, IP:9092, IP:9092'
client = KafkaClient(hosts = host) 
# 生产者 
topicdocu = client.topics['my-topic'] 
producer = topicdocu.get_producer() 
for i in range(100): 
 print i 
 producer.produce('test message ' + str(i ** 2)) 
producer.stop()

1.3简单封装

class KafkaProduct():

 def __init__(self,hosts,topic):
  """
  初始化实例
  :param hosts: 连接地址
  :param topic:
  """
  self.__client = KafkaClient(hosts=hosts)
  self.__topic = self.__client.topics[topic.encode()]

 def __set_topic(self, topic):
  self.__topic = self.__client.topics[topic.encode()]

 def set_topic(self, topic):
  """
  设置topic
  :param topic:
  :return:
  """
  self.__set_topic(topic)

 def get_topics(self):
  """
  获取当前所有topic
  :return:
  """
  return self.__client.topics

 def get_topic(self):
  """
  获取当前topic
  :return:
  """
  return self.__topic

 def Producer(self):
  """
  生产者对象
  :return:
  """
  with self.__topic.get_producer(delivery_reports=True) as producer:
   next_data = ''
   while True:
    if next_data:
     producer.produce(str(next_data).encode())
    next_data = yield True

 def send_data(self,datas):
  """
  发送数据
  :param datas:需要传入的可迭代对象
  :return:
  """
  c = self.Producer()
  next(c)
  for i in datas:
   c.send(i)

if __name__ == '__main__':

hosts = "1.2.3.4:9999,2.3.4.5:9090" #连接hosts
topic = "test_523"
K = KafkaProduct(hosts=hosts, topic=topic) #
#K.set_topic("test") #切换设置新的topic
K.get_topic() #获取当前设置的topic
#K.get_topics() #获取所有topic
data = range(10000) #要发送的可迭代对象
K.send_data(data)

以上这篇python3连接kafka模块pykafka生产者简单封装代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 参数列表中的self 显式不等于冗余
Dec 01 Python
给Python IDLE加上自动补全和历史功能
Nov 30 Python
Python调用命令行进度条的方法
May 05 Python
python实现数值积分的Simpson方法实例分析
Jun 05 Python
python脚本监控docker容器
Apr 27 Python
Python脚本实现Web漏洞扫描工具
Oct 25 Python
Flask框架的学习指南之制作简单blog系统
Nov 20 Python
Django验证码的生成与使用示例
May 20 Python
python机器学习实战之最近邻kNN分类器
Dec 20 Python
python实现外卖信息管理系统
Jan 11 Python
使用Python的Turtle库绘制森林的实例
Dec 18 Python
Python魔法方法 容器部方法详解
Jan 02 Python
python pyenv多版本管理工具的使用
Dec 23 #Python
Python测试Kafka集群(pykafka)实例
Dec 23 #Python
Python with语句和过程抽取思想
Dec 23 #Python
python每5分钟从kafka中提取数据的例子
Dec 23 #Python
Python彻底删除文件夹及其子文件方式
Dec 23 #Python
win10下python2和python3共存问题解决方法
Dec 23 #Python
py-charm延长试用期限实例
Dec 22 #Python
You might like
相对路径转化成绝对路径
2007/04/10 PHP
PHP 采集程序原理分析篇
2010/03/05 PHP
浅谈PHP中try{}catch{}的使用方法
2016/12/09 PHP
PHP实现图片压缩
2020/09/09 PHP
如何获取JQUERY AJAX返回的JSON结果集实现代码
2012/12/10 Javascript
JavaScript?Apple设备检测示例代码
2013/11/15 Javascript
输入框过滤非数字的js代码
2014/09/18 Javascript
JavaScript 学习笔记之操作符(续)
2015/01/14 Javascript
Jquery对select的增、删、改、查操作
2015/02/06 Javascript
JS实现简单的键盘打字的效果
2015/04/24 Javascript
HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
2016/01/26 Javascript
几句话带你理解JS中的this、闭包、原型链
2016/09/26 Javascript
详解nodejs通过代理(proxy)发送http请求(request)
2017/09/22 NodeJs
node的process以及child_process模块学习笔记
2018/03/06 Javascript
JavaScript指定断点操作实例教程
2018/09/18 Javascript
JS调用安卓手机摄像头扫描二维码
2018/10/16 Javascript
javascript实现简单打字游戏
2019/10/29 Javascript
Vue快速实现通用表单验证的示例代码
2020/01/09 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
[49:13]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第一局
2016/02/27 DOTA
[28:48]《真视界》- 2017年国际邀请赛
2017/09/27 DOTA
Python中的探索性数据分析(功能式)
2017/12/22 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
Python字符串格式化输出代码实例
2019/11/22 Python
利用PyTorch实现VGG16教程
2020/06/24 Python
Keras loss函数剖析
2020/07/06 Python
关于Python字符编码与二进制不得不说的一些事
2020/10/04 Python
使用数据结构给女朋友写个Html5走迷宫游戏
2019/11/26 HTML / CSS
医学检验专业大学生求职信
2013/11/18 职场文书
销售总监工作职责
2013/11/21 职场文书
舞蹈教师自荐信
2014/01/27 职场文书
情况说明书怎么写
2015/10/08 职场文书
两行代码解决Jupyter Notebook中文不能显示的问题
2021/04/24 Python
pandas 实现将NaN转换为None
2021/05/14 Python
JavaScript中isPrototypeOf函数
2021/11/07 Javascript
详解Python flask的前后端交互
2022/03/31 Python