以下限制适用于 Atlas Stream Processing:
常规
Atlas Stream Processing仅支持 at-least- 处理。
Atlas Stream Processing不支持水平扩展。
Atlas Stream Processing 为转换管道阶段使用单核,但可以指定
parallelism值的阶段除外。启用垂直自动伸缩时,必须在处理器上设立
maxTier,或者将其设置为流处理工作区的最大层级大小。如果两者均未设立,则处理器将返回错误并且不会启动。您无法配置触发垂直自动伸缩的 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。
只有具有
Organization Stream Processing Admin、Project Owner、Project Stream Processing Owner或Atlas admin角色的用户才能使用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文档写入 AWS S3 存储桶。
Kafka 连接
对于Apache Kafka $source 阶段,如果充当运行的处理器的 $source 的Apache Kafka主题添加分区,则起始偏移量由 auto_offset_reset属性确定。
对于Apache Kafka, $source 阶段受流处理工作区层级分区限制的约束。如果超过流处理工作层级的分区限制,则受影响的流处理器将出现故障。您必须升级流处理工作区才能支持其他分区。
对于 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 不支持_id值为数组、正则表达式或未定义的集合, MongoDB也不支持此类集合作为
_id值。如果集合的
_id值是默认生成的 ObjectId 值或有序的int或long值,则initialSync可实现最佳性能。对于其他_id类型,initialSync可能需要更长的时间才能完成,因为值未按可预测的顺序存储。如果在initialSync完成时恢复令牌不再位于oplog上,处理器将进入故障状态以防止数据丢失。要恢复,请使用resumeFromCheckpoint=false重新启动处理器,这会导致initialSync再次运行。要学习;了解更多信息,请参阅检查点。Atlas Stream Processing 可以在
initialSync复制分区时将新文档插入分区。在增长的分区上中断查询的网络故障会延长集合复制阶段。initialSync如果在集合复制或追赶阶段读取变更事件,则可能会插入重复文档。 Atlas Stream Processing 的至少一次处理保证涵盖了这种行为。当集合的_id值不是ObjectId值或有序的int或long值时,更有可能出现重复,因为集合复制阶段的运行时间更长,涵盖更多变更事件。
故障转移处理器
Atlas Stream Processing 仅支持层级 层级
SP10或更高的处理器的故障转移处理器。对于配置了故障转移处理器的处理器,在任何给定时间只能有一个处理器处于活动状态。您只能编辑活动处理器。