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脚本实现数据导出excel格式的简单方法(推荐)
Dec 30 Python
selenium+python 去除启动的黑色cmd窗口方法
May 22 Python
在Python中增加和插入元素的示例
Nov 01 Python
PYTHON EVAL的用法及注意事项解析
Sep 06 Python
如何基于Python获取图片的物理尺寸
Nov 25 Python
python绘制雪景图
Dec 16 Python
django中url映射规则和服务端响应顺序的实现
Apr 02 Python
解决python DataFrame 打印结果不换行问题
Apr 09 Python
python 爬取免费简历模板网站的示例
Sep 27 Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
Dec 07 Python
python读取excel数据并且画图的实现示例
Feb 08 Python
通过Python把学姐照片做成拼图游戏
Feb 15 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读取配置文件类实例(可读取ini,yaml,xml等)
2015/07/28 PHP
PHP防盗链的基本思想 防盗链的设置方法
2015/09/25 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
2016/01/09 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
把html页面的部分内容保存成新的html文件的jquery代码
2009/11/12 Javascript
javascript同页面多次调用弹出层具体实例代码
2013/08/16 Javascript
Js保留小数点的4种效果实现代码分享
2014/04/12 Javascript
js父窗口关闭时子窗口随之关闭完美解决方案
2014/04/29 Javascript
javascript常用经典算法详解
2017/01/11 Javascript
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
2018/12/03 Javascript
js中数组常用方法总结(推荐)
2019/04/09 Javascript
微信小程序webview与h5通过postMessage实现实时通讯的实现
2019/08/20 Javascript
微信小程序 简易计算器实现代码实例
2019/09/02 Javascript
使用 js 简单的实现 bind、call 、aplly代码实例
2019/09/07 Javascript
JS写滑稽笑脸运动效果
2020/05/28 Javascript
vue实现页面切换滑动效果
2020/06/29 Javascript
谈谈node.js中的模块系统
2020/09/01 Javascript
vue-router 按需加载 component: () => import() 报错的解决
2020/09/22 Javascript
[01:08]2014DOTA2展望TI 剑指西雅图LGD战队专访
2014/06/30 DOTA
[01:32]DOTA2次级联赛——首支职业女子战队选拔赛全记录
2014/10/23 DOTA
[01:03:37]Secret vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
Python实现TCP协议下的端口映射功能的脚本程序示例
2016/06/14 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
2020/06/23 Python
PyTorch上搭建简单神经网络实现回归和分类的示例
2018/04/28 Python
Python中new方法的详解
2019/01/15 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
2019/08/09 Python
python双端队列原理、实现与使用方法分析
2019/11/27 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
2020/02/07 Python
谈谈python垃圾回收机制
2020/09/27 Python
AmazeUI 等分网格的实现示例
2020/08/25 HTML / CSS
Linux中如何用命令创建目录
2016/12/02 面试题
小学生安全演讲稿
2014/04/25 职场文书
公司经理任命书
2014/06/05 职场文书
教育读书笔记
2015/07/02 职场文书
HTML中link标签属性的具体用法
2023/05/07 HTML / CSS