我正在使用ReactiveMongoTemplate MongoDB ChangeStream来监听对MongoDB集合的更新,执行一些查询,并将文档持久化到另一个集合。虽然它在本地运行良好,但在部署到容量很大的UAT后,它开始出现以下错误:
Too many operations are already waiting for a collection. Max number of operations (maxWaitQueueSize) of 500 has been exceeded.
解决这个问题的方法是什么?
我的档案里有application.yml
spring:
data:
mongodb:
uri: mongodb://host:port/db?authMechanism=<val1>&authSource=<val2>&authechanismProperties=<val3>
这就是简化更改拖缆的外观:
@Autowired
ReactiveMongoTemplate reactiveMongoTemplate;
reactiveMongoTemplate
.changeStream(Sample.class)
.watchCollection("sample_collection")
.filter(
new Criteria.orOperator(
where("operationType").is("update"),
where("operationType").is("insert")
)
)
.listen()
.flatMap(r->processMessage(r)). // processMessage does some queries to collections including this collection being listened to and upserts to same mongodb in a different collection
.subscribeOn(Schedulers.boundedElastic())
.subscribe();
我知道我可能需要添加一些连池才能处理多个连接?但是我如何使用Reactive MongoDB配置它?我是反应式编程的新手。任何指针都会很有帮助。
这里有几件事你可以做:
>
检查是否有一些长阻塞调用正在进行,导致线程被阻塞,并导致创建许多连接,因为之前的连接仍然被占用执行繁重的任务。尝试检查对阻塞这些调用的代码的一些优化。在反应式编程中,您可以使用BlockHound
检查阻塞代码的存在。
通过指定waitQueueMultiple
或maxPoolSize
来增加连接限制https://docs.mongodb.com/manual/reference/connection-string/#connection-池选项
在此之前,您可以使用查看mongo db统计数据来查看当前和允许的连接
db.serverStatus().connections
我是相当新的Spring和MongoDB,并有一个问题,从我的MongoDB拉数据。我试图获得相当大的数据量,并收到以下异常: 执行器错误:操作失败:排序操作使用超过最大33554432字节的RAM。添加索引,或指定一个较小的限制。;嵌套异常是com.mongodb.MongoExc0019: Execator错误:操作失败:排序操作使用超过内存的最大33554432字节。添加索引,或指定较小的限
问题内容: 我收到了ORA-01000 SQL异常。因此,我对此有一些疑问。 最大打开游标是否与JDBC连接的数量完全相关,还是与我们为单个连接创建的语句和结果集对象相关?(我们正在使用连接池) 有没有一种方法可以配置数据库中的语句/结果集对象的数量(如连接)? 是否建议在单线程环境中使用实例变量statement / resultset对象而不是方法local statement / resul
问题内容: 所以我用这个例子: https://github.com/mcmoe/mssqldocker 为了创建一个SQL Server映像并将其加载数据。我有几个运行容器时运行的sql脚本。 但是,在构建映像时,我开始出现此错误: 我不确定如何解决此问题,我重新启动了docker甚至更新了它。我读了约125层的书吗?谁能解释这个的原因和可能的解决方法? 我发现此命令可以运行: 我的docker
方法是 现在我试着像这样改成stream,但我不知道这种改是否正确: 如何避免出现例外,解决问题? 我应该以某种方式重构代码吗?
我试图用位于S3上的输入文件创建一个Amazon Transbe作业,该文件的大小是4.3GB,当我试图创建作业时,会显示这个错误。 我可以用我的视频做什么?我应该转换视频,提取音频,还是有什么方法可以用一些AWS服务来做
本文向大家介绍数据结构中的最大WBLT操作,包括了数据结构中的最大WBLT操作的使用技巧和注意事项,需要的朋友参考一下 在这里,我们将看到什么是不同的Max-WBLT操作。HBLT具有不同的操作,例如插入,删除和初始化。它们也与WBLT非常相似。但是,融合操作可以在一次从上到下的过程中完成。 WBLT可以进行单遍熔合操作。因为我们可以在下降的过程中找到w值。我们可以根据需要更新w值并交换子树。对于