主要观点:
- 作者发现应用中通过 cron 作业不断轮询 API 刷新 Redis 缓存的方式可改进,想到类似 CDC 流的 Kafka Connect JDBC 源连接器,进而决定构建自己的 HTTP 源连接器。
- 详细介绍了 HTTP 源连接器的实现,包括使用的技术(Kafka Connect API、Apache HttpClient 5、SLF4J、Maven Assembly Plugin)、配置类(HttpSourceConfig)、HTTP 客户端类(HttpApiClient)、源任务类(HttpSourceTask)和源连接器类(HttpSourceConnector)。
- 阐述了连接器的部署和使用步骤,如构建并打包为 fat JAR、使用特定的 Docker 镜像、挂载连接器到容器、创建连接器实例、检查状态和使用 Kafka 消费者验证消息写入等。
关键信息:
- 使用的技术及版本:Kafka Connect API(3.0.0)、Apache HttpClient 5(5.5)、SLF4J(2.0.17)、Maven Assembly Plugin(3.7.1)。
连接器相关类的功能:
- HttpSourceConfig:定义和验证 HTTP 源连接器的配置。
- HttpApiClient:封装 HTTP 请求,支持多种请求方法和认证。
- HttpSourceTask:负责轮询 HTTP API、将响应转换为 Kafka 记录并跟踪偏移量。
- HttpSourceConnector:连接器的入口点,声明连接器行为。
部署和使用步骤中的细节:
- 构建 fat JAR 的命令及生成的文件。
- Docker 镜像的环境配置和端口映射。
- 验证连接器加载和创建实例的命令及返回结果。
- 使用 Kafka 消费者验证消息写入的命令。
重要细节:
- 在 Kafka Connect 中,连接器通过配置类定义配置,HttpSourceConfig 类中对各种配置项进行了详细定义,包括类型、默认值、验证规则等。
- HttpApiClient 类围绕 Apache HttpClient 5 构建,封装了 HTTP 请求的构建和执行,处理响应并处理各种异常。
- HttpSourceTask 类在启动时读取配置,初始化 HttpApiClient,进行轮询并将结果转换为 Kafka 记录,处理错误情况。
- 在部署和使用中,要注意 Docker 镜像中连接器的挂载路径和配置方式可能因分布而异,需根据实际情况调整。通过一系列命令和操作,可以成功构建、部署和使用 HTTP 源连接器,并实时消费 API 响应。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。