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使用in操作符时元组和数组的区别分析
May 19 Python
Python按行读取文件的简单实现方法
Jun 22 Python
Python3实现爬取指定百度贴吧页面并保存页面数据生成本地文档的方法
Apr 22 Python
Flask模拟实现CSRF攻击的方法
Jul 24 Python
浅谈python的dataframe与series的创建方法
Nov 12 Python
使用Django简单编写一个XSS平台的方法步骤
Mar 25 Python
python自动发邮件总结及实例说明【推荐】
May 31 Python
Python计算一个点到所有点的欧式距离实现方法
Jul 04 Python
TensorFlow实现指数衰减学习率的方法
Feb 05 Python
Python Websocket服务端通信的使用示例
Feb 25 Python
解决PyCharm无法使用lxml库的问题(图解)
Dec 22 Python
Keras多线程机制与flask多线程冲突的解决方案
May 28 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数组操作之键名比较与差集、交集赋值的方法
2014/11/10 PHP
十个PHP高级应用技巧果断收藏
2015/09/25 PHP
Valerio 发布了 Mootools
2006/09/23 Javascript
用Javascript做flash做的事..才完成的一个类.Auntion Action var 0.1
2007/02/23 Javascript
关于恒等于(===)和非恒等于(!==)
2007/08/20 Javascript
jQuery 连续列表实现代码
2009/12/21 Javascript
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
2013/06/05 Javascript
js获取事件源及触发该事件的对象
2013/10/24 Javascript
不到30行JS代码实现Excel表格的方法
2014/11/15 Javascript
jQuery实现隔行背景色变色
2014/11/24 Javascript
javascript给span标签赋值的方法
2015/11/26 Javascript
javascript每日必学之继承
2016/02/23 Javascript
JavaScript动态生成二维码图片
2016/04/20 Javascript
js+html5实现canvas绘制网页时钟的方法
2016/05/21 Javascript
基于JavaScript实现飘落星星特效
2017/08/10 Javascript
微信小程序 POST请求的实例详解
2017/09/29 Javascript
bootstrap响应式导航条模板使用详解(含下拉菜单,弹出框)
2017/11/17 Javascript
KOA+egg.js集成kafka消息队列的示例
2018/11/09 Javascript
Vue实现点击按钮复制文本内容的例子
2019/11/09 Javascript
如何在wxml中直接写js代码(wxs)
2019/11/14 Javascript
python单链表实现代码实例
2013/11/21 Python
Python书单 不将就
2017/07/11 Python
python程序封装为win32服务的方法
2021/03/07 Python
python实现彩色图转换成灰度图
2019/01/15 Python
纯css3使用vw和vh实现自适应的方法
2018/02/09 HTML / CSS
HTML5 Canvas渐进填充与透明实现图像的Mask效果
2013/07/11 HTML / CSS
Redbubble法国:由独立艺术家设计的独特产品
2019/01/08 全球购物
八年级生物教学反思
2014/01/22 职场文书
农村门前三包责任书
2014/07/25 职场文书
初中生庆国庆演讲稿范文2014
2014/09/25 职场文书
财务整改报告范文
2014/11/05 职场文书
护士自荐信范文
2015/03/25 职场文书
未婚证明格式
2015/06/15 职场文书
公司员工离职感言
2015/08/03 职场文书
2016年教师党员承诺书范文
2016/03/24 职场文书
高中班主任寄语
2019/06/21 职场文书