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绘制MySQL数据图实现数据可视化
Mar 30 Python
浅谈python内置变量-reversed(seq)
Jun 21 Python
Django权限机制实现代码详解
Feb 05 Python
python打包生成的exe文件运行时提示缺少模块的解决方法
Oct 31 Python
Python编程深度学习计算库之numpy
Dec 28 Python
使用python将请求的requests headers参数格式化方法
Jan 02 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
Jul 01 Python
python装饰器练习题及答案
Nov 01 Python
解决python -m pip install --upgrade pip 升级不成功问题
Mar 05 Python
实现ECharts双Y轴左右刻度线一致的例子
May 16 Python
python 模拟在天空中放风筝的示例代码
Apr 21 Python
python实现简单的名片管理系统
Apr 26 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中遍历stdclass object的实现代码
2011/06/09 PHP
PHP关联链接常用代码
2012/11/05 PHP
PHP获取网页标题的3种实现方法代码实例
2014/04/11 PHP
php socket通信(tcp/udp)实例分析
2016/02/14 PHP
CI框架扩展系统核心类的方法分析
2016/05/23 PHP
php生成mysql的数据字典
2016/07/07 PHP
PHP重置数组为连续数字索引的几种方式总结
2018/03/12 PHP
prototype.js的Ajax对象
2006/09/23 Javascript
EASYUI TREEGRID异步加载数据实现方法
2012/08/22 Javascript
jquery单行文字向上滚动效果示例
2014/03/06 Javascript
在JavaScript中使用timer示例
2014/05/08 Javascript
JavaScript动态生成二维码图片
2016/04/20 Javascript
详解jQuery插件开发方式
2016/11/22 Javascript
JavaScript BASE64算法实现(完美解决中文乱码)
2017/01/10 Javascript
jQuery层级选择器_动力节点节点Java学院整理
2017/07/04 jQuery
jQuery实现的事件绑定功能基本示例
2017/10/11 jQuery
完美解决axios跨域请求出错的问题
2018/02/05 Javascript
基于vue-ssr的静态网站生成器VuePress 初体验
2018/04/17 Javascript
Vue兼容ie9的问题全面解决方案
2018/06/19 Javascript
JS中数组与对象的遍历方法实例小结
2018/08/14 Javascript
webpack3.0升级4.0的方法步骤
2020/04/02 Javascript
jQuery中getJSON跨域原理的深入讲解
2020/09/02 jQuery
Bootstrap FileInput实现图片上传功能
2021/01/28 Javascript
[10:54]Team Spirit vs Navi
2018/06/07 DOTA
Python发送Email方法实例
2014/08/21 Python
Python编程scoketServer实现多线程同步实例代码
2018/01/29 Python
火车票抢票python代码公开揭秘!
2018/03/08 Python
Django应用程序入口WSGIHandler源码解析
2019/08/05 Python
手把手教你安装Windows版本的Tensorflow
2020/03/26 Python
澳大利亚便宜的家庭购物网站:CrazySales
2018/02/06 全球购物
GIVENCHY纪梵希官方旗舰店:高定彩妆与贵族护肤品
2018/04/16 全球购物
大学生职业生涯规划书模板
2014/01/03 职场文书
乒乓球兴趣小组活动总结
2014/07/08 职场文书
公司合作意向书范文
2014/07/30 职场文书
2014年移动公司工作总结
2014/12/08 职场文书
CSS使用SVG实现动态分布的圆环发散路径动画
2022/12/24 HTML / CSS