以下是我的情况:
我用Java编写了两个在我的服务器上运行的REST客户端。这些客户端打包到Runnable Jar文件中。我设定了运行它的时间表。每次数据同步大约3MB。
最近,我需要再写两个客户端来与其他资源进行同步。在此之前,我没有软件架构经验来构建高效的客户端系统。
我的问题是我的服务器不适合运行Microsoft Windows Server 2003 R2。硬件信息如下:
我使用MySQL数据库,基本上sql每秒写入20左右。这很慢。从现在开始,进行一次同步需要2个小时。我无法想象周一会有4个REST客户端运行。
我需要有关如何处理在低容量服务器上运行的四个客户端的帮助。但是,请不要说服我更换新的强大服务器:)
我一直在思考,我是否只能构建一个同步来自不同资源的数据的客户端?或者建立四个以不同计划运行的客户端?另一个问题是将来会增加更多的资源。由于我缺乏知识,我不知道如何建立一个具有强大可扩展性的系统。
如果你能给我一些建议来推动我的学习,我们将非常感激。谢谢。
更多信息:
目标是使用不同的API和GET查询规则掌握来自不同RESTful服务器的数据,并将这些数据插入到数据库中。因此,基本上应用程序的工作是通过RESTful调用将数据放入MySQL。
此外,我只关注它。我不需要考虑如何处理插入的数据。结构很简单:
我使用(JAX-RS)Jersey api来实现RESTful调用,并使用JDBC来管理数据库,但我正在研究将使用Hibernate实现插入,删除,更新和搜索功能的下一个版本。 / p>
此应用程序实现不使用任何应用程序服务器。我将程序打包到runnable jar文件,并设置schedule以在Windows Server 2003上运行它。
作为一名刚刚毕业的学生,这是我的第一个REST客户,但通过我深入的研究和学习,我对此了解得更多。但是,我没有经验。我只想让它更好地工作。任何建议,我很感激。
答案 0 :(得分:1)
使用分析器深入了解应用程序的实际内存和CPU使用情况。然后,您可以使用适当的方法决定如何改进它。 (即多线程,缓存,压缩......)