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 相关文章推荐
django实现分页的方法
May 26 Python
将Python代码嵌入C++程序进行编写的实例
Jul 31 Python
Python算法应用实战之队列详解
Feb 04 Python
Python引用类型和值类型的区别与使用解析
Oct 17 Python
django传值给模板, 再用JS接收并进行操作的实例
May 28 Python
Windows下将Python文件打包成.EXE可执行文件的方法
Aug 03 Python
python3实现多线程聊天室
Dec 12 Python
Python实现的银行系统模拟程序完整案例
Apr 12 Python
Python3标准库之threading进程中管理并发操作方法
Mar 30 Python
keras slice layer 层实现方式
Jun 11 Python
python 爬虫如何正确的使用cookie
Oct 27 Python
python微信智能AI机器人实现多种支付方式
Apr 12 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  单例模式详细介绍及实现源码
2016/11/05 PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
2019/06/03 PHP
[原创]网络复制内容时常用的正则+editplus
2006/11/30 Javascript
JavaScript基本编码模式小结
2012/05/23 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
使用jquery菜单插件HoverTree仿京东无限级菜单
2014/12/18 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
分享有关jQuery中animate、slide、fade等动画的连续触发、滞后反复执行的bug
2016/01/10 Javascript
javascript禁止超链接跳转的方法
2016/02/02 Javascript
Extjs4.0 ComboBox如何实现三级联动
2016/05/11 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
JavaScript基于面向对象实现的猜拳游戏
2018/01/03 Javascript
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
2018/07/24 Javascript
angularJs在多个控制器中共享服务数据的方法
2018/09/30 Javascript
vue + typescript + 极验登录验证的实现方法
2019/06/27 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
p5.js临摹动态图形实现方法详解
2019/10/23 Javascript
关于在LayUI中使用AJAX提交巨坑记录
2019/10/25 Javascript
vue实现购物车列表
2020/06/30 Javascript
React冒泡和阻止冒泡的应用详解
2020/08/18 Javascript
跟老齐学Python之大话题小函数(1)
2014/10/10 Python
Python下的twisted框架入门指引
2015/04/15 Python
Python多层嵌套list的递归处理方法(推荐)
2016/06/08 Python
python 统计代码行数简单实例
2017/05/04 Python
python解析html提取数据,并生成word文档实例解析
2018/01/22 Python
详解Django+Uwsgi+Nginx的生产环境部署
2018/06/25 Python
Python常见内置高效率函数用法示例
2018/07/31 Python
canvas画图被放大且模糊的解决方法
2020/08/11 HTML / CSS
吉列剃须刀美国官网:Gillette美国
2018/07/13 全球购物
马来西亚在线健康商店:Medipal Malaysia
2020/04/13 全球购物
《理想》教学反思
2014/02/17 职场文书
小学教师培训方案
2014/06/09 职场文书
小学中队活动总结
2015/05/11 职场文书
详解CSS伪元素的妙用单标签之美
2021/05/25 HTML / CSS
解决mysql模糊查询索引失效问题的几种方法
2021/06/18 MySQL
微软发布Windows 11今年最大更新22H2(附 ISO 镜像官方下载)
2022/09/23 数码科技