ilogtail icon indicating copy to clipboard operation
ilogtail copied to clipboard

[FEATURE]引入confluent-kafka-go官方kafka库

Open szy441687879 opened this issue 2 years ago • 1 comments

当前ilogtail使用了较低版本的github.com/Shopify/sarama(v1.28.0)的库,在消费侧存在一些缺陷

因此想引入官方维护的cgo库confluent-kafka-go,解决上述问题,并且方便后续新特性的使用。

由于confluent-kafka-go默认依赖的librdkafa库使用了tls,直接引用会出现cannot allocate memory in static TLS block错误,因此在引用前需要对编译链进行改动,具体改动如下

  1. 使用动态链接库[已验证可行]
  • 编译环境自行编译librdkafka库
  • ilogtail-plugin编译的时候增加--tags='dynamic'
  • 运行环境增加librdkafka的动态库库librdkafka.so.1

2.使用LD_PRELOAD[已验证可行]

  • ilogtail-plugin编译的时候增加--tags='ckafka',如果开启之后会联编confluent-kafka-go
  • 如果开启ckafka,比如在ilogtail启动的时候指定LD_PRELOAD=xxxx/libPluginBase.so

3.使用高版本的glibc[待验证]

  • 高版本的glibc默认有更高的TLS surplus space,当前gcc的版本是4.8.2, 比较落后,升级之后可能能解决问题。
  • github

szy441687879 avatar Nov 08 '22 09:11 szy441687879

resolve #471

szy441687879 avatar Nov 08 '22 09:11 szy441687879