librdkafka开源库使用总结

使用C/C++语言操作Kafka时,librdkafka是首选的开源库

  • 使用librdkafka创建消费者客户端时,应配置如下属性
  1. 消费者会话组保持活动心跳间隔
  2. 自动提交偏移
  3. 自动重置偏移
    自动重置偏移有五种属性设置:
    a. earliest (最早的)
    b. latest (最近的)
    c. largest (最大的)
    d. smallest (最小的)
    e. beginning (起始的)
    f. end (结束的)
    g. error (错误的)
#include "librdkafka/rdkafka.h"

// 声明消费者实例
rd_kafka_t *rk; 
// 临时配置对象
rd_kafka_conf_t *conf;
conf = rd_kafka_conf_new();

//消费者会话组保持活动心跳间隔
if (rd_kafka_conf_set(conf, "heartbeat.interval.ms", "3000", errstr, sizeof(errstr)) != RD_KAFKA_CONF_OK)
{
	fprintf(stderr, "%s\n", errstr);
	rd_kafka_conf_destroy(conf);
	return 1;
}

//自动提交偏移
if (rd_kafka_conf_set(conf, "auto.commit.enable", "true", errstr, sizeof(errstr)) != RD_KAFKA_CONF_OK)
{
	fprintf(stderr, "%s\n", errstr);
	rd_kafka_conf_destroy(conf);
	return 1;
}

//自动重置偏移
if (rd_kafka_conf_set(conf, "auto.offset.reset", "latest", errstr, sizeof(errstr)) != RD_KAFKA_CONF_OK)
{
	fprintf(stderr, "%s\n", errstr);
	rd_kafka_conf_destroy(conf);
	return 1;
}

// 创建消费者实例
rk = rd_kafka_new(RD_KAFKA_CONSUMER, conf, errstr, sizeof(errstr));

  • 使用librdkafka创建生产者客户端时,若生产频率1s/次,可以设置socket为长连接
  1. 在代理套接字上启用TCP保持活动
#include "librdkafka/rdkafka.h"

// 声明生产者实例
rd_kafka_t *rk; 
// 临时配置对象
rd_kafka_conf_t *conf;
conf = rd_kafka_conf_new();

// 设置长连接
if(rd_kafka_conf_set(conf, "socket.keepalive.enable", "true", errstr, sizeof(errstr)) != RD_KAFKA_CONF_OK)
{
	rd_kafka_conf_destroy(conf);
	return false;
}

// 创建生产者实例
rk = rd_kafka_new(RD_KAFKA_CONSUMER, conf, errstr, sizeof(errstr));
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓琴儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值