如何测试此应用程序的可扩展性,如何模拟客户端与服务器的连接。
对于可扩展性测试,我推荐Apache JMeter。它是用于创建和测量应用程序负载的出色、免费且相当简单的工具。您可以获得有关响应时间、每秒事务数、服务器负载等的信息。
我在 HTTP 应用程序中使用过很多次。对于您的 TCP 应用程序,它有一个 TCP 采样器,但使用您已经编写的连接代码为其 Java 采样器创建一个实现可能会更容易。我还建议将它与rstatd 采样器插件结合使用,这样您就可以在测试期间测量服务器 CPU/内存。
熟悉该工具可能需要几天时间,但它对我很有帮助。
服务器端是否需要有 GUI 来报告状态、连接性和异常。
老实说,服务器端的 GUI可能是矫枉过正。当然,拥有一些带有一堆闪烁的红绿灯和滚动日志的控制台会很整洁,但归根结底,这些都只是 YAGNI 项目。
只要您的服务器正在为您要关注的事务和事件编写日志和审计信息,这就足够了。拥有 GUI 只会增加服务器的复杂性,可能会产生更多错误。另外,如果您有效地使用日志,您可以插入其他监控/警报机制(例如 SNMP)。
我如何处理数据库(MySQL)?
其他答案有一些很好的建议;这是一个可能更好地涵盖本身的主题,并且有很多关于它的问题。我建议对 ORM+Java 进行一些搜索,以获得一些好的意见。这里有一些不错的链接:
您可以找到对所有不同 ORM 的不同意见,以及根本不使用它们的倡导者。就其本身而言,我没有意见 - 只需在研究选项后使用您认为适合该工作的内容即可。
是否有任何框架可以完成上述所有工作,或者我必须处理每个方面。
Doubtful,如果有的话,它可能太通用了,无论如何你最终都会为它编写一堆代码。对于 ORM + GUI(如果您确实使用 GUI),有开箱即用的 MVC+数据库 Web 解决方案可以在 JVM 上运行,例如Grails。但是您的大多数问题都涉及不同的问题域,每个问题都需要自己单独的解决方案。