我正计划为大数据和大流量实时构建一个网络应用程序。对数据库的输入需要对用户 100% 安全。它应该具有与原生界面相同的 UI 渲染速度。语言平台是 Java EE。
- 我可以使用什么框架以及需要考虑哪些预防措施?
- 我可以实现什么缓存机制?
- 哪个no-sql grid db好用?
我正计划为大数据和大流量实时构建一个网络应用程序。对数据库的输入需要对用户 100% 安全。它应该具有与原生界面相同的 UI 渲染速度。语言平台是 Java EE。
您应该将前端(客户端应用程序)与后端(服务器端 Java 应用程序)分离。服务器端应用程序应尽可能是 JSON API(最好是 RESTful)(100% 或接近,理想情况下)。前端应用程序应该使用一些专门设计用于构建 SPA(单页应用程序,你想要什么)的类似 MVC 的 JavaScript 框架。现在流行的有:Backbone.js、AngularJS、Ember.js、Knockout.js、Batman.js 等。我一直在使用并喜欢 AngularJS。然后,前端应用程序应该通过 AJAX 调用与 JSON API 通信。
这些框架可能看起来很重量级,但请记住,现在的浏览器非常快,谷歌的 V8(也包含在 Node.js 中)就是最好的例子。而且您正在构建大量用户界面逻辑,您需要一个复杂的解决方案来保持您的代码库可维护。
这是从传统的页面刷新方式到实现 Web 应用程序的一个相当大的范式变化,并且作为当今构建富互联网应用程序的标准方式,它获得了很大的吸引力。准备好将客户端应用程序作为一个功能齐全的应用程序来面对,因此请使用某种构建解决方案,例如 Grunt,或者利用它的更复杂和固执己见的工具,例如 brunch.io 和 yeoman.io。下一步甚至是编写单元测试(例如,使用 Jasmine)。
您可以在客户端应用程序上实现缓存,缓存来自 AJAX 调用的 JSON 响应,还可以使用 Memcached 甚至 Redis 数据库等工具在服务器端缓存一些数据,这些工具非常用于缓存经常访问的数据,包括会话管理。
您的最后一个问题“哪个 no-sql 网格数据库好用?” 相当复杂,需要进一步调查。现在有很多很棒的 NoSQL 解决方案。我认为你可以开始学习 NoSQL 数据库的四种主要数据模型,以及它的一些实现,看看哪些更适合你的应用程序模型。有关这方面的更多信息,请查看我刚刚发布的文章:
http://flsilva.com/blog/introduction-to-nosql
根据我的经验,首先想到的是使用胖客户端——可能利用 Dojo。在应用程序启动时提供尽可能多的演示数据作为元数据并存储在 DOM 中。AJAX 调用来执行任何服务器端功能。由于较少的服务器调用,将大部分处理和您的元数据保留在客户端将有助于将响应时间降至最低