启动一个新项目的电子商务,基本上由两个主要的分离项目组成:核心应用程序和Web客户端。
核心应用程序将充当服务提供者,Web客户端(或其他客户端)的后端,在REST-ful Web服务/ JSON中公开其所有功能。
Web客户端将充当核心应用程序的前端和服务使用者。
这两个项目主要基于:Spring,Apache CXF,Maven以及Tomcat或Jetty。 Git作为VCS。 CouchDB作为DB。也是像Memcached这样的分布式缓存系统。
原则是设计项目(核心和Web),以便在互联网上的几个节点上进行扩展和分发。
也许这个主题太大而且复杂,无法在一个主题中讨论;我们的想法是在继续实施之前制定有助于做出正确决策的主要标题。
问题:
答案 0 :(得分:0)
在服务器端,您应该以这样的方式构建URL和应用程序状态,即它们可以静态生成并通过Apache等Web服务器提供,也可以由app服务器动态生成和提供。静态内容生成可以是一种非常有效,相当简单的方法来提高性能。无论如何,将API点与实现无关是一种很好的做法。
High Performance Websites有一些很棒的东西。另外,请查看Squid以获取HTTP缓存。
答案 1 :(得分:0)
看看CQRS原则。尽管很好的可扩展性只是应用CQRS的副作用,但它理想地适用于cloud computing,其主要目标是提供弹性可伸缩性。 Here is来自Greg Young班级的精彩视频。
PS。尽管大多数材料都基于.NET堆栈,但这些原则是跨平台的。
答案 2 :(得分:0)
@Ellead:通过Tomcat集群(会话复制):http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html
在spring中处理单例对象(记住每个JVM的单例)
答案 3 :(得分:0)
您没有提到性能和负载测试 - 您应该衡量应用程序的性能和可伸缩性:
不要期待或猜测任何事情并尽快开始 - 只有这样才能为你节省财富。
对于基于REST的解决方案,请查看Apache httpd和mod_jk以获取负载平衡。