Wicket:“大内存占用!”,“Wicket规模?”等等

时间:2011-05-25 21:29:09

标签: scalability wicket

Wicket大量使用会话,这可能意味着“大内存占用”(如某些开发人员所说)对于包含大量页面的大型应用程序。如果您要向财富500强中的一群CTO解释他们必须采用Apache Wicket进行大型Web应用程序部署,并且他们对Wicket扩展问题的担忧只是糟糕的假设;你会争论什么?

PS:

  • 这个问题只涉及到 缩放。
  • 技术细节和现实世界 例子非常受欢迎。

3 个答案:

答案 0 :(得分:6)

以下网址满足大规模部署中Apache Wicket的IMO可信度:http://mobile.walmart.com查看源代码。

另请参阅http://mexico.comhttp://vegas.comhttp://adscale.de,并使用alexa查看这些域名以查看其排名。

所以,是的,很有可能使用Wicket构建互联网规模应用程序。但无论你是否使用Wicket,Struts,SpringMVC,或者只是普通的旧JSP:互联网规模的软件开发都是 hard 。没有框架可以让你轻松。没有框架可以为您提供具有为5M用户提供服务的下一个完成向导的软件。

答案 1 :(得分:4)

首先,请解释足迹的来源,主要是PageMap

下一步是解释页面映射的作用,它的用途以及解决的问题(例如后退按钮和弹出对话框)。问题,必须以类似的内存成本手动解决,但开发成本和风险要大得多。

最后,告诉他们如何影响页面映射中的内容,辅助页面缓存以及如何控制大小。

显然你也可以向他们展示基准,但可能更好的选择是向Martijn Dashorst放弃一条线(尽管我相信他还在阅读这篇文章:))。

无论如何,我会尝试两点:

  1. 内存中没有Wicket存储,无论如何你都不需要存储在内存中。它只是组织得更好,更容易开发,保持一致和测试。
  2. Java本身就意味着你一直带着一些不可避免的超重行李。如果他们如此担心足迹,那么Java可能根本就不是他们想要使用的语言。有数百个以其他语言编写的大型交通网站,因此这是一个完美可行的解决方案。他们可以做的最糟糕的事情是使用Java,承担超重的行李,然后使用高级框架带来的优势。

答案 2 :(得分:1)

Wicket会在会话中保存最后N页。这样做是为了能够在需要时更快地加载页面。主要在两种情况下需要它 - 使用浏览器后退按钮或在Ajax应用程序中。 我认为后退按钮很清楚,无需解释。 关于Ajax - 每个ajax请求都需要当前页面(会话缓存中的最后一页)来查找其中的组件并调用其回调方法,更新某些模型等。 从他们的会话大小完全取决于您的应用程序代码。任何Web框架都是一样的。 要缓存的页数(N以上)是可配置的,即根据应用程序的类型,您可以根据需要调整它。即使没有内存缓存(N = 0),页面也会存储在磁盘中(再次可配置),页面会再次被查找,只会慢一点。

关于一些参考文献:

  1. http://fabulously40.com/ - 拥有众多用户的社交网络,
  2. 几个教育网站 - 我在美国知道两个,在荷兰知道一个。他们也有很多用户,
  3. 目前我正在开展一个预计将被数百万用户使用的项目。无论我们在哪里找到热点,Wicket 1.5都会得到改进。
  4. 将此信息发送给您的首席技术官; - )