客户端 SDK 开发指南
AutoMQ 完全兼容 Apache Kafka,支持使用 Apache Kafka 的客户端 SDK 进行集成和收发消息。本文档介绍 AutoMQ 推荐的客户端 SDK 以及使用注意事项。
兼容性说明
AutoMQ 完全兼容 Apache Kafka (0.10 ~ 3.9 版本),推荐使用 Apache kafka 的客户端 SDK 访问 AutoMQ 进行收发消息。根据 Apache Kafka 的协议协商原则,在上述范围内的客户端版本均可以正常接入。
建议应用侧尽可能升级到更新的 SDK 版本,以修复历史版本的隐藏缺陷。
推荐的客户端 SDK 列表
Apache Kafka 社区针对不同的开发语言提供了多种 SDK 选择,用户可查看社区的文档信息。AutoMQ 技术团队基于大量的生产实践,针对不同的开发语言推荐客户使用如下 SDK 接入 AutoMQ。
开发语言 | 客户端 SDK | 推荐版本 |
---|---|---|
Java | Apache Kafka Java Client | >= 3.2.0 |
C/C++ | librdkafka | >= 2.8.0 |
Go | franz-go | >= 1.17.1 |
Python | kafka-python-ng | >= 2.2.3 |
NodeJS | KafkaJS | >= 2.2.4 |
如果目前使用的 SDK 不在上述推荐列表范围内,只要兼容 Apache Kafka 协议,则仍然可以继续访问 AutoMQ,建议查看下方的已知问题列表,进行适当的参数调整。
客户端参数调优
使用 Apache Kafka SDK 收发消息时,除了选择推荐的 SDK 版本,还需要针对 Producer、Consumer 的关键参数进行调整,以达到最佳的性能。
建议参考Kafka 客户端配置调优▸ 进行参数检查和调整。
附录:其他已知问题
Sarama Go SDK
已知缺陷 | 缺陷信息 | 修复方法 |
---|---|---|
Async Producer 在发送重试时没有限制内存占用 |
|
|
Kafka-Go SDK
已知缺陷 | 缺陷信息 | 修复方法 |
---|---|---|
Consumer 无法识别 Group Coordinator 变更 |
|
|
Kafka JS SDK
已知缺陷 | 缺陷信息 | 修复方法 |
---|---|---|
Consumer 配置 heartbeatInterval 不准确 |
|
|