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 相关文章推荐
pyqt4教程之实现半透明的天气预报界面示例
Mar 02 Python
黑科技 Python脚本帮你找出微信上删除你好友的人
Jan 07 Python
用pickle存储Python的原生对象方法
Apr 28 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
May 17 Python
Python3使用turtle绘制超立方体图形示例
Jun 19 Python
python 画三维图像 曲面图和散点图的示例
Dec 29 Python
python爬虫实现中英翻译词典
Jun 25 Python
numpy和pandas中数组的合并、拉直和重塑实例
Jun 28 Python
python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码
Jul 31 Python
在脚本中单独使用django的ORM模型详解
Apr 01 Python
python 实现弹球游戏的示例代码
Nov 17 Python
Python 中random 库的详细使用
Jun 03 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+MSSQL分页的例子
2006/10/09 PHP
PHP中的日期及时间
2006/11/23 PHP
解析php通过cookies获取远程网页的指定代码
2013/06/25 PHP
使用PHPCMS搭建wap手机网站
2015/09/20 PHP
Zend Framework基本页面布局分析
2016/03/19 PHP
PHP基于SMTP协议实现邮件发送实例代码
2017/04/27 PHP
详解php中curl返回false的解决办法
2019/03/18 PHP
你真的了解JavaScript吗?
2007/02/24 Javascript
Juqery Html(),append()等方法的Bug解决方法
2010/12/13 Javascript
JS实现固定在右下角可展开收缩DIV层的方法
2015/02/13 Javascript
javascript实现根据iphone屏幕方向调用不同样式表的方法
2015/07/13 Javascript
JavaScript常用标签和方法总结
2015/09/01 Javascript
jQuery事件绑定用法详解
2016/09/08 Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
2017/06/12 Javascript
JS中Swiper的使用和轮播图效果
2017/08/11 Javascript
vue todo-list组件发布到npm上的方法
2018/04/04 Javascript
vue源码学习之Object.defineProperty对象属性监听
2018/05/30 Javascript
小程序视频或音频自定义可拖拽进度条的示例代码
2018/09/30 Javascript
JS实现点击li标签弹出对应的索引功能【案例】
2019/02/18 Javascript
js实现无缝轮播图插件封装
2020/07/31 Javascript
Python3使用requests包抓取并保存网页源码的方法
2016/03/15 Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
2017/07/10 Python
Python多进程库multiprocessing中进程池Pool类的使用详解
2017/11/24 Python
python去重,一个由dict组成的list的去重示例
2019/01/21 Python
Django密码系统实现过程详解
2019/07/19 Python
python jenkins 打包构建代码的示例代码
2019/11/29 Python
python使用openpyxl操作excel的方法步骤
2020/05/28 Python
实现Python3数组旋转的3种算法实例
2020/09/16 Python
python中封包建立过程实例
2021/02/18 Python
HTML5 用动画的表现形式装载图像
2016/03/08 HTML / CSS
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
西班牙三叶草药房:Farmacias Trébol
2019/05/03 全球购物
医药营销个人求职信
2014/04/12 职场文书
商场客服专员岗位职责
2014/06/13 职场文书
王金山在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
毕业典礼致辞
2015/07/29 职场文书