[英]Server Rendering: Prefetching data Performance
我有一个运行良好的React Redux服务器渲染的应用程序。
当我转到其他页面时,我测量了一些服务器响应时间:
在我的/ singin页面上,我在60毫秒内收到了响应。 好。
在我的/ user页面上(需要身份验证),我在300毫秒内收到了响应。 因为服务器必须通过要求API知道用户是否有权访问此页面来预取当前用户会话和当前用户
在我的/ user / graph页面上。 我在600毫秒内收到响应。 因为服务器必须通过询问API预取当前用户会话,当前用户和图形数据。
主要问题是我无法并行处理所有这些请求。
这是服务器流:
这是我的问题:
这是服务器流:
- 接收
/user/graph
页面请求- 并行获取
/api/user/session
和/api/user/me
- 用React-Router进行路由匹配(它需要知道用户是否已通过身份验证)
- 此时,服务器知道将要渲染的组件。 对于它们中的每个,它并行获取所需的数据。 这意味着获取
/api/graph
,/api/graphConstants1
,/api/graphConstants2
等。- 反应渲染
这看起来很完美对我来说,这是一件多么微服务基础架构应该表现。
如您所说,大多数API调用都是并行进行的 ,因此不必担心连续的API调用之间的延迟。
主要问题是我无法并行处理所有这些请求。
但是,您可以要求API团队为所需的微服务提供一个伞形API。 在这种情况下,API团队需要处理并行或多线程处理。
并行获取
/api/user/session
和/api/user/me
看起来,您正在调用/api/user/session
以验证用户的session
。 但是,您不应该利用/api/user/me
caching
。
我猜/api/user/me
这是一个GET
请求,这是减少此类调用的一种方法。 该data
通过这个API发送可以很容易地发送的signin
API,如果登入成功,高速缓存数据。
在对用户数据进行任何更新时,即在任何POST
, PUT
, DELETE
调用上,都可以清除现有的缓存数据,并且API可以返回用户的最新状态,这些状态将用于预热缓存。
PS:这种决定不能/必须在StackOverflow答案上做出,但需要API提供商和使用者之间进行深入的讨论和达成共识。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.