我正在用Scala开发一个web应用程序。这是一个简单的应用程序,它将从客户端(JSON或ProtoBufs)的端口上获取数据,并使用数据库服务器进行一些计算,然后使用JSON / Protobuf对象回复客户端。
这不是一个非常繁重的应用程序。最多1000行代码。它将为每个客户端请求创建一个线程。现在从收到请求到回复的时间在20 -40毫秒之间。
我需要一个建议,我应该使用哪种硬件/设置来为每秒的3000+请求提供服务。我需要采购硬件放在我的数据中心。
任何有大规模部署java应用经验的人,请给我建议。我应该使用一个带有2-4个Xeon 5500和32 GB RAM的大机器,还是使用多个较小的机器。
更新-我们没有太多的客户。3-4个。请求将来自他们中的3个。
发布于 2011-12-04 23:51:41
如果每个请求平均耗时30ms,那么单个内核每秒只能处理30个请求。假设你的应用是线性扩展的(这是你所期望的最好的情况),那么你至少需要100个内核才能达到3000请求/秒,这比2-4个Xeon还多。
最糟糕的是,如果你的应用依赖IO或DB (就像大多数有用的应用程序一样),你会得到一个次线性缩放,而且你可能需要更多……
因此,首先要做的是分析和优化应用程序。以下是一些小贴士:
ExecutorService
)。https://stackoverflow.com/questions/8374912
复制相似问题