程序员笔记 (六十二)Kafka C++客户端库librdkafka详解


外向笑小鸭子
外向笑小鸭子 2024-01-12 14:15:37 51192 赞同 0 反对 0
分类: 资源 标签: 运维
程序员笔记 (六十二)Kafka C++客户端库librdkafka详解

(一)数据结构

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线程。

图片

(七)消费者结构

图片

(八)生产者结构

图片

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
外向笑小鸭子L0
粉丝 0 资源 87 + 关注 私信
最近热门资源
银河麒麟桌面操作系统备份用户数据  123
统信桌面专业版【全盘安装UOS系统】介绍  116
银河麒麟桌面操作系统安装佳能打印机驱动方法  108
银河麒麟桌面操作系统 V10-SP1用户密码修改  101
最近下载排行榜
银河麒麟桌面操作系统备份用户数据 0
统信桌面专业版【全盘安装UOS系统】介绍 0
银河麒麟桌面操作系统安装佳能打印机驱动方法 0
银河麒麟桌面操作系统 V10-SP1用户密码修改 0
作者收入月榜
1

prtyaa 收益393.62元

2

zlj141319 收益217.85元

3

1843880570 收益214.2元

4

IT-feng 收益208.98元

5

风晓 收益208.24元

6

777 收益172.71元

7

Fhawking 收益106.6元

8

信创来了 收益105.84元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!