ilogtail
ilogtail copied to clipboard
[FEATURE]引入confluent-kafka-go官方kafka库
当前ilogtail使用了较低版本的github.com/Shopify/sarama(v1.28.0)的库,在消费侧存在一些缺陷
- 暂不支持static-member
- 存在客户端消费问题的问题
因此想引入官方维护的cgo库confluent-kafka-go,解决上述问题,并且方便后续新特性的使用。
由于confluent-kafka-go默认依赖的librdkafa库使用了tls,直接引用会出现cannot allocate memory in static TLS block
错误,因此在引用前需要对编译链进行改动,具体改动如下
- 使用动态链接库[已验证可行]
- 编译环境自行编译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
resolve #471