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的Urllib库的一些高级用法
Apr 30 Python
Python urllib、urllib2、httplib抓取网页代码实例
May 09 Python
Python实现的求解最小公倍数算法示例
May 03 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
Jun 22 Python
PyCharm代码回滚,恢复历史版本的解决方法
Oct 22 Python
python通过http下载文件的方法详解
Jul 26 Python
pandas DataFrame的修改方法(值、列、索引)
Aug 02 Python
python 魔法函数实例及解析
Sep 25 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
Sep 29 Python
关于ZeroMQ 三种模式python3实现方式
Dec 23 Python
使用python处理题库表格并转化为word形式的实现
Apr 14 Python
python实现的人脸识别打卡系统
May 08 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
德劲1103二次变频版的打磨
2021/03/02 无线电
php中一个完整表单处理实现代码
2011/11/10 PHP
PHP+Mysql实现多关键字与多字段生成SQL语句的函数
2014/11/05 PHP
PHP判断JSON对象是否存在的方法(推荐)
2016/07/06 PHP
老生常谈PHP位运算的用途
2017/03/12 PHP
PHP从尾到头打印链表实例讲解
2018/09/27 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
2021/03/09 PHP
动态样式类封装JS代码
2009/09/02 Javascript
Jquery中的CheckBox、RadioButton、DropDownList的取值赋值实现代码
2011/10/12 Javascript
Javascript insertAfter() 实现函数代码
2011/10/12 Javascript
html中的input标签的checked属性jquery判断代码
2012/09/19 Javascript
浅谈JavaScript之事件绑定
2013/07/08 Javascript
使用javascript为网页增加夜间模式
2014/01/26 Javascript
一个简单的jquery的多选下拉框(自写)
2014/05/05 Javascript
JavaScript-RegExp对象只能使用一次问题解决方法
2014/06/23 Javascript
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
2014/09/26 NodeJs
nodejs批量修改文件编码格式
2015/01/22 NodeJs
Javascript中With语句用法实例
2015/05/14 Javascript
jQuery插件实现图片轮播特效
2016/06/16 Javascript
jquery弹出框插件jquery.ui.dialog用法分析
2016/08/20 Javascript
微信小程序开发(二)图片上传+服务端接收详解
2017/01/11 Javascript
javascript实现Java中的Map对象功能的实例详解
2017/08/21 Javascript
BootStrap给table表格的每一行添加一个按钮事件
2017/09/07 Javascript
基于Vue中点击组件外关闭组件的实现方法
2018/03/06 Javascript
jQuery ajax仿Google自动提示SearchSuggess功能示例
2019/03/28 jQuery
[02:20]DOTA2中文配音宣传片
2013/05/22 DOTA
[04:03][TI9趣味短片] 小鸽子茶话会
2019/08/20 DOTA
python使用turtle绘制分形树
2018/06/22 Python
python实现将汉字保存成文本的方法
2018/11/16 Python
python+openCV调用摄像头拍摄和处理图片的实现
2019/08/06 Python
tensorflow 限制显存大小的实现
2020/02/03 Python
社区党员先进事迹
2014/01/22 职场文书
前台文员职责范本
2014/03/07 职场文书
信息管理与信息系统专业求职信
2014/06/21 职场文书
教师党员整改措施
2014/10/24 职场文书
使用python求解迷宫问题的三种实现方法
2022/03/17 Python