注意
本页面同时适用于 Atlas Infinite 和 Atlas Core。
以下限制适用于 Atlas Stream Processing:
常规
Atlas Stream Processing仅支持 at-least- 处理。
Atlas Stream Processing不支持水平扩展。
Atlas Stream Processing 为转换管道阶段使用单核,但可以指定
parallelism值的阶段除外。当您启用 垂直自动扩展 时,必须在处理器上或作为 Stream Processing 工作区域最大层级大小设置
maxTier。如果两者都未设置,处理器将返回错误,并且不会启动。您无法配置 trigger 垂直自动缩放的 CPU 和内存阈值。Atlas Stream Processing 在内部管理这些阈值。
流处理器的
state.stateSize不能超过其 Pod 可用RAM的 80%。示例,具有 8 GB RAM 的SP30层级中的流处理器的最大大小为 6.4 GB。如果任何流处理器的state.stateSize接近其可用RAM的 80%,请考虑停止该处理器并在更层级上重新启动。如果流处理器已在为流处理工作区启用的最大层级上运行,请考虑调整流处理工作区配置以启用更高层级的流处理器。当流处理器超过 80% RAM 阈值时,会因
Worker out of memory错误而失败。您可以使用sp.processor.stats()命令查看每个流处理器的state.stateSize值。请参阅查看流处理器的统计信息以了解更多信息。Atlas Stream Processing 管道定义不能超过16 MB。
Only users with the
Organization Stream Processing Admin,Project Owner,Project Stream Processing OwnerorAtlas adminroles can use Atlas Stream Processing.
聚合管道 (Aggregation Pipeline)
Atlas Stream Processing 支持 Atlas 中可用的聚合管道阶段的子集,允许您对流媒体数据执行许多与静态数据相同的操作。有关支持的聚合管道阶段的完整列表,请参阅 Stream Aggregation 文档。
Atlas Stream Processing 不支持聚合变量
$$NOW、$$CLUSTER_TIME、$$USER_ROLES和$SEARCH_META。Atlas Stream Processing 不支持使用 $emit 阶段将大于
125 MB的 BSON 文档写入 Amazon Web Services S3 存储桶。$iceberg 阶段在
partitionedBy字段中最多支持三个分区转换。
Kafka 连接
对于 Apache Kafka $source 阶段,如果作为运行处理器的 Apache Kafka $source 主题添加了分区,则启动偏移量由 auto_offset_reset 属性确定。
对于 Apache Kafka $source 阶段,受 Stream Processing 工作区层级分区限制。如果您超过了 Stream Processing 工作区层级的分区限制,受影响的流处理器将失败。您必须升级您的 Stream Processing 工作区以支持更多分区。
Atlas Stream Processing 不支持连接到与其他消费者在同一消费组中的 Apache Kafka 消费者。确保与 Atlas Stream Processing 一起使用的任何 Kafka 消费者都在专用消费组中运行。
对于Apache Kafka连接, Atlas Stream Processing目前仅支持以下安全协议:
SASL_PLAINTEXTSASL_SSLSSL
对于
SASL,Atlas Stream Processing 支持以下机制:PLAINSCRAM-SHA-256SCRAM-SHA-512OAUTHBEARER
SSL对于 ,您必须提供以下资产,以便使用Atlas Stream Processing进行Apache Kafka系统双向 TLS身份验证:a 证书颁发机构(如果您使用的是默认 Apache Kafka CA 以外的 CA)
客户端TLS 证书
TLS 密钥文件,用于签署 TLS 证书
初始化同步(Resumable Initial Sync)
initialSync doesn't support collections whose _id values are arrays, regular expressions, or undefined, which MongoDB doesn't support as
_idvalues.If your collection's
_idvalues are default generated ObjectId values or orderedintorlongvalues,initialSyncachieves optimal performance. For other_idtypes,initialSyncmight take longer to complete because the values aren't stored in a predictable order. If the resume token is no longer on the oplog wheninitialSynccompletes, the processor enters a failed state to prevent data loss. To recover, restart the processor withresumeFromCheckpoint=false, which causesinitialSyncto run again. To learn more, see Checkpoints.Atlas Stream Processing 可以在
initialSync复制分区时将新文档插入分区。在增长的分区上中断查询的网络故障会延长集合复制阶段。initialSync如果在集合复制或追赶阶段读取更改事件,可能会插入重复的文档。Atlas Stream Processing 的至少一次处理 ACID 一致性保证覆盖了此行为。当集合的_id值不是ObjectId值或有序的int或long值时,更容易出现重复项,因为集合复制阶段运行时间更长,并跨越更多的更改事件。
故障转移处理器
Atlas Stream Processing 仅支持具有以下配置的处理器的故障转移处理器:
Atlas 源和汇聚器
Atlas 源和 Apache Kafka 汇聚器
Atlas Stream Processing 仅支持层级 层级
SP10或更高的处理器的故障转移处理器。Stream Processing 工作区域可以有最多两个故障转移区域。故障转移区域必须使用与 Stream Processing 工作区的默认区域相同的云提供商。Atlas Stream Processing 不支持跨云故障转移。
对于配置了故障转移处理器的处理器,在任何给定时间只能有一个处理器处于活动状态。您只能编辑活动处理器。