我正在开发一个流程,作为所有客户端访问数据的外观(报告大小从 100 kb 到几 MB 不等),每天运行数千个,但确切数量未知,并且可能每天都有很大差异.
构建外观背后的动机是我们在后台有几台可以生成数据的服务器,但我们希望有某种负载平衡来充分利用我们拥有的所有服务器,而且客户端也不需要知道他们需要访问单个服务器。
因此,外观选择一个服务器,轮询报告并将数据发送回客户端。因此,对于给定的报告,这里涉及两个 IO
- 客户端和 Façade 服务器之间
- 外观服务器和处理节点之间
我知道这是一个不太模糊的话题,但是我如何估计总 IO,看看当所有 IO 都经过它时,外观是否会成为其本身的瓶颈。任何见解、提示将不胜感激。
最佳答案
基于最坏情况的估计。
您说报告的确切数量尚不清楚,并且可能存在很大差异。您实际上只需要关注最坏的情况。您只需要确保外观在最繁忙的一天不会成为瓶颈。我的计划是在历史上最繁忙的一天将流量增加一倍。如果您确保外观可以处理那么多的流量,那么它很可能能够处理任何可预见的情况。
但是,请考虑返回的数据不必通过外观返回。有几种不同的方法可以构建这样的系统,处理节点可以在完成后将结果直接发送回客户端。除非这些报告基于静态数据并且可以缓存在外观中,否则我看不到在完成后通过外观将所有报告的数据发送回的好处。
关于java - 如何估算总 IO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25430238/