我的服务器过去曾处理700多个用户突发事件,现在却在200个用户左右失败。
(用户在单击推送消息后几乎同时连接到服务器)
我认为更改是由于更改了发出请求的方式。
然后,Web服务器在html的单个响应中收集了所有信息。 现在,页面中的每个部分都在发出一个REST API请求,可能导致10个以上的请求。
我正在考虑制作一个api端点,以汇总对用户在单击推送通知时将打开的页面的请求。
我想到的另一个解决方案是缓存那些经常使用的rest api响应。
结合api调用以减少api调用是一个好主意吗?
答案 0 :(得分:0)
减少API调用总是一个好主意。最佳解决方案是一次性获得所有必要的数据,而无需任何未使用的信息。 这样可以减少流量,减少对服务器的请求(和负载),减少RAM和CPU使用率以及减少并行数据库操作。
缓存也是一个不错的选择。您可以考虑缓存整个请求和响应的各个部分。
组合的API响应意味着只有一个响应,这将减少预执行时间(应用程序正在加载所有内容),但会增加处理时间,因为它在一个线程中完成所有操作。这样可以减少流量,但响应时间会稍慢。
从用户的角度来看,这意味着如果将所有内容组合在一起,页面的加载速度会变慢,但是当页面合并时,页面的加载速度将会完全变慢。
这是找到平衡的问题。
对于是否值得这样做的问题,这取决于您的设置。您应该测量应用程序的启动时间和执行时间并进行数学计算。
您应该考虑的另一件事是这可能需要的时间。还有提高服务器功能的解决方案,例如创建群集缓存和使用负载平衡器来拆分负载。您应该比较任务和工作所需的时间。