构建可伸缩Java EE在线购物应用程序的最佳实践

时间:2012-08-26 08:16:17

标签: performance java-ee scalability

我想知道在设计在线购物应用程序时可以遵循的一些最佳实践。我很想知道以下几个方面。

  1. 可扩展性 - 我如何确保我的设计能够满足每年20%的用户预期增长的可扩展性视角。
  2. 性能瓶颈。
  3. 请分享关于这两方面的一些想法。

3 个答案:

答案 0 :(得分:0)

如果您不熟悉软件设计,可以从一些分层架构开始:

  1. DAO Layer
  2. 服务层
  3. 控制器/ UI层
  4. 通过应用这些图层,您可以在不增加任何问题的情况下扩展您的应用程序。

    示例:Stack Overflow

答案 1 :(得分:0)

正如该成员已经讨论过上述三层方法;我不会赘述。 但是我想你想从数据可扩展性的角度找到更多的解释。

对问题#1的回答: 越来越多的现代高数据密集型应用倾向于水平数据扩展方法。比如分享数据库,使用BigData或noSQL环境,允许数据库的水平可扩展性。

3层方法可以轻松实现这种可扩展性更改。

对问题#2的回答: 我不确定你的问题是否正确地阐述了瓶颈区域。后端/服务器端可能存在瓶颈[我假设您正在讨论基于Web的应用程序]或前端(浏览器端)。很抱歉,但很难详细说明“性能瓶颈”等广义术语。更具体的问题陈述可能有助于收到答案。

答案 2 :(得分:0)

在线购物应用程序我假设是类似MVC的东西。

  1. 我不会直接跳到noSQL数据库,除非您的数据集大小超过10GB或100GB。因为RDBMS可以很好地扩展。因此,如果您认为您的数据集将超出该范围,请继续使用noSQL。
  2. 这当然是一个广泛的问题。一些线索可能是:保持'分析'关注所有后端查询,关注所有api调用&所有的过程。它可以像db设计(表的常态)一样进一步扩展,索引(基于您的查询/搜索/其他标准要求)需要根据您的要求进行精心设计/思考。除此之外,最好遵循编码最佳实践,以确保您的代码库可以为您的开发人员维护。您可以关注this&那里有很多资源,包括专门用于前端和资源的资源。后端。这一切再次归结为您真正想要设计/开发的内容。 关于性能,您可能还需要像CacheonixApache ignite这样的分布式缓存机制,以确保服务器之间的缓存一致性。