我已经创建了一个spring boot web应用程序,并将相同的war部署到tomcat容器中。应用程序使用异步连接连接到MongoDB
。为此,我使用mongodb-driver-async
库。
刚开始的时候一切都很好。但一旦负载增加,就会在DB连接中显示以下异常:
org.springframework.web.context.request.async.AsyncRequestTimeoutException: null
at org.springframework.web.context.request.async.TimeoutDeferredResultProcessingInterceptor.handleTimeout(TimeoutDeferredResultProcessingInterceptor.java:42)
at org.springframework.web.context.request.async.DeferredResultInterceptorChain.triggerAfterTimeout(DeferredResultInterceptorChain.java:75)
at org.springframework.web.context.request.async.WebAsyncManager$5.run(WebAsyncManager.java:392)
at org.springframework.web.context.request.async.StandardServletAsyncWebRequest.onTimeout(StandardServletAsyncWebRequest.java:143)
at org.apache.catalina.core.AsyncListenerWrapper.fireOnTimeout(AsyncListenerWrapper.java:44)
at org.apache.catalina.core.AsyncContextImpl.timeout(AsyncContextImpl.java:131)
at org.apache.catalina.connector.CoyoteAdapter.asyncDispatch(CoyoteAdapter.java:157)
我正在使用以下版本的软件:
附注:我正在使用deferredresult
和CompletableFuture创建异步REST API。
我还尝试在应用程序中使用spring.mvc.async.request-timeout
,并在Tomcat中配置了asyntimeout
。但仍然得到相同的错误。
很明显,Spring正在超时请求,并抛出AsyncRequestTimeoutException
,它将503返回给客户机。
现在的问题是,为什么会出现这种情况?有两种可能。
>
这些是合法超时。您提到只在服务器负载增加时才会看到异常。因此,您的服务器可能无法处理该负载,其性能已经下降到某些请求在Spring超时之前无法完成的程度。
如果某个东西处于极限状态,那么可能是瓶颈导致请求超时。
尝试将spring.mvc.async.request-timeout
设置为-1,看看会发生什么。您现在是每个请求都得到响应,只是很慢,还是有些请求似乎永远挂起?如果是后者,则强烈表明服务器中存在错误,导致它无法跟踪请求并无法发送响应。(如果设置spring.mvc.async.request-timeout
似乎没有效果,那么您接下来应该调查的是用于设置配置的机制是否实际有效。)
本文向大家介绍详解springboot整合mongodb,包括了详解springboot整合mongodb的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍springboot如何整合MongoDB。 准备工作 安装 MongoDB jdk 1.8 maven 3.0 idea 环境依赖 在pom文件引入spring-boot-starter-data-mongodb依赖: 数据源配置 如
我正在尝试使用@Query注释从Spring Boot MongoRepository执行一个复杂的GeoQuery。以下是我的文档: 我需要我的查询执行以下任务: null
我在GET api中有多个查询参数(如姓名、年龄、性别、位置等…n个数字)。现在我需要使用这些查询值来查询我的mongo数据库。现在用户可以发送从0到n的查询参数。 我正在尝试使用类似的东西 或者 但问题是,考虑到用户可以发送的所有排列和组合,我将不得不编写多个查询。有没有更好的方法来做到这一点?
我试图使用docker compose来运行我的Springboot REST API,它使用Mongo作为数据库,但我收到了以下错误。有人能帮我解决这个问题吗? 当我的Spring启动应用程序试图通过Docker容器连接到MongoDB时,它会给我带来问题。Spring Boot似乎无法连接到端口27017上的MongoDB。 下面是部分代码和异常。 DockerFile Docker-Comp
查询:{“日期”:{“$GTE”:“2021-07-22T03:00:00”,“$LTE”:“2021-07-23T03:00:00”},“isdeleted”:false},字段:{},排序:{} 将字符串转换为数据格式,如下所示,我只得到时间戳 DateFormat originalFormatData=new SimpleDateFormat(“yyyy-mm-dd't'hh:mm:ss”,
本文向大家介绍Java springboot Mongodb增删改查代码实例,包括了Java springboot Mongodb增删改查代码实例的使用技巧和注意事项,需要的朋友参考一下 1、添加依赖 复制代码 完整pom.xm文件 2、applicaiton.yml 3、Mongodb增删改查 github地址:https://github.com/812406210/vue-demo.git
我正在使用Spring引导应用程序连接MongoDB实例。我们已在MongoDB上启用了以下角色的身份验证 角色:[ { role: "dbOwner ",db: "{{ mongo.database_name }}" } 角色:[ { role: "readWrite ",db: "{{ mongo.database_name }}" } 我们使用conf文件提供凭证 数据: mongodb。u
我在mongodb收集了以下数据: 集合名称:runState 我希望在过去的12个月(2021年1月至2022年1月)中,每个完成任务的产品的输出都算数(产品可从product_action获得) 输出应采用以下格式: 我已经从下面开始了,但不知道如何像上面那样计算月份。 由于这对我来说是新的,有人能帮我使用mongo DB查询来获得结果,并在Java springboot中编写代码来实现这一点