(一)数据结构
RdKafka::DeliveryReportCb:Delivery Report回调类
RdKafka::PartitionerCb:Partitioner回调类
RdKafka::PartitionerKeyPointerCb:带key指针的Partitioner回调类
RdKafka::EventCb:Event回调类
RdKafka::Event:Event类
RdKafka::ConsumeCb:Consume回调类
RdKafka::RebalanceCb:KafkaConsunmer: Rebalance回调类
RdKafka::OffsetCommitCb:Offset Commit回调类
RdKafka::SocketCb:Socket回调类
RdKafka::OpenCb:Open回调类
RdKafka::Conf:配置接口类
RdKafka::Handle:客户端基类
RdKafka::TopicPartition:Topic+Partion类
RdKafka::Topic:Topic Handle
RdKafka::Message:消息对象类
RdKafka::Queue:队列接口
RdKafka::KafkaConsumer:KafkaConsumer高级接口
RdKafka::Consumer:简单Consumer类
RdKafka::Producer:Producer类
RdKafka::BrokerMetadata:Broker元数据信息类
RdKafka::PartitionMetadata:Partition元数据信息类
RdKafka::TopicMetadata:Topic元数据信息类
RdKafka::Metadata:元数据容器
librdkafka C++ API定义在rdkafkacpp.h文件中,兼容STD C++ 03标准,遵循Google编码规范。
(二)通用API
int RdKafka::version ();
获取librdkafka版本
std::string RdKafka::version_str();
获取librdkafka版本
std::string RdKafka::get_debug_contexts ();
获取librdkafka调试环境
int RdKafka::wait_destroyed(int timeout_ms);
等待所有的 rd_kafka_t对象销毁
std::string RdKafka::err2str(RdKafka::ErrorCode err);
将Kafka错误代码转换成可读字符串
(三)RdKafka::Conf
(四)
static Conf * create(ConfType type);
创建配置对象
Conf::ConfResult set(const std::string &name, const std::string &value, std::string &errstr);
设置配置对象的属性值,成功返回CONF_OK,错误时错误信息输出到errstr。
Conf::ConfResult set(const std::string &name, DeliveryReportCb *dr_cb, std::string &errstr);
设置dr_cb属性值
Conf::ConfResult set(const std::string &name, EventCb *event_cb, std::string &errstr);
设置event_cb属性值
Conf::ConfResult set(const std::string &name, const Conf *topic_conf, std::string &errstr);
设置用于自动订阅Topic的默认Topic配置
Conf::ConfResult set(const std::string &name, PartitionerCb *partitioner_cb, std::string &errstr);
(五)配置和主题结构
(六)线程
RdKafka编程涉及到三类线程:
1) 应用线程,业务代码的实现
2) Kafka Broker线程rd_kafka_broker_thread_main,负责与Broker通讯,多个
3) Kafka Handler线程rd_kafka_thread_main,每创建一个consumer或producer即会创建一个Handler线程。
(七)消费者结构
(八)生产者结构
如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!
加入交流群
请使用微信扫一扫!