我正在构建一个应用程序来播放存储在应用程序服务器上的nas上的 opus 音频文件。应用程序读取这些文件,并将它们发送到HTTP响应输出流。
我正在使用spring-mvc,而web应用程序在tomcat上运行。 我使用以下方式获取音频文件:
<mvc:resources mapping="/audios/**" location="file:/path/to/the/mounted/nas"/>
我在<audio>
标记中提供它们。
现在我想让应用程序极具反应性和多用户友好性。如果我有20个人同时播放很多音频,系统会变得很慢,我不知道最好的事情是什么。
您能否建议我如何改进应用程序
由于
答案 0 :(得分:1)
您必须首先调查实际延迟发生的位置。是从代码中从文件系统获取资源,还是因为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