java - 如何估算总 IO

标签 java sockets io netty nio

我正在开发一个流程,作为所有客户端访问数据的外观(报告大小从 100 kb 到几 MB 不等),每天运行数千个,但确切数量未知,并且可能每天都有很大差异.

构建外观背后的动机是我们在后台有几台可以生成数据的服务器,但我们希望有某种负载平衡来充分利用我们拥有的所有服务器,而且客户端也不需要知道他们需要访问单个服务器。

因此,外观选择一个服务器,轮询报告并将数据发送回客户端。因此,对于给定的报告,这里涉及两个 IO

  1. 客户端和 Façade 服务器之间
  2. 外观服务器和处理节点之间

我知道这是一个不太模糊的话题,但是我如何估计总 IO,看看当所有 IO 都经过它时,外观是否会成为其本身的瓶颈。任何见解、提示将不胜感激。

最佳答案

基于最坏情况的估计。

您说报告的确切数量尚不清楚,并且可能存在很大差异。您实际上只需要关注最坏的情况。您只需要确保外观在最繁忙的一天不会成为瓶颈。我的计划是在历史上最繁忙的一天将流量增加一倍。如果您确保外观可以处理那么多的流量,那么它很可能能够处理任何可预见的情况。

但是,请考虑返回的数据不必通过外观返回。有几种不同的方法可以构建这样的系统,处理节点可以在完成后将结果直接发送回客户端。除非这些报告基于静态数据并且可以缓存在外观中,否则我看不到在完成后通过外观将所有报告的数据发送回的好处。

关于java - 如何估算总 IO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25430238/

相关文章:

java - hibernate HQL 查询 : How to properly use ANY function in where clause?

java - 套接字读取数据花费的时间太长(BufferedReader)

python - 使用 python 发送屏幕截图

java - 调用 SessionFactory.getCurrentSesion() 时会发生什么

java - 有没有办法将父类(super class) obj 更改为子类 obj?

python - tcp 套接字,select 告诉可写,但 write() 会阻塞

java - writeUTF 和 writeChars 有什么区别?

java - 检查文本文件中的 10 个数字是递增、递减、恒定还是递增和递减

haskell - 如何在 Haskell 中实现生成 Maybe String 的 safeReadFile 函数

java - 依赖类型推断如何影响代码的可维护性?