Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Web服务部署选项_Java_Mysql_Web Services_Axis2_Tomcat7 - Fatal编程技术网

Java Web服务部署选项

Java Web服务部署选项,java,mysql,web-services,axis2,tomcat7,Java,Mysql,Web Services,Axis2,Tomcat7,抱歉这么长,但更多的信息通常比不够好 我需要在市场上的Android应用程序中添加一些基于服务器的功能。我过去的大部分经验都是使用.NETWeb服务和MSSQL,但是由于Android使用Eclipse和Java,我决定使用类似的技术创建此web服务 通过使用一些不同的教程,我使用axis2和mySQL开发了一个(自底向上)web服务,它在Tomcat7上的本地实例上进行了非常愉快的通信 war文件的部署似乎相当简单,但是考虑到它预期要处理的负载,我想知道是否有什么特别的事情需要我做 该应用程序

抱歉这么长,但更多的信息通常比不够好

我需要在市场上的Android应用程序中添加一些基于服务器的功能。我过去的大部分经验都是使用.NETWeb服务和MSSQL,但是由于Android使用Eclipse和Java,我决定使用类似的技术创建此web服务

通过使用一些不同的教程,我使用axis2和mySQL开发了一个(自底向上)web服务,它在Tomcat7上的本地实例上进行了非常愉快的通信

war文件的部署似乎相当简单,但是考虑到它预期要处理的负载,我想知道是否有什么特别的事情需要我做

该应用程序目前大约有500000个用户,每个用户都可能向服务器发出请求,比方说大约每30秒一次。因此,这将是目前预计的最大流量

web服务对sql数据库执行一个select查询,进行一些计算,然后返回一个响应——根本没有对数据库进行任何写入。预期响应时间约为1-10秒,具体取决于计算的复杂性

老实说,我不知道Tomcat、JavaWeb服务或mySQL的负载能力,一些Google搜索答案时什么也没找到。但这可能更多的是因为我缺乏经验,不知道该找什么

基本上,我想知道上面的场景是否应该由Tomcat、webservice和mySQL的单个实例来处理,或者是否应该采取额外的步骤。在这一点上,我不知道我是否远远低于能力,甚至不需要担心,或者我是否做出了一个错误的决定,继续这样做

所以,如果有人能回答这个问题,或者能为我指明方向,让我自己更好地研究这个问题,我将不胜感激


提前感谢。

一个好的开始是加载测试您的web服务,看看它在错误和性能受到影响之前能处理多少。 你可以使用这样的工具。SoapUI工具允许测试套件,这些套件可以通过不同的参数设置到web服务。SoapUI不仅限于Java,而且几乎可以在任何web服务上使用

如果您发现服务器无法处理预期的负载,那么您有几个选项

  • 向它扔更多的硬件
  • 调整您的查询以确保web 服务电话以最快的速度结束 可能的时间
  • 分析应用程序以查找内存和性能瓶颈
  • 在数据库前面放置一个缓存层(请参见) 加快阅读速度

您的请求是否可以缓存?我想这是问你自己最重要的问题。许多缓存解决方案不依赖于底层堆栈。否。每个请求都会有所不同,我不认为有任何方法可以实现缓存解决方案。我曾考虑过在启动时将mySQL表加载到内存中,但这是超过200000条记录,而select语句可以根据请求要求筛选。我计划使用一些beta测试人员进行负载测试,并进行分阶段的推出,以在所有内容都崩溃之前找出问题“现场直播SoapUI看起来是一个很好的解决方案,可以帮助我找到我需要的答案,因为可能没有人能给出明确的答案。谢谢你的帮助,我会看看还有什么其他的答案,但是我认为我会把这个标记为最好的解决方案。你会想看看tomcat一次最多会产生多少线程。我认为默认值是200。一旦您有了更多的请求,超过了线程的最大数量,那么您将有用户备份并等待。使用负载测试工具找到您的最佳选择,这是我期望看到的答案(并且希望避免)。默认情况下,作为一个专用服务器,我可能可以增加负载,因此我将了解负载测试的进展情况,并从中进一步研究。我认为我的算法是尽可能优化的,至少对我的智商来说是如此,但快速阅读一下ehcache似乎是一个很好的解决方案,可以避免在我发现问题时所有db调用都会浪费时间和内存。