0

对不起,这里的长度,但更多的信息通常总比不够好......

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

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

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

该应用程序目前有大约 500,000 个用户,每个用户都可以向服务器发出请求,假设大约每 30 秒一次。因此,这将是目前预期的最大流量。

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

老实说,我对 Tomcat、Java Web Service 或 mySQL 的负载能力一无所知,一些谷歌搜索答案一无所获。但这可能更多是因为由于缺乏经验,我不知道该寻找什么。

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

因此,如果有人能够回答这个问题,或者可以指出我自己可以更好地研究这个问题的方向,我们将不胜感激。

提前致谢。

4

1 回答 1

0

一个好的开始是对您的 Web 服务进行负载测试,看看它在错误和性能受到影响之前可以处理多少。为此,您可以使用SoapUI 之类的工具。SoapUI 工具允许测试套件,这些套件可以设置为使用不同参数对 Web 服务进行负载测试。SoapUI 不限于 Java,几乎可以在任何 Web 服务上使用。

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

  • 投入更多硬件
  • 调整您的查询以确保 Web 服务调用在尽可能快的时间内完成
  • 分析应用程序以查找内存和性能瓶颈
  • 在您的数据库前面放置一个缓存层(请参阅Ehcache)以加快读取速度。
于 2011-06-07T14:41:34.447 回答