如何处理在一台服务器上运行的多REST客户端

时间:2013-11-28 15:38:43

标签: java performance rest sync

以下是我的情况:

我用Java编写了两个在我的服务器上运行的REST客户端。这些客户端打包到Runnable Jar文件中。我设定了运行它的时间表。每次数据同步大约3MB。

最近,我需要再写两个客户端来与其他资源进行同步。在此之前,我没有软件架构经验来构建高效的客户端系统。

我的问题是我的服务器不适合运行Microsoft Windows Server 2003 R2。硬件信息如下:

  • CPU:Intel Xeon E5649 2.53GHZ
  • RAM:2GB

我使用MySQL数据库,基本上sql每秒写入20左右。这很慢。从现在开始,进行一次同步需要2个小时。我无法想象周一会有4个REST客户端运行。

我需要有关如何处理在低容量服务器上运行的四个客户端的帮助。但是,请不要说服我更换新的强大服务器:)

我一直在思考,我是否只能构建一个同步来自不同资源的数据的客户端?或者建立四个以不同计划运行的客户端?另一个问题是将来会增加更多的资源。由于我缺乏知识,我不知道如何建立一个具有强大可扩展性的系统。

如果你能给我一些建议来推动我的学习,我们将非常感激。谢谢。

更多信息:

目标是使用不同的API和GET查询规则掌握来自不同RESTful服务器的数据,并将这些数据插入到数据库中。因此,基本上应用程序的工作是通过RESTful调用将数据放入MySQL。

此外,我只关注它。我不需要考虑如何处理插入的数据。结构很简单:

  • 获取Restful call并获得JSON格式结果
  • 解析JSON
  • 插入DB

我使用(JAX-RS)Jersey api来实现RESTful调用,并使用JDBC来管理数据库,但我正在研究将使用Hibernate实现插入,删除,更新和搜索功能的下一个版本。 / p>

此应用程序实现不使用任何应用程序服务器。我将程序打包到runnable jar文件,并设置schedule以在Windows Server 2003上运行它。

作为一名刚刚毕业的学生,​​这是我的第一个REST客户,但通过我深入的研究和学习,我对此了解得更多。但是,我没有经验。我只想让它更好地工作。任何建议,我很感激。

1 个答案:

答案 0 :(得分:1)

使用分析器深入了解应用程序的实际内存和CPU使用情况。然后,您可以使用适当的方法决定如何改进它。 (即多线程,缓存,压缩......)