我有一个处理一些业务数据并且必须返回响应的 java 程序。但作为备份这些数据的一部分,我想实现另一种方法,它将数据传递给该方法并异步备份,以便客户端不必等待该备份操作完成。有人可以提出更好的方法来实现这一点吗?我们达到了超过 100 个请求/秒,并且所有处理的数据也需要备份。
问问题
156 次
4 回答
1
我想你可以利用java.util.concurrent.ExecutorService
于 2013-09-28T15:46:18.787 回答
0
你应该利用java.util.concurrent.ExecutorService
来实现这样的功能。它将让您更好地控制线程池大小和超时和等待等其他方面。
于 2013-09-28T15:50:46.827 回答
0
Spring 3.0 @Async
允许您异步运行任务。按照此链接了解有关 Spring Asynch 任务使用的更多信息:
http://java-success.blogspot.in/2013/05/asynchronous-processiong-with-spring.html
于 2013-09-28T15:53:19.150 回答
0
听起来您需要认真考虑使用一些消息队列技术,例如 JMS (Hornet) 或 AMQP (RabbitMQ)。
@Async
很适合做小事,但它不能缩放,平原也不能ExecutorService
。更不用说您的问题听起来更像是消息问题,而不是简单的任务执行(备份和客户端通知)。MQ 理论/实践/实现需要一些阅读,所以我建议您查看 Spring AMQP/JMS 和一般消息队列文档。
在通知客户端方面,请查看新的 spring mvc DeferredResul t。
于 2013-09-28T16:56:48.840 回答