RocketMQ Connect 构建流式数据处理平台

本文作者:孙晓健,Apache RocketMQ Committer

01 RocketMQ Connect

RocketMQ Connect 是一款可扩展的在 RocketMQ 与其他系统之间做流式数据传输的工具,能够轻松将 RocketMQ 与其他存储技术进行集成。RocketMQ Connect 使用特定的 Source 插件类型,将数据发送到 RocketMQ  Topics 中,并通过 Sink 监听 Topics 将数据写到下游指定数据存储中。使用过程中 Connector 可以通过 JSON 方式进行配置,无需编码。数据流转过程从源到目的,通过 RocketMQ 进行桥接。

RocketMQ Connect 具有以下特性:

①通用性:Connect 制定了标准 API,包括 Connector、Task、Converter、 Transform, 开发者可以通过标准 API 扩展自己插件,达到自己需求。

②Offset 自动管理(断点续传):Source方面——用户在开发 Connect 时,可以通过 Offset 进行增量数据拉取。系统内部会自动对 Offset 做管理,会将上次拉取 Offset 信息进行持久化。下次任务重启时,可以通过上次提交的 Offset 继续进行数据增量拉取,无需从头进行数据同步 ;Sink 方面——基于 RocketMQ 自身的 Offset 提交策略,在内部实现了自动提交方式,任务运行时会自动处理,允许用户配置 Offset 提交间隔;如果系统自带 offset 已经可以满足需求,则无须另外维护 Offset;如果系统自带 Offset 无法满足需求,则可以通过 Task API 进行维护。Task API 中自带 Offset 维护能力,可以在 Connect 中自行决定 Offset 持久化逻辑,比如持久化到 MySQL、Redis 中。下次任务启动时,可以自动从 Offset 存储位点获取下一次执行 Offset ,继续做增量拉取。

③分布式、可扩展、容错:可以分布式的方式进行部署,自带容错能力。Worker 宕机或添加 Worker 时,任务会自动做重新分配、运行,在各集群 Worker 之间做平衡。任务失败后, 也会自动重试。重试完可自动 Rebalance 到不同 Worker 机器上。

④运维和监控:Connect 提供了标准的集群管理功能,包括 Connect 管理功能以及插件管理功能。可以通过 API 方式对任务做启停操作,也可以查看任务在运行过程中的运行状态以及异常状态。并且可以进行指标上报,任务在数据拉取与数据写入后,数据总量、数据速率等都可以通过 Metrics方式做数据上报。此外,Metrics 也提供了标准的上报API ,可以基于标准 API 做指标扩展和上报方式的扩展,比如上报到 RocketMQ topic 中、Prometheus等。

⑤批流一体:Source 在做数据拉取时,可以通过 JDBC 或 指定插件 sdk 的方式,做批量数据拉取,转换为流方式,也可以使用 CDC 方式,通过 增量快照 或类 Mysql binlog 监听方式获取源端全量与增量变更数据,推给 RocketMQ,下游可以通过 Flink 或 RocketMQ Stream进行流式处理做状态计算, 也可直接落到数据存储引擎中,如 Hudi、 Elasticsearch、 Mysql 等 。

⑥Standalone、Distributed模式:Standalone 模式主要用于测试环境,Distributed模式主要用于生产环境。在试用过程中可以用 Standalone 方式做部署,得益于其不会做 Config 存储,每次启动时都可以带独立任务,帮助调试。

Connect 组件包含以下几类:

  • Connector:作为任务协调的高级抽象࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值