java - 设计可扩展的基于 Web 的应用程序的关键因素

标签 java scalability web-applications

目前我正在开发基于网络的应用程序。我想知道设计人员在设计可扩展的基于 Web 的应用程序时应注意哪些关键因素?

最佳答案

这是一个相当模糊和广泛的问题,你可以写书。你能走多远?在某些时候,SQL JOIN 的性能会崩溃,您必须实现一些分片/分区策略。你说的是这个水平吗?

一般原则是:

  • 缓存所有静态内容(图像、CSS、Javascript)并对其进行版本控制;
  • 将此类内容放在另一个域中以阻止不必要的 cookie 流量;
  • GZip/deflate 一切;
  • 只执行需要的Javascript;
  • 永远不要使用 Javascript 做您可以在服务器端做的事情(例如,使用 CSS 设置表格行的样式,而不是使用奇特的 jQuery 奇数/偶数技巧,这可能是实时 killer );
  • 尽量减少外部 HTTP 请求。这意味着只有很少的 CSS、Javascript 和图像文件。这可能意味着实现某种形式的 CSS spriting 和/或组合 CSS 或 JS 文件;
  • 在必要时使用服务器端缓存,但只有在您发现问题后才使用。内存是一种昂贵但通常有效的折衷方案,可提高性能;
  • 测试和调整所有数据库查询;
  • 尽量减少重定向。

关于java - 设计可扩展的基于 Web 的应用程序的关键因素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1284736/

相关文章:

spring - 如何在spring mvc框架中运行后台进程

java - 如何获取文件的路径但没有实际的文件名

java - 使用 Tomcat 扩展 SpagoBI 应用程序

multithreading - (何时)并行排序实用,您如何编写有效的排序?

mysql - 在本地主机上使用 OpenSSL 连接到 MySql 数据库

database - 将 cookie 保存在数据库中(代表用户发出请求)

java - 获取TFS java sdk中的测试计划列表

JavaFX Spinner 抛出 IllegalArgumentException : The start must be <= the end

java - 什么架构?在集群中分布内容构建

go - 如何分析 Golang Web 应用服务器