当前位置: 首页 > news >正文

python 自建kafka消息生成和消费小工具

要将 Kafka 的消息生产和消费转换为 API 接口,我们可以使用 Python 的 Web 框架。其中 Flask 是一个轻量级且易于使用的选择。下面是一个简单的例子,使用 Flask 创建 API 来生成和消费 Kafka 消息。

1. 安装所需的库

pip install kafka-python flask

2. 创建 Flask API

from flask import Flask, request, jsonify
from kafka import KafkaProducer, KafkaConsumerapp = Flask(__name__)# 配置 Kafka
KAFKA_BROKER_URL = 'localhost:9092'
TOPIC = 'test_topic'
producer = KafkaProducer(bootstrap_servers=KAFKA_BROKER_URL)@app.route('/send', methods=['POST'])
def send_message():message = request.json.get('message')if message:producer.send(TOPIC, value=message.encode('utf-8'))return jsonify({"status": "success", "message": "Message sent!"}), 200else:return jsonify({"status": "error", "message": "Message cannot be empty!"}), 400@app.route('/receive', methods=['GET'])
def receive_message():consumer = KafkaConsumer(TOPIC, bootstrap_servers=KAFKA_BROKER_URL, auto_offset_reset='earliest')messages = []for message in consumer:messages.append(message.value.decode('utf-8'))if len(messages) > 5:  # 只收集最近的5条消息,可以根据需要调整breakreturn jsonify(messages)if __name__ == '__main__':app.run(debug=True, port=5000)

这个 Flask 应用程序定义了两个端点:

  • /send: 它接受 POST 请求并发送消息到 Kafka。
  • /receive: 它返回 Kafka 主题中的最近消息。

3. 使用 API

  • 发送消息:
curl -X POST http://localhost:5000/send -H "Content-Type: application/json" -d '{"message": "Hello, Kafka!"}'
  • 接收消息:
curl http://localhost:5000/receive

这只是一个简单的示例,您可能需要添加错误处理、日志记录、认证、消息序列化和反序列化等功能,以满足更复杂的需求。

相关文章:

python 自建kafka消息生成和消费小工具

要将 Kafka 的消息生产和消费转换为 API 接口,我们可以使用 Python 的 Web 框架。其中 Flask 是一个轻量级且易于使用的选择。下面是一个简单的例子,使用 Flask 创建 API 来生成和消费 Kafka 消息。 1. 安装所需的库: pip install kafka-py…...

Prim算法:经过图中所有节点的最短路径

题目链接&#xff1a;53. 寻宝&#xff08;第七期模拟笔试&#xff09; #include<bits/stdc.h> using namespace std;// v为节点数量&#xff0c;e为边数量 int v, e;// 最小生成树 void prim(vector<vector<int>>& adj) {vector<int> dist(v1, I…...

Linux 信号捕捉函数 signal sigaction

signal函数 #include <signal.h> typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler); 功能&#xff1a;设置某个信号的捕捉行为 参数&#xff1a; -signum&#xff1a;要捕捉的信号 handler&#xff1a;对捕捉到的信号怎么处理…...

StarRocks操作笔记

最近在使用starRocks&#xff0c;记录一些临时的操作技巧&#xff0c;防止遗忘。 1. 创建表 CREATE TABLE IF NOT EXISTS ODS.T_TEST( pk_day date, pool_address string, code string comment 唯一主键, test1 string, test2 string, test3 string, pk_year varchar(4), pk_m…...

Linux的ls -ld命令产生的信息怎么看

2023年9月24日&#xff0c;周日上午 目录 ls -ld列出的目录或文件的信息含义文件硬链接什么是文件硬链接为什么新建目录的文件硬链接为2举例说明例一例二例三 ls -ld列出的目录或文件的信息含义 第一个字符表示文件类型: d: 目录 -: 普通文件 l: 软链接 b: 块设备文件 c:…...

Linux- 内存映射文件(Memory-Mapped File)

内存映射文件&#xff08;Memory-Mapped File&#xff09;是⼀种将文件内容映射到内存中的机制&#xff0c;允许程序直接访问文件数据&#xff0c;就好像这些数据已经被加载到了内存⼀样。这个机制允许文件的内容被映射到⼀个进程的地址空间&#xff0c;从而允许程序以⼀种更高…...

李航老师《统计学习方法》第五章阅读笔记

决策树&#xff08;decision tree&#xff09;是一种基本的分类与回归方法。本章主要讨论用于分类的决策树。决策树模型呈树形结构&#xff0c;在分类问题中&#xff0c;表示基于特征对实例进行分类的过程。 以下是关于分类决策树的一些基本概念和特点&#xff1a; 树形结构&am…...

iOS16新特性:实时活动-在锁屏界面实时更新APP消息 | 京东云技术团队

简介 之前在 《iOS16新特性:灵动岛适配开发与到家业务场景结合的探索实践》 里介绍了iOS16新的特性&#xff1a;实时更新&#xff08;Live Activity&#xff09;中灵动岛的适配流程&#xff0c;但其实除了灵动岛的展示样式&#xff0c;Live Activity还有一种非常实用的应用场景…...

使用 Elasticsearch、OpenAI 和 LangChain 进行语义搜索

在本教程中&#xff0c;我将引导您使用 Elasticsearch、OpenAI、LangChain 和 FastAPI 构建语义搜索服务。 LangChain 是这个领域的新酷孩子。 它是一个旨在帮助你与大型语言模型 (LLM) 交互的库。 LangChain 简化了与 LLMs 相关的许多日常任务&#xff0c;例如从文档中提取文本…...

NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061

今天发现,有两个处理器,启动以后,数据流不过去,后来,锁定问题在,queue队列上面,因为别的队列都可以通过,右键,empty queue清空,就是 这个队列不行,这个队列无法被删除,至于为什么导致这样的, 猜测是因为之前,流程设计好以后,队列没有设置背压,也没有设置队列中的内容大小和fl…...

leetcode20. 有效的括号 [简单题]

题目 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型…...

ubuntu20.04下源码编译colmap

由于稠密重建需要CUDA&#xff0c;因此先安装CUDA&#xff0c;我使用的是3050GPU&#xff0c;nvidia-smi显示最高支持CUDA11.4。 不要用sudo apt安装&#xff0c;版本较低&#xff0c;30系显卡建议安装CUDA11.0以上&#xff0c;这里安装了11.1版本。 下载&#xff1a; cuda_1…...

Jumpserver堡垒机

一、堡垒机概述 1、堡垒机的基本概念 堡垒机也是一台服务器&#xff0c;在一个特定的网络环境下&#xff0c;为了保障网络和数据不受来自外部和内部用户的入侵和破坏&#xff0c;而运用各种技术手段实时收集、监控网络环境中每一个组成部分&#xff08;服务器&#xff09;的系…...

第一百五十三回 如何实现滑动窗口

文章目录 概念介绍实现方法示例代码 我们在上一章回中介绍了自定义组件实现游戏摇杆相关的内容&#xff0c;本章回中将介绍 如何实现滑动窗口.闲话休提&#xff0c;让我们一起Talk Flutter吧。 概念介绍 我们在本章回中介绍的滑动窗口表示在屏幕底部向上滑动时弹出一个窗口&a…...

Oracle 12c自动化管理特性的新进展:自动备份、自动恢复和自动维护功能的优势|oracle 12c相对oralce 11g的新特性(3)

一、前言: 前面几期讲解了oracle 12c多租户的使用、In-Memory列存储来提高查询性能以及数据库的克隆、全局数据字典和共享数据库资源的使用 今天我们讲讲oracle 12c的另外的一个自动化管理功能新特性:自动备份、自动恢复、自动维护的功能 二、自动备份、自动恢复、自动维护…...

Redis——Jedis中hash类型使用

hset 和 hget hset可以逐一添加key和value&#xff0c;也可以通过map类型来直接添加多组fields 而hget则返回string类型&#xff0c;如果元素不存在则返回null private static void hsetAndHget(Jedis jedis) {jedis.flushAll();jedis.hset("key", "f1"…...

肖sir__项目实战讲解__004

项目实战讲解 一、项目的类型 金融类&#xff1a; 保险(健康险理财险)、证券、基金(股票型基金、混合型基金、指数型基金、债券型基金、 天天基金网&#xff08;ETF基金、货币型基金、量化基金)、银行、贷款、信用卡、外汇、二元期权、期货原油、blockchain、 数字货币、黄金白…...

数据库数据恢复-ORACLE常见故障有哪些?恢复数据的可能性高吗?

ORACLE数据库常见故障&#xff1a; 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE数据库ASM存储破坏。 3、ORACLE数据库数据文件丢失。 4、ORACLE数据库数据文件部分损坏。 5、ORACLE数据库DUMP文件损坏。 ORACLE数据库数据恢复可能性分析&#xff1a; 1、ORACLE数据库无…...

合规性管理如何帮助产品团队按时交付?

成功的产品和产品发布背后通常需要经过一个涉及多个监督机构、多功能团队和利益相关者的复杂流程。在组织的治理、风险管理和合规性&#xff08;GRC&#xff09;框架下&#xff0c;产品团队不仅需要追求市场创新&#xff0c;还需要确保符合所有适用的法规、标准和合同要求。由于…...

从平均数到排名算法

平均数用更少的数字&#xff0c;概括一组数字。属于概述统计量、集中趋势测度、位置测度。中位数是第二常见的概述统计量。许多情况下比均值更合适。算术平均数是3中毕达哥拉斯平均数之一&#xff0c;另外两种毕达哥拉斯平均数是几何平均数和调和平均数。 算术平均 A M 1 n ∑…...

终极鸣潮自动化工具指南:3步实现智能后台战斗与资源收集

终极鸣潮自动化工具指南&#xff1a;3步实现智能后台战斗与资源收集 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸 一键日常 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves ok-ww是一款基…...

python py2exe

# 把Python脚本变成Windows可执行文件&#xff1a;聊聊py2exe 如果你写过一些Python脚本&#xff0c;可能会遇到这样的场景&#xff1a;写了个挺实用的小工具&#xff0c;想分享给同事或朋友用&#xff0c;但他们电脑上可能没装Python环境。这时候就需要把.py文件变成.exe可执行…...

别再混淆了!用Android AudioRecord.getMinBufferSize()源码,彻底搞懂音频帧、周期和缓冲区

从源码透视Android音频开发&#xff1a;帧、周期与缓冲区的实战解析 在移动音频开发领域&#xff0c;Android平台的AudioRecord API是构建录音功能的核心工具。许多开发者虽然能够调用getMinBufferSize()方法获取缓冲区大小&#xff0c;但当遇到音频卡顿、杂音或延迟问题时&…...

饲草打包机的设计及其三维造型【农业机械】(论文+5张cad图纸+solidworks三维+动画+答辩】

饲草打包机作为农业机械化作业的关键设备&#xff0c;其设计需兼顾效率、可靠性与操作便捷性。传统饲草处理依赖人工捆扎&#xff0c;不仅劳动强度大&#xff0c;且打包质量参差不齐&#xff0c;易受天气影响导致饲草霉变。针对这一痛点&#xff0c;新型饲草打包机通过优化机械…...

Z-Image-Turbo-辉夜巫女应用:快速生成动漫角色,打造个人风格画师

Z-Image-Turbo-辉夜巫女应用&#xff1a;快速生成动漫角色&#xff0c;打造个人风格画师 1. 项目介绍与核心功能 1.1 什么是Z-Image-Turbo-辉夜巫女&#xff1f; Z-Image-Turbo-辉夜巫女是一款基于阿里巴巴通义实验室Z-Image-Turbo模型的图像生成工具&#xff0c;专门针对动…...

避坑指南:Ecology9流程创建失败的7个常见错误及解决方案(附调试技巧)

Ecology9流程创建失败的7个典型陷阱与深度解决方案 1. 权限配置&#xff1a;被忽视的系统级限制 权限问题往往是流程创建失败的首要原因。许多实施顾问只关注表面错误提示&#xff0c;却忽略了系统底层的权限体系设计。Ecology9的权限控制分为三个层级&#xff1a; 组织架构权限…...

异步编程中的重试策略:backoff与asyncio完美结合

异步编程中的重试策略&#xff1a;backoff与asyncio完美结合 【免费下载链接】backoff Python library providing function decorators for configurable backoff and retry 项目地址: https://gitcode.com/gh_mirrors/bac/backoff 在现代Python异步编程中&#xff0c;处…...

VS Code官宣:全面支持Rust!

当"宇宙第一编辑器"遇上"内存安全的叛逆少年"&#xff0c;这场联姻比想象中更甜&#xff5e;最近微软悄悄放了个大招&#xff1a;VSCode 要深度集成 rust-analyzer 了&#xff01; &#x1f389; 什么意思呢&#xff1f;以前你用 VSCode 写 Rust&#xff0…...

第一部分:模型很强,但为什么还是干不好活?

一个真实的失败现场 2025年,某创业公司的技术负责人李明遇到了一件让他困惑的事。 他订阅了 Claude Pro,GPT-4o 的 API key 也有,SWE-bench 排行榜上的数字他比谁都清楚——最强的 coding agent 在 Verified 数据集上已经能拿到 50-60% 的通过率。他觉得时机成熟了,可以放…...

智慧机场三维空间智能中枢系统白皮书——构建“全域感知 × 空间认知 × 智能调度”的下一代机场操作平台

智慧机场三维空间智能中枢系统白皮书——构建“全域感知 空间认知 智能调度”的下一代机场操作平台&#xff08;镜像视界&#xff08;浙江&#xff09;科技有限公司空间计算技术体系支撑&#xff09;一、项目背景&#xff1a;机场正在进入“复杂系统时代”现代机场已从单一交…...