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删除nginx缓存文件示例(python文件操作)
Mar 26 Python
Python3控制路由器——使用requests重启极路由.py
May 11 Python
如何在Python中实现goto语句的方法
May 18 Python
Pandas之ReIndex重新索引的实现
Jun 25 Python
python pandas生成时间列表
Jun 29 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
Aug 04 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
Aug 19 Python
python程序 线程队列queue使用方法解析
Sep 23 Python
Python 用三行代码提取PDF表格数据
Oct 13 Python
Python全局锁中如何合理运用多线程(多进程)
Nov 06 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
Jan 27 Python
Python实现粒子群算法的示例
Feb 14 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
PHP使用GIFEncoder类生成的GIF动态图片验证码
2014/07/01 PHP
thinkphp模板继承实例简述
2014/11/26 PHP
php对数组内元素进行随机调换的方法
2015/05/12 PHP
Laravel 数据库加密及数据库表前缀配置方法
2019/10/10 PHP
如何用javascript控制上传文件的大小
2006/10/26 Javascript
简明json介绍
2008/09/28 Javascript
Javascript结合css实现网页换肤功能
2009/11/02 Javascript
Jquery 动态添加按钮实现代码
2010/05/06 Javascript
jQuery Jcrop插件实现图片选取功能
2011/11/23 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
Bootstrap轮播图学习使用
2017/02/10 Javascript
浅谈Node.js 沙箱环境
2018/05/15 Javascript
详解Next.js页面渲染的优化方案
2019/01/27 Javascript
layui表格数据重载
2019/07/27 Javascript
如何构建一个Vue插件并生成npm包
2020/10/26 Javascript
three.js 实现露珠滴落动画效果的示例代码
2021/03/01 Javascript
libreoffice python 操作word及excel文档的方法
2019/07/04 Python
对python while循环和双重循环的实例详解
2019/08/23 Python
Python pyautogui模块实现鼠标键盘自动化方法详解
2020/02/17 Python
Python实现一个简单的递归下降分析器
2020/08/01 Python
CSS3属性使网站设计增强同时不消弱可用性
2009/08/29 HTML / CSS
HTML5新增属性data-*和js/jquery之间的交互及注意事项
2017/08/08 HTML / CSS
SAZAC的动物连体衣和动物睡衣:Kigurumi Shop
2020/03/14 全球购物
什么是事务?事务有哪些性质?
2012/03/11 面试题
实体的生命周期
2013/08/31 面试题
Python文件操作的面试题
2013/06/22 面试题
建筑工地门卫岗位职责
2014/04/30 职场文书
大学生党员自我批评思想汇报
2014/10/10 职场文书
教师党员学习群众路线心得体会
2014/11/04 职场文书
蓬莱阁导游词
2015/02/04 职场文书
2015年上半年计生工作总结
2015/03/30 职场文书
采购员岗位职责范本
2015/04/07 职场文书
描写九月优美句子(39条)
2019/09/11 职场文书
导游词之镇江焦山
2019/11/21 职场文书
详解Alibaba Java诊断工具Arthas查看Dubbo动态代理类
2022/04/08 Java/Android
Windows Server 2019 域控制器安装图文教程
2022/04/28 Servers