# https://github.com/confluentinc/confluent-kafka-python/blob/master/examples/consumer.py
#生产者
import json
from kafka import KafkaProducer
from confluent_kafka import Producer msg_dict = {
"interval": 10,
"producer": {
"name": "producer 1",
"host": "10.10.10.1",
"user": "root",
"password": "root"
},
"cpu": "33.5%",
"mem": "77%",
"msg": "Hello kafka",
"data": "测试",
} def test():
producer = KafkaProducer(bootstrap_servers='127.0.0.1:9092') # 连接kafka msg = "Hello World".encode('utf-8') # 发送内容,必须是bytes类型 # msg = {"data": 1}
# producer.send('mytopic', json.dumps(msg_dict).encode("utf-8")) # 发送的topic为test
producer.send('mytopic', json.dumps(msg_dict)) # 发送的topic为test
producer.close() # p = Producer({'bootstrap.servers': 'mybroker1,mybroker2'})
p = Producer({'bootstrap.servers': '127.0.0.1:9092,mybroker2'}) def delivery_report(err, msg):
""" Called once for each message produced to indicate delivery result.
Triggered by poll() or flush(). """
if err is not None:
print('Message delivery failed: {}'.format(err))
else:
print('Message delivered to {} [{}]'.format(msg.topic(), msg.partition())) # some_data_source = [str(i) + "*" for i in range(100)]
some_data_source = [json.dumps(msg_dict) for i in range(5)]
for data in some_data_source:
# Trigger any available delivery report callbacks from previous produce() calls
p.poll(0.1)
# 异步通信 triggered(触发) delivered(递送)
# Asynchronously produce a message, the delivery report callback
# will be triggered from poll() above, or flush() below, when the message has
# been successfully delivered or failed permanently.
p.produce('mytopic', data.encode('utf-8'), callback=delivery_report) # Wait for any outstanding messages to be delivered and delivery report
# callbacks to be triggered. 等待任何未完成的消息被传递,并触发传递报告回调。
p.flush() if __name__ == '__main__':
# test()
pass # 消费者 import json
from kafka import KafkaConsumer
from confluent_kafka.avro import AvroProducer, AvroConsumer
from confluent_kafka import Consumer, KafkaError def one():
consumer = KafkaConsumer('mytopic', bootstrap_servers=['127.0.0.1:9092'])
for msg in consumer:
# print(type(msg.value))
# print(str(msg.value, encoding="utf8"))
print(msg.value.decode())
recv = "%s:%d:%d: key=%s value=%s" % (msg.topic, msg.partition, msg.offset, msg.key, msg.value.decode("utf-8"))
print("...")
print(recv) bootstrap_servers = '127.0.0.1:9092,xxx' def two():
client = AvroProducer({
'bootstrap.servers': bootstrap_servers,
'schema.registry.url': "",
})
value = {"test": "value"}
key = {"test": "key"}
client.produce(topic="mytopic", value=value, key=key)
client.flush() def three():
c = Consumer({
# 'bootstrap.servers': 'mybroker',
'bootstrap.servers': bootstrap_servers,
'group.id': 'mygroup2',
'auto.offset.reset': 'earliest'
}) c.subscribe(['mytopic']) while True:
msg = c.poll(1.0) if msg is None:
continue
if msg.error():
print("Consumer error: {}".format(msg.error()))
continue
print(type(msg.value()))
print(msg.value())
print(json.loads(msg.value().decode('utf-8')))
print('Received message: {}'.format(msg.value().decode('utf-8'))) c.close() if __name__ == '__main__':
# one()
# two()
three()

py kafka的更多相关文章

  1. Storm sql 简单测试

    准备工作: 1.安装Kafka,启动,以及创建相应的topic 1.启动kafka bin/kafka-server-start.sh config/server.properties > /d ...

  2. [Spark] 07 - Spark Streaming Programming

    Streaming programming 一.编程套路 编写Streaming程序的套路 创建DStream,也就定义了输入源. 对DStream进行一些 “转换操作” 和 "输出操作&q ...

  3. kafka Py客户端

    1.pip install kafka-python 2.Producer.py from kafka import KafkaProducer producer = KafkaProducer(bo ...

  4. Ambari 不能配置 Kafka 监听host的问题

    问题:Ambari下Kafka多IP监听配置 环境:Ambari 1.7.0 , Hadoop 2.2 Kafka 0.8.1.2.2.0.0 现象: Ambari 中是不能配置Kafka的host. ...

  5. flume+kafka+smart数据接入实施手册

    1.  概述 本手册主要介绍了,一个将传统数据接入到Hadoop集群的数据接入方案和实施方法.供数据接入和集群运维人员参考. 1.1.   整体方案 Flume作为日志收集工具,监控一个文件目录或者一 ...

  6. 检测zookeeper和kafka是否正常

    cd $(dirname $) source ~/.bash_profile count_zoo=`ps -ef | grep "config/zookeeper.properties&qu ...

  7. kafka学习(四)-Topic & Partition

    topic中partition存储分布 Topic在逻辑上可以被认为是一个queue.每条消费都必须指定它的topic,可以简单理解为必须指明把这条消息放进哪个queue里.为了使得 Kafka的吞吐 ...

  8. 使用spark-streaming实时读取Kafka数据统计结果存入MySQL

    在这篇文章里,我们模拟了一个场景,实时分析订单数据,统计实时收益. 场景模拟 我试图覆盖工程上最为常用的一个场景: 1)首先,向Kafka里实时的写入订单数据,JSON格式,包含订单ID-订单类型-订 ...

  9. 生产环境一键创建kafka集群

    前段时间公司的一个kafka集群出现了故障,由于之前准备不足,当时处理的比较慌乱.如:由于kafka的集群里topic数量较多,并且每个topic的分区数量和副本数量都不是一样的,如果按部就班的一个一 ...

随机推荐

  1. 【spark 算子案例】

    package spark_example01; import java.io.File; import java.io.FileWriter; import java.io.IOException; ...

  2. train loss和test loss

    train loss 不断下降,test loss不断下降,说明网络仍在学习;(最好的)train loss 不断下降,test loss趋于不变,说明网络过拟合;(max pool或者正则化)tra ...

  3. 阿里云 -- Go module 代理 镜像

    简介 go module公共代理仓库,代理并缓存go模块.你可以利用该代理来避免DNS污染导致的模块拉取缓慢或失败的问题,加速你的构建 地址 https://mirrors.aliyun.com/go ...

  4. Java-编程规范与代码风格

    阿里巴巴 Java 开发手册 https://github.com/alibaba/p3c https://developer.aliyun.com/special/tech-java 唯品会规范 J ...

  5. Linux | Vim使用

    Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主 ...

  6. vue 实现返回上一页不请求数据keep-alive

    常规操作: 我们通常会将通过接口请求数据的方法放在==created== 或者 ==mounted==这两个生命周期中的一个里面调用. 但是我们知道,不管是我们刚进入这个页面还是从其他页面返回这个页面 ...

  7. VS2015 osgEarth 编译

    E:\OpenSourceGraph\CURL_install\includeE:\GDAL\includeE:\Geos\geos_3_5_install\includeE:\OpenSourceG ...

  8. question——缓存清理、更新

    突然理解了各大电信公司客服说的最多的一句话“您提交的申请将会在**小时之后生效,建议您到时登陆查看”. 分析之后,我认为这里面大多的原因在于: 1.定时任务: 2.缓存有效期. 可见这么庞大的公司,目 ...

  9. 源码安装LNMP

    需要准备的安装包以及下载地址(只是一个大概地址,版本和下载方式需要自行选择): Nginx http://nginx.org/en/download.html nginx主程序包 MySQL http ...

  10. 【c# 学习笔记】构造函数

    构造函数 主要用于创建类的实例对象.当调用构造函数创建一个对象时,构造函数会为对象分配内存空间,并初始化类的成员.构造函数分为实例构造函数和静态构造函数两种. 1.实例构造函数 实例构造函数用于创建和 ...