反向代理的重要作用是分发恳求。
首先我们要懂得系统的性能瓶颈在哪里,一般来说网络io速度和内存io接近,都远高于磁盘io。假定一个接口恳求返回数据100k(一般没有这么大,只是假定一个方便盘算的值),10个并发恳求就是1M,那么全双工千兆网卡(现在还有万兆网卡,但成本太高,利用还不广),可以支撑并发10000个恳求,开双网卡,理论的上限就是20000个并发恳求。
假设我们收到恳求马上就返回,那么最高并发数就是我们上面盘算的成果,但是,问题在于,利用香港服务器做不到马上返回,因为它有很多业务逻辑需要履行处理,比如给用户发推送发短信发邮件,本地磁盘写日志,恳求数据库增删改查,调用微信的登录接口等等等等,都附加了各个层面的io。
所以第一层的优化,我们会尽量优化利用服务自身,把发推送发短信发邮件的活推到队列,让别的香港服务器去干。这个一般用内存队列,io很高。
开多线程或者协程的方法异步写日志,但再怎么优化,磁盘io的上限突破不了,这个io很低。还有更激进的方案,干脆日志也写内存,或者通过内网网络同步到别的香港服务器上,可以更优化。
数据库复用连接池,减少连接和断开的时间开销。查询语句尽量优化,减少等候数据库操作的时间。当然,再怎么优化,一样有个上限。
调用微信的登录接口等外部接口,这个就更难办了,受制于人,除了tcp连接池复用能稍微优化一点点,完整是取决于外部条件。
木桶理论取最短板,所有这些条件里,总有最慢最落后的那个。假如拖后腿的这个,最佳状态也只能优化到支撑2000个并发,那就为难了,本来能支撑20000个恳求的系统,只能用到1/10性能。
( 当然也可以在dns对应不同ip方法散布恳求,但是dns层面的散布更复杂更麻烦,因为dns缓存的原因,恳求也不能均匀散布,而且ip地址也是越来越稀缺的资源,没有背景没有后台的,搞这么ip比较多的也不容易啊 )
单个公网ip算一个节点的话,这个节点本来的潜力是响应20000个并发恳求,实际在利用层面只能到2000并发,潜力还未发掘啊。这个时候,就是反向代理起到用武之地的时候了。
首先一个反向代理的香港服务器抛开所有业务层的东西,只单纯的接下恳求再返回,那么可以支撑到20000并发了。接下来利用层面谁来处理?找来10个小弟,转发给他们,每人2000正好。这样这个节点系统虽然性价比只有10/11,但是性能潜力好歹挖尽了。
这就是反向代理的作用了。
桂哥网络特推出香港服务器租用折扣,先抽券后下单,售完即止欢迎点击下图懂得详情
TikTok千粉号购买平台:https://tiktokusername.com/
TOP