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 相关文章推荐
Centos5.x下升级python到python2.7版本教程
Feb 14 Python
python判断字符串编码的简单实现方法(使用chardet)
Jul 01 Python
Python 装饰器使用详解
Jul 29 Python
Python Json序列化与反序列化的示例
Jan 31 Python
python3下实现搜狗AI API的代码示例
Apr 10 Python
tensorflow实现加载mnist数据集
Sep 08 Python
python多任务及返回值的处理方法
Jan 22 Python
python中如何使用分步式进程计算详解
Mar 22 Python
Python 元组操作总结
Sep 18 Python
python requests模拟登陆github的实现方法
Dec 26 Python
matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例
Apr 22 Python
python如何调用php文件中的函数详解
Dec 29 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
星际争霸 Starcraft 发展史
2020/03/14 星际争霸
将数组写入txt文件 var_export
2009/04/21 PHP
判断是否为指定长度内字符串的php函数
2010/02/16 PHP
php自动获取字符串编码函数mb_detect_encoding
2011/05/31 PHP
PHP实现限制IP访问及提交次数的方法详解
2017/07/17 PHP
详解PHP 二维数组排序保持键名不变
2019/03/06 PHP
php用户名的密码加密更安全的方法
2019/06/21 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
jQuery学习笔记之jQuery的DOM操作
2010/12/22 Javascript
node中socket.io的事件使用详解
2014/12/15 Javascript
jQuery插件Tmpl的简单使用方法
2015/04/27 Javascript
用jmSlip编写移动端顶部日历选择控件
2016/10/24 Javascript
ajax图片上传,图片异步上传,更新实例
2016/12/30 Javascript
Vue学习之路之登录注册实例代码
2017/07/06 Javascript
JS中offset和匀速动画详解
2018/02/06 Javascript
JavaScript中创建原子的方法总结
2018/08/26 Javascript
使用JavaScript破解web
2018/09/28 Javascript
JS/HTML5游戏常用算法之路径搜索算法 A*寻路算法完整实例
2018/12/14 Javascript
js实现车辆管理系统
2020/08/26 Javascript
[01:00:49]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第二场 1月31日
2021/03/11 DOTA
Python+selenium实现截图图片并保存截取的图片
2018/01/05 Python
python word转pdf代码实例
2019/08/16 Python
python实现逢七拍腿小游戏的思路详解
2020/05/26 Python
CSS3实现的炫酷菜单代码分享
2015/03/12 HTML / CSS
HTML5的表单(绝对特别强大的功能)使用示例
2013/06/20 HTML / CSS
欧洲最大的婴幼儿服装及内衣公司:Petit Bateau(小帆船)
2016/08/16 全球购物
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
物业管理毕业生个人的求职信
2013/11/30 职场文书
财务情况说明书范文
2014/05/06 职场文书
关于感恩的演讲稿800字
2014/08/26 职场文书
司法局群众路线教育实践活动整改措施
2014/09/17 职场文书
兵马俑的导游词
2015/02/02 职场文书
男方家长婚礼答谢词
2015/09/29 职场文书
教师学习心得体会范文
2016/01/21 职场文书
Python虚拟环境virtualenv是如何使用的
2021/06/20 Python
MySQL三种方式实现递归查询
2022/04/18 MySQL