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版的文曲星猜数字游戏代码
Sep 02 Python
python基础教程之获取本机ip数据包示例
Feb 10 Python
python获取从命令行输入数字的方法
Apr 29 Python
python 连接sqlite及简单操作
Jun 30 Python
Python tkinter模块中类继承的三种方式分析
Aug 08 Python
Python基础语言学习笔记总结(精华)
Nov 14 Python
深入浅析python with语句简介
Apr 11 Python
Python3.5实现的罗马数字转换成整数功能示例
Feb 25 Python
Python 实现数据结构-循环队列的操作方法
Jul 17 Python
解决python 上传图片限制格式问题
Oct 30 Python
Python3标准库之threading进程中管理并发操作方法
Mar 30 Python
什么是python的必选参数
Jun 21 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编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
2017/07/31 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
Jquery 实现Tab效果 思路是js思路
2010/03/02 Javascript
jQuery EasyUI API 中文文档 - ComboBox组合框
2011/10/07 Javascript
javascript实现促销倒计时+fixed固定在底部
2013/09/18 Javascript
给文字加上着重号的JS代码
2013/11/12 Javascript
javascript操作excel生成报表全攻略
2014/05/04 Javascript
jquery根据属性和index来查找属性值并操作
2014/07/25 Javascript
javascript实现滚动效果的数字时钟实例
2016/07/21 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
2016/09/06 Javascript
使用 bootstrap modal遇到的问题小结
2016/11/09 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
vue页面使用阿里oss上传功能的实例(二)
2017/08/09 Javascript
详解redux异步操作实践
2018/08/15 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
Python的Flask框架中实现简单的登录功能的教程
2015/04/20 Python
Python读取图片为16进制表示简单代码
2018/01/19 Python
python实现接口并发测试脚本
2019/06/25 Python
解决python中导入win32com.client出错的问题
2019/07/26 Python
Python 元组拆包示例(Tuple Unpacking)
2019/12/24 Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
2020/01/13 Python
python编写俄罗斯方块
2020/03/13 Python
JupyterNotebook 输出窗口的显示效果调整方法
2020/04/13 Python
keras实现theano和tensorflow训练的模型相互转换
2020/06/19 Python
HTML5 拖放(Drag 和 Drop)详解与实例代码
2017/09/14 HTML / CSS
html5清空画布方法(三种)
2017/10/16 HTML / CSS
大学生文员专业个人求职信范文
2014/01/05 职场文书
根叔历年演讲稿
2014/05/20 职场文书
机械加工与数控专业自荐书
2014/06/04 职场文书
亚运会口号
2014/06/20 职场文书
详细的本科生职业生涯规划范文
2014/09/16 职场文书
总经理2015中秋节致辞
2015/07/29 职场文书
外出考察学习心得体会
2016/01/18 职场文书
公司会议开幕词
2016/03/03 职场文书
pandas提升计算效率的一些方法汇总
2021/05/30 Python