Wicket:“大内存占用!”,“ Wicket可扩展吗?”等。

| Wicket大量使用Session,这可能会导致具有大量页面的大型应用程序“占用大量内存”(如某些开发人员所述)。如果您要向《财富》 500强公司的许多CTO解释说,他们必须在大型Web应用程序部署中采用Apache Wicket,而他们对Wicket扩展问题的担忧只是一个错误的假设;你会怎么争论? PS: 这个问题只涉及 缩放。 技术细节和真实世界 实例非常受欢迎。     
已邀请:
以下URL满足了IMO在大规模部署中对Apache Wicket的信誉:http://mobile.walmart.com查看源代码。 另请参见http://mexico.com、http://vegas.com、http://adscale.de,并使用alexa查找这些域以查看其排名。 因此,是的,很有可能使用Wicket构建Internet规模的应用程序。但是,无论您使用的是Wicket,Struts,SpringMVC还是仅使用简单的旧JSP:Internet规模的软件开发都很困难。没有任何框架可以让您如此轻松。任何框架都无法通过为5M用户提供服务的下一个下一步向导来为您提供软件。     
好吧,首先,解释足迹的来源,主要是“ 0”。 下一步将是解释页面映射的作用,作用以及解决的问题(例如,后退按钮和弹出对话框)。问题必须以类似的内存成本手动解决,但开发成本和风险却要大得多。 最后,告诉他们如何影响页面映射,辅助页面缓存以及如何控制大小。 显然,您也可以向他们展示基准测试,但更好的选择是放下对马丁·达索斯特(Martijn Dashorst)的电话(尽管我相信他无​​论如何都在阅读这篇文章:)。 无论如何,我都会尝试提出两点: Wicket不会在内存中存储任何内容,您也不必将其存储在内存中。它组织得更好,更易于开发,保持一致并进行测试。 Java本身意味着您一直在不可避免地携带一些多余的行李。如果他们如此担心占地面积,那么也许Java根本不是他们想要使用的语言。有数百种使用其他语言编写的大型流量网站,因此这是一个完美可行的解决方案。他们最糟糕的事情是使用Java,承担过多的负担,然后不使用高级框架附带的优点。     
Wicket保存会话中的最后N页。这样做是为了能够在需要时更快地加载页面。在两种情况下,大多数情况下都需要使用它-使用浏览器后退按钮或在Ajax应用程序中。 我想,后退按钮很清楚,无需解释。 关于Ajax-每个Ajax请求都需要当前页面(会话缓存中的最后一页)在其中查找组件并调用其回调方法,更新某些模型等。 从它们的会话大小上完全取决于您的应用程序代码。对于任何Web框架来说都是相同的。 要缓存的页面数(上面的N个)是可配置的,即,根据应用程序的类型,您可以根据需要进行调整。即使没有内存高速缓存(N = 0),页面也会存储在磁盘中(再次可配置),并且将再次找到该页面,只是速度会慢一些。 关于一些参考: http://fabulously40.com/-具有许多用户的社交网络, 几个教育机构-我在美国知道两个,在荷兰知道一个。他们也有很多用户, 目前,我正在从事一个有望被数百万用户使用的项目。无论我们在哪里发现热点,Wicket 1.5都会得到改进。 发送给您的CTO ;-)     

要回复问题请先登录注册