eBay架构介绍

by Yan Sheng

eBay原则

  • 每一层都要支持水平伸缩, 按功能划分; 数据层/应用层/搜索/操作的伸缩;
  • 优选异步方式为系统间交互的方式;
  • 减少系统间物理依赖以及提升部署的灵活性;
  • 自动化的错误诊断和通知,业务功能的降级支持.

对应的四点架构模式:

  • 能分则分
  • 能异步则异步
  • 能自动化则自动化
  • 记住所有失败的事

智能化, 智能的推荐, 用户请求的智能回答..基于用户数据的收集和分析.

大型网站架构

  1. 物理分离webserver和数据库

  2. 增加页面缓存: squid,前端相对静态的页面缓存技术

  3. 增加页面片段缓存: ESI, 让动态页面里相对静态的部分也缓存起来

  4. 数据缓存,,将重复获取的数据缓存起来

  5. 增加Web server.

    • 负载均衡, LVS
    • 保持状态信息的同步, 如用户session, 写入数据库, 写入存储, cookie或同步session信息等机制.
    • 如何保持数据缓存信息的同步, 考虑的机制有缓存同步或分布式缓存
    • 如何让上传文件这些类似的功能继续正常, 考虑的机制有使用共享文件系统或存储.
  6. 分库策略, 就是数据库的分割,,,, 分库规则?修改程序

  7. 分表, DAL和分布式缓存,,,分表规则(动态hash算法, consistent hash算法)?修改程序. 通用的框架以实现分库分表的数据访问, 在ebay的架构中对应的就是DAL(数据库连接的管理, 超时,异常, 数据库操作的控制, 分库分表规则的封装).. 分布式缓存方案.

  8. 增加更多的Web server,,,

  9. 数据读写分离和廉价存储方案,,,

  10. 进入大型分布式应用时代和廉价服务器集群梦想时代

高性能, 稳定的通信框架; 业务调整, 系统依赖关系的控制;

最终的架构简图

http://www.blogjava.net/images/blogjava_net/bluedavy/arch/10.PNG

其他

开源的MogileFS作为分布式文件存储系统

Other