Web层
- 主体架构可以基于 Struts 1.X/2.X,当然有很多更好的控制层框架供选择,以快速敏捷为准则吧。
- 抽象出核心库封装 控制器和中间层 的操作。
- 在大规模集群环境下,session复制会引起严重的性能问题。考虑用 集群缓存 + cookie验证 代替session实现权限控制吧。
Cache层
- 配置 Memcache 组成集群缓存
- 对 Memcache 客户端进行封装
- Memcached 节点组成池,调用示意:opList (BizName, 策略 ...)
中间层
“中间层”可以理解为基于应用和数据之间的层次。它被设计用来为Web应用提供:数据缓存 和 对应用透明的数据访问——即应用不需要考虑数据表拆分的问题。以服务的方式提供对存储层的高性能调用以及分布式计算。可供选择的框架:
- ICE
- Hadoop
- 直接基于Memcache开发(减少复杂度,推荐)
存储
推荐MySQL,理由:免费,经过实践检验,有大量成熟的案例、解决方案、技术支持。
- 小规模:一个 data table 维护存储服务器阵列,内容 -> mount ……
- 大规模:Master-Slave模式+MySQL Proxy,实现数据库读写分离。在中间层的包装下,可做如下扩展,以支持更大规模的数据存取:
- 数据库/表水平拆分,例 User -> User33% + User33% + Use