tornado作为一个异步框架与confluent_kafka似乎并不是很匹配,具体见https://github.com/confluentinc/confluent-kafka-python/issues/100,对于性能要求不高的应用还是可以用下。
tornado是基于事件机制的,kafka消费者需要不断的轮询管道,我在主程序中使用threading包单独给kafka开了一个线程,发现这个后台线程可以正常启动进入函数,但是无法进入消费者的轮询代码,最终经过试错发现轮询代码中使用了tornado的一个协程,即AsyncHTTPClient的一个异步请求导致的,将该函数改成requests包的同步请求,问题解决但并没搞清其中原理。
PS:如果有看到这篇文章,并理解其中原理的请不吝惕教,在此谢过啦☺☺☺
博客讨论了在Tornado异步框架中使用Confluent_Kafka时遇到的问题。由于Kafka消费者需要持续轮询,这与Tornado的事件驱动机制存在冲突。作者通过在主程序中使用线程解决这个问题,但发现问题源于Tornado的协程导致的异步请求。将AsyncHTTPClient替换为requests的同步请求后,问题得到解决,但未深入理解其原理。寻求对此有理解的人分享知识。
1604

被折叠的 条评论
为什么被折叠?



