tornado使用confluent_kafka之消费者无法进入循环

博客讨论了在Tornado异步框架中使用Confluent_Kafka时遇到的问题。由于Kafka消费者需要持续轮询,这与Tornado的事件驱动机制存在冲突。作者通过在主程序中使用线程解决这个问题,但发现问题源于Tornado的协程导致的异步请求。将AsyncHTTPClient替换为requests的同步请求后,问题得到解决,但未深入理解其原理。寻求对此有理解的人分享知识。

tornado作为一个异步框架与confluent_kafka似乎并不是很匹配,具体见https://github.com/confluentinc/confluent-kafka-python/issues/100,对于性能要求不高的应用还是可以用下。
tornado是基于事件机制的,kafka消费者需要不断的轮询管道,我在主程序中使用threading包单独给kafka开了一个线程,发现这个后台线程可以正常启动进入函数,但是无法进入消费者的轮询代码,最终经过试错发现轮询代码中使用了tornado的一个协程,即AsyncHTTPClient的一个异步请求导致的,将该函数改成requests包的同步请求,问题解决但并没搞清其中原理。

PS:如果有看到这篇文章,并理解其中原理的请不吝惕教,在此谢过啦☺☺☺

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值