architecture - 预先生成资源表示

标签 architecture rest

我的假设是-

  • 表示形式有一个定义,该定义的上次修改日期。例如,上次修改脚本时,具有生成资源JSON表示形式的脚本。
  • 资源的持久性存储没有任何存储限制

  • 现在的情况是,我有一些资源,它们的表示形式可以是预先生成的生成的。其中预先生成的指的是修改资源(可以异步完成)时生成的text / html或application / atom + xml,而动态生成的指的是,例如,JSP / PHP脚本在以下情况下生成表示形式:要求。

    我感到困惑的是,上一代与即时生成的 +缓存有多少性能提升?您的经验/看法是什么?

    最佳答案

    您询问性能,但没有指出应该执行什么,因此我假设指标是“响应时间”。

    两种方法只是彼此的变体。预先生成只是一种不同的缓存方式。因此,实际上,唯一的区别是一个是“懒惰的”而另一个不是。

    因此,当所有资源都已缓存(并且不更改)时,延迟的差异将为零。但是性能差异会因以下几个参数而异:

  • 生成项目
  • 所需的时间
  • 每个项目更改的次数
  • 每个项目的访问频率oj​​it_rli

    引爆点是,是否对修改的项的访问频率比少。

    但是,还有许多其他因素需要考虑:
  • 预先生成的方案可扩展性更好,因为如果请求数量增加
  • ,它们不需要额外的CPU
  • 一个预生成方案是容错,因为应用程序的关键路径中没有数据库
  • 如果资源X的一次更改(例如,它被删除)导致其他数千个其他资源发生更改(例如,如果它们都链接到X),则很难执行预生成方案。与访问相比,这将增加资源被更频繁地修改的可能性。
  • 关于architecture - 预先生成资源表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3664273/

    相关文章:

    architecture - 重建遗留应用程序的策略

    architecture - DDD 中聚合根的行为是否应该作为参与者?

    node.js - 我在使用 Node.js 引用 MongoDB 中的嵌套子文档时遇到问题

    spring - 如何在 Spring Boot 应用程序中关闭 Spring Security

    java - 使用 Rest CXF 管理异常

    c - 单个编译的 C 程序如何在多种体系结构上运行?

    mysql - 如何使网站和 API 中使用的 SQL 查询保持通用

    java - 将领域模型与表示分离

    rest - WSO2 突触 : setting a URL parameter

    java - Jersey Web 应用程序类似 cron 的任务