Python 字节数组方式写入kafka(含报错return ‘<SimpleProducer batch=%s>‘ % self.async)

一、背景

项目开发了一个类似kafka tools查询工具的kafka 查询,现在需要测试一下如果通过字节数组的形式写入,看看查询有没有问题

二、kafka查询代码

Python代码示例:

from kafka import KafkaProducer
import json# 创建Kafka生产者
producer = KafkaProducer(bootstrap_servers='localhost:9092')# 定义JSON数据
json_data = {'name': '测试','age': 30,'email': 'johndoe@example.com'
}# 将JSON数据转换为字符串,并指定ensure_ascii参数为False,以保留非ASCII字符
json_str = json.dumps(json_data, ensure_ascii=False)# 将字符串编码为字节数组
byte_array = json_str.encode('utf-8')# 发送字节数组消息到Kafka主题
producer.send('lqiju_test_json_trans_bytearray_20230703', value=byte_array)# 关闭Kafka生产者连接
producer.close()

Java代码示例:

import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;import java.util.Properties;public class KafkaByteArrayProducer {public static void main(String[] args) {// Kafka配置Properties properties = new Properties();properties.put("bootstrap.servers", "localhost:9092");properties.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");properties.put("value.serializer", "org.apache.kafka.common.serialization.ByteArraySerializer");// 创建KafkaProducer实例KafkaProducer<String, byte[]> producer = new KafkaProducer<>(properties);// 消息数据String topic = "your-topic-name";byte[] messageBytes = "Hello, Kafka!".getBytes();// 创建ProducerRecord对象并发送消息ProducerRecord<String, byte[]> record = new ProducerRecord<>(topic, messageBytes);producer.send(record);// 关闭KafkaProducerproducer.close();}
}

三、解决报错return '<SimpleProducer batch=%s>' % self.async

把上面代码运行,报错

 

因为py3.7里面async已经变成了关键字。导致不兼容。
 
解决办法:
pycharm工具,在执行的脚本右键点击open in terminal:执行pip install kafka-python

或者在settings里面安装

 重新执行,OK

 四、小结

kafka支持存储什么格式的消息?

Kafka支持存储任意格式的消息,它本身并不关心消息的具体格式。Kafka将消息视为字节数组(bytes)的形式进行传输和存储。这意味着你可以以任何你喜欢的方式序列化你的消息,并将其转换为字节数组进行发送到Kafka。

常见的消息格式包括文本(如JSON、XML、CSV等)、二进制数据、Avro、Protobuf等。你可以根据你的需求和使用场景选择合适的消息格式。

在发送消息时,你需要将消息转换为字节数组,并使用Kafka提供的Producer API将字节数组发送到指定的Topic。在消费消息时,你可以使用相应的Consumer API从Kafka订阅的Topic中接收字节数组,并根据你事先定义的消息格式将其反序列化为可读的格式。

总之,Kafka本身并不限制消息的格式,你可以使用任何你喜欢的格式来存储和传输消息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/7378.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

美好未来“一束光”儿童安全教育项目在四川泸定正式启动

6月26日&#xff0c;由中华少年儿童慈善救助基金会和北京臻爱公益基金会共同发起的美好未来计划“一束光”儿童安全教育公益项目启动仪式&#xff0c;在四川省甘孜藏族自治州泸定县贡嘎山片区寄宿制学校举行。 出席本次启动仪式活动的嘉宾有&#xff1a;中华少年儿童慈善救助基…

【Spring Boot 事务】万字详解Spring Boot 事务,赶快跟随良辰一起去学习Spring Boot 事务吧! ! !

前言: 大家好,我是良辰丫,这篇文章我将带领大家一起去学习Spring Boot 事务文章,我们在学习数据库的时候已经接触过事务了,来跟随我的脚步一起来瞧一下Spring Boot 事务吧.&#x1f48c;&#x1f48c;&#x1f48c; &#x1f9d1;个人主页&#xff1a;良辰针不戳 &#x1f4d6;…

element框架select值更新页面不回显的问题,动态表单props绑定问题

1、页面中使用form表单&#xff0c;引入select组件 当data中默认没有定义form.region的值时&#xff0c;会出现选择select后input没有回显选择数据值&#xff1b;所以使用select时&#xff0c;必须定义默认值 <el-form ref"form" :model"form" label-…

聊一聊人工智能与视频技术的5大发展趋势与应用

随着互联网的快速发展&#xff0c;视频时代已经到来。据统计&#xff0c;目前互联网内容中&#xff0c;视频内容占据高达82%的流量&#xff0c;未来仍将持续增长。今天我们就来聊一聊关于视频技术的发展&#xff0c;以及现在的大热门–人工智能技术与视频技术的结合。 视频技术…

第38节:cesium 风场效果(含源码+视频)

结果示例: 完整源码: <template><div class="viewer"><vc-viewer @ready="ready" :logo="false"><!

CUDA中的缓存

CUDA缓存包括L1缓存和L2缓存。 SM加载数据&#xff0c;根据不同的设备和类型分为三种路径&#xff1a; 一级和二级缓存常量缓存只读缓存 常规的路径是一级和二级缓存&#xff0c;需要使用常量和只读缓存的需要在代码中显式声明。但是提高性能&#xff0c;主要还是要取决于访问…

茶油生产加工MES质量溯源平台源码(spring boot+mybatis+easyui+mysql+h5)

一、生产加工MES&#xff08;Manufacturing Execution System&#xff0c;简称MES&#xff09;是一种面向车间的生产过程管理与实时信息系统。它主要负责监控生产过程&#xff0c;管理生产资源&#xff0c;优化生产流程&#xff0c;提高生产效率和质量。MES系统需要与ERP系统、…

Android TV:自定义Leanback的VideoDetailsFragment

在Android studio新建TV项目的demo上做修改,实现一下需求: 1、去掉顶部背景区域 2、修改中间详情区域高度 3、修改整体背景界面 效果如图: 搜遍全网,没有找到一个解决方案。只能考自己看代码来自定义实现了。 1、去掉顶部背景区域: VideoDetailsFragment中重写setupD…

【Java项目】拉取公司GitLab项目的教程

文章目录 创建Git账号登录Git 创建Git账号 进入公司后&#xff0c;会拿到公司给你注册的邮箱以及密码&#xff0c;你得到用户名和密码之后&#xff0c;需要先创建一个拉取这个仓库对应的git账号。 我们先登录GitLab 当你登录GitLab之后&#xff0c;会显示你还没有ssh key&…

UE4/5数字人Metahuman与Style3D的使用【二、布料模拟】

目录 鼠标点击布料模拟&#xff1a; 让布料模拟可以跟着动画序列&#xff1a; 有穿模情况&#xff1a; 多件衣服替换&#xff1a; 关卡序列中使用缓存&#xff1a; 效果&#xff1a; UE4/5数字人Metahuman与Style3D的使用【一、Style3DAtelier软件制作smd格式衣服并导入ue】…

VMware虚拟机迁移到阿里云

1. 前言 最近公司内部研发部门有几台jenkins build机器运行在VMware平台上面&#xff0c;由于本地VMware平台底层计算资源不足导致虚拟机运行速度特别慢&#xff0c;每次版本发布都要build好久&#xff0c;而且VMware有时候计算资源不足&#xff0c;还会自动给占用资源大的机器…

使用Docker安装mysql8

Docker中安装mysql8 ​ 本文记录时间为2023-07-04&#xff0c;文档内容主要参照mysql官方文档写成。 一、获取mysql镜像 ​ 此处参考mysql官方的文档&#xff0c;从Oracle的镜像库中查找所需的mysql镜像信息&#xff0c;此处选择的是community-server:8.0 # 拉取myssql com…