rdkafka的内部消息都是通过这个结构来暂存。每个模块都有自己的queue,当需要返回消息时,就把该queue的内容concat转出去。
【基本功能】
其核心是一个rd_kafka_op_tailq结构的rkq_q变量。用于存储消息OP。
当然还少不了锁相关的mtx和condition。
【亮点】
核心队列之外,还有几个亮点:
1 读写分离:有一个rd_kafka_q_s类型的内部队列,用于专门用于读。
2 每个队列有一个rd_kafka_q_serve_cb_t结构的回调处理器,即处理callback。
【主要应用】
rktp_fetchq:用于消费者fetch相关的消息。包括错误信息。