java - 如何提高spring-mvc和tomcat中静态资源的流式处理

标签 java performance spring-mvc tomcat audio-streaming

我正在构建一个应用程序来播放存储在安装在应用程序服务器上的 nas 上的 opus 音频文件。应用程序读取这些文件,并将它们发送到 HTTP 响应输出流。

我正在使用 spring-mvc 并且 Web 应用程序在 tomcat 上运行。 我使用以下方法获取音频文件:

<mvc:resources mapping="/audios/**" location="file:/path/to/the/mounted/nas"/>

我在 <audio> 中为他们服务标签。

现在我想让应用程序具有极强的 react 性和多用户友好性。如果我有 20 个人同时播放许多音频,系统会变得非常慢,我不知道该怎么做最好。

能否建议我如何改进应用程序

谢谢

最佳答案

您必须首先调查实际延迟发生的位置。是在代码中从文件系统获取资源,还是因为 Tomcat 无法承受更多负载。为确保不是代码问题,您可以记录代码执行时间并检查那里是否一切正常。这是做到这一点的方法 - How do I time a method's execution in Java?

现在,如果是 Tomcat 服务器无法承受负载,这看起来更可能是问题,您可能需要考虑通过使用 Apache Web 服务器创建负载平衡器配置来拥有多个 tomcat 实例的集群。这样,请求流量负载将由 Web 服务器分发到所有正在运行的 tomcat 节点,这将减少延迟。

您可以在这些链接中找到如何配置负载平衡-

http://www.tutorialspoint.com/white-papers/load-balancing-and-scalability-via-tomcat-clusters.htm

https://tomcat.apache.org/connectors-doc/generic_howto/loadbalancers.html

关于java - 如何提高spring-mvc和tomcat中静态资源的流式处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31276847/

相关文章:

java - 检查数组列表是否有值

java - com.allanbank.mongodb Java Mongodb 异步驱动程序错误 - 无法引导与 MongoDB 服务器的连接

sql-server - 基于字符的数据的数据库列大小

c# - 具有动态特性的游戏引擎设计

Spring 3.0多个@PathVariable的问题

java - Spring 安全java.lang.AbstractMethodError

java - setImageRessource 在计时器 android studio 中不起作用

java - 使用 Mockito,我如何匹配 map 的键值对?

php - 分析 Web 应用程序速度

java - 我正在将 SpringMVC 用于 Web 应用程序,并将 sessionFactory 用于 Hibernate。以下是我正在使用的 pom.xml