python连接kafka消费者_python – 作为实时kafka消费者的Flask API

我想构建一个使用Flask框架开发的

python API,它使用Kafka主题并将流推送到客户端(html页面或其他应用程序).

我尝试使用虚拟数据生成实时流程(请参阅下面的实时路线).发生的问题是结果变量仅在循环结束后被推送,而结果变量应该在每次迭代时被推送.

我还尝试使用Kafka连接生成实时流(请参阅下面的kafka路线).问题是没有返回数据,而是请求没有完成.

from flask import Response, Flask

import time

from kafka import KafkaConsumer

application = Flask(__name__)

@application.route('/')

def index():

return "Hello, World!"

@application.route('/realtime/')

def realtime():

def createGenerator():

for i in range(1,10):

yield str(i) + '\n'

time.sleep(0.2)

return Response(createGenerator())

@application.route('/kafka/')

def kafkaStream():

consumer = KafkaConsumer(bootstrap_servers = 'serverlocation',

client_id = 'name of client',

auto_offset_reset = 'earliest',

value_deserializer = lambda m: json.loads(m.decode('ascii')))

consumer.subscribe(topics=['my-topic'])

def events():

result = []

for message in consumer:

if message is not None:

result.append(message.value)

yield result

return Response(events())

if __name__ == '__main__':

application.run(debug = True)

到目前为止,我有效地从Kafka接收数据的唯一方法是在控制台中打印结果.

from kafka import KafkaConsumer

consumer = KafkaConsumer(bootstrap_servers = 'serverlocation',

client_id = 'name of client',

auto_offset_reset = 'earliest',

value_deserializer = lambda m: json.loads(m.decode('ascii')))

consumer.subscribe(topics=['my-topic'])

for message in consumer:

print message

我认为问题是API在进程完成之前无法推送数据,并且因为KafkaConsumer连接是无限的,所以没有任何东西被推送到客户端.

我怎样才能克服这个问题?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一些关于基于KafkaFlask实时数据处理的参考文献: 1. "Kafka: The Definitive Guide" by Neha Narkhede, Gwen Shapira, and Todd Palino: 这本书是关于Apache Kafka的权威指南,涵盖了Kafka的原理、架构和使用方法。它也包含了关于如何使用Kafka进行实时数据处理的内容。 2. "Apache Kafka Cookbook" by Saurabh Minni: 这本书提供了一系列使用Apache Kafka的实际场景和解决方案。它包含了关于如何使用Kafka进行流式数据处理和实时数据处理的示例和案例。 3. "Flask Web Development with Python Tutorial" by Corey Schafer: 这是一个针对FlaskPython Web开发教程,涵盖了Flask框架的基础知识和实践。它可以作为学习如何使用Flask构建实时数据处理应用程序的参考。 4. "Real-Time Analytics: Techniques to Analyze and Visualize Streaming Data" by Byron Ellis: 这本书介绍了实时分析的概念、技术和实践。它包含了关于如何使用流式数据处理平台(如Kafka)和实时分析工具来处理和分析实时数据的内容。 5. "Building Data Streaming Applications with Apache Kafka" by Manish Kumar and Chanchal Singh: 这本书提供了使用Apache Kafka构建数据流应用程序的指南。它包含了关于如何使用Kafka Streams和Flask等工具进行实时数据处理的示例和实践。 这些参考文献将帮助您深入了解KafkaFlask实时数据处理能力,并提供实际的指导和示例代码来帮助您构建自己的实时数据处理应用程序。请根据您的具体需求选择适合的参考文献进行学习和实践。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值