这个项目能做什么
Redpanda Connect 是一个流处理器,用于在广泛的源和接收端之间移动数据,并在过程中进行水合、丰富、转换和过滤。管道在单个 YAML 文件中声明,因此流拓扑易于阅读、版本控制和审查。
README 中描述的关键特性:
- 声明式管道:整个拓扑适配于一个 YAML 文件。
- 默认至少一次投递,使用进程内事务模型,无磁盘持久化状态,项目称即使经历崩溃、磁盘损坏或其他服务器故障也能保持。
- 庞大的连接器目录,涵盖云服务、消息代理、数据库和 HTTP。命名的示例包括 AWS(DynamoDB、Kinesis、S3、SQS、SNS)、Azure(Blob、Queue、Table)、GCP(Pub/Sub、Cloud Storage、BigQuery)、Kafka、NATS(JetStream、Streaming)、NSQ、MQTT、AMQP 0.91(RabbitMQ)、AMQP 1、Redis、Cassandra、Elasticsearch、HDFS、HTTP(服务器、客户端、websockets)、MongoDB 和 SQL(MySQL、PostgreSQL、ClickHouse、MSSQL)。
- 针对 Postgres、MySQL、MongoDB、Oracle 和 MSSQL 的一流变更数据捕获连接器,使数据库变更作为事件流经管道。
- Bloblang,一种为流数据设计的映射语言,用于转换和映射。
- 云友好操作:无状态且可水平扩展,内置指标和追踪。
一个 README 示例将 Postgres 变更流式传输到 S3 上的 Apache Iceberg 表,为每个源表创建一个 Iceberg 表,并展示了模式演进选项。
安装选项包括 Linux zip 下载、macOS 上的 Homebrew 和 Docker 镜像。它作为单个静态二进制文件或容器镜像运行,通过 `rpk connect run ./config.yaml` 调用,或通过 Docker 挂载配置文件或内联覆盖。
可观测性:`/ping` 是始终返回 200 的存活探针,`/ready` 是就绪探针,当输入和输出都连接后返回 200,否则返回 503。指标可以暴露给 Statsd、Prometheus、JSON HTTP 端点和其他后端。OpenTelemetry 追踪原生发出,以实现端到端管道可见性。
可扩展性和开发:公共 Go API 已文档化,用于构建自定义插件,并有一个示例插件仓库。从源代码构建需要当前支持的 Go 版本,并使用 `task build:all`。链接外部 C 库的组件(例如 zmq4)默认被排除,可以通过 `x_benthos_extra` 构建标签启用。多阶段 Dockerfile 生成基于 scratch 的最小镜像。项目使用 golangci-lint 和 gofumpt,具有 `task fmt`、`task lint` 和 `task test` 目标;大多数集成测试启动 Docker 容器,默认测试任务会跳过它们。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。