开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

XTransfer的生产实践是什么?

已解决

XTransfer的生产实践是什么?

展开
收起
游客lmkkns5ck6auu 2022-08-31 10:37:32 221 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    在实际的生产使用过程当中,XTransfer积累了如下的实践经验:

    1. 使用 RocksDB State Backend • Changelog Normalize 为了补齐 -U 的前置镜像值,会带来额外的状态开销,在生产环境中推荐使用 RocksDB State Backend。

    2. 合适的 oplog 容量和过期时间 • MongoDB oplog.rs 是一个特殊的有容量集合,当 oplog.rs 容量达到最大值时,会丢弃历史的数据。 Change Streams 通过 resume token 进行恢复,太小的 oplog 容量可能导致 resume token 对应的 oplog 记录不再存在,因而导致恢复失败。 • 在没有显示指定 oplog 容量时,WiredTiger 引擎的 oplog 默认容量为磁盘大小的 5%,下限为 990MB, 上限为 50GB。在 MongoDB 4.4 之后,支持设置 oplog 最短保留时间,在 oplog 已满并且 oplog 记录超 过最短保留时间时,才会对该 oplog 记录进行回收。 • 可以使用 replSetResizeOplog 命令重新设置 oplog 容量和最短保留时间。在生产环境下,建议设置 oplog 容量不小于 20GB,oplog 保留时间不少于 7 天。

    3. 变更慢的表开启心跳事件 • Flink MongoDB CDC 会定期将 resume token 写入 checkpoint 对 Change Stream 进行恢复,MongoDB 变更事件或者心跳事件都能触发 resume token 的更新。如果订阅的集合变更缓慢,可能造成最后一条 变更记录对应的 resume token 过期,从而无法从 checkpoint 进行恢复。因此对于变更缓慢的集合,建 议开启心跳事件 (设置 heartbeat.interval.ms > 0),来维持 resume token 的更新。

    4. 自定义 MongoDB 连接参数 • 当默认连接无法满足使用要求时,可以通过 connection.options 配置项传递 MongoDB 支持的连接参数。

    5. Change Stream 参数调优 • 可以在 Flink DDL 中通过 poll.await.time.ms 和 poll.max.batch.size 精细化配置变更事件的拉取。 ! poll.await.time.ms 变更事件拉取时间间隔,默认为 1500ms。对于变更频繁的集合,可以适当调小拉取间隔,提升处理时 效;对于变更缓慢的集合,可以适当调大拉取时间间隔,减轻数据库压力。 ! poll.max.batch.size 每一批次拉取变更事件的最大条数,默认为 1000 条。调大改参数会加快从 Cursor 中拉取变更事件的速 度,但会提升内存的开销。

    6. 订阅整库、集群变更 • 在2.2.0版本之前可以设置database = "db",collection = "",订阅 db 整库的变更;database = "", collection = "",可以订阅整个集群的变更。 • 在2.2.0版本及之后支持了正则过滤数据库和集合的功能,例如database = "db1|db2",collection = "db1.products|db2.orders"。

    7. 权限控制 • MongoDB 支持对用户、角色、权限进行细粒度的管控,开启 Change Stream 的用户需要拥有 find 和 changeStream 两个权限; • 如果对单库订阅,则需要相应数据库的 read 角色。 • 如果同时对库、集合使用正则过滤,则需要 readAnyDatabase 角色。 • 在生产环境下,建议创建 Flink 用户和角色,并对该角色进行细粒度的授权。需要注意的是,MongoDB 可以在任何 database 下创建用户和角色,如果用户不是创建在 admin 下,需要在连接参数中指定 authSource =< 用户所在的 database>; • 在开发环境和测试环境下,可以授予 read 和 readAnyDatabase 两个内置角色给 Flink 用户,即可对任 意集合开启 change stream。

    以上内容摘自《Apache Flink 案例集(2022版)》电子书,点击https://developer.aliyun.com/ebook/download/7718 可下载完整版

    2022-08-31 12:16:04
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关电子书

更多
滴滴实时计算平台架构与实践 立即下载
Sloth:网易流计算服务化平台架构实践 立即下载
携程容器云优化与实践 立即下载