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