EBay架构案例分析

 

EBAY可伸缩性策略

  • 1、 Partition Everything 切分万物,能划分尽量划分 从领域数据到功能
  • 2、 Asynchrony Everywhere 处处异步 EDA和消息广播
  • 3、 Automate Everything 全部自动 保证专注自动配置 自动回复
  •     机器学习
  • 4、 Remember Everything Fails 记录失败
  • 5、 Embrace Inconsistency与狼共舞,与不一致回旋。在CAP原则下权衡。亲不同是谓大同
  • 6、 Expect (R)evolution 预言演变
  • 7、 Dependencies Matter 重视依赖
  • 8、 Be Authoritative 独断专行
  • 9、 Never Enough Data
  • 10、Custom Infrastructure 自定义基础设施

eBay 切分分层

  • scaling 数据层     数据存储分离 松耦合
  • scaling应用层
  •    应用显示 控制 领域之间实现分层

scaling 数据层

  • 按功能分段划分不同主机。再在段内再水平分割:
       读写分离 write master/read slave

      尽可能以主键Key读取
      将数据映射到本地

  • 让数据库负担尽可能小
  • 首先考虑无事务情况
  • 创建数据库结构可替代技术
ebay

让数据库负担尽可能小

  • 不要将业务逻辑放入数据库。没有存储过程,只有简单的一些触发器。
  • 尽量不要让数据库进行复杂耗时查询及其计算。将这些工作移植到应用层,如排序,JOIN等。

最小化数据库事务

  • 使用Auto-commit事务
  • 无分布式事务,无客户端事务
  • 有事务就有锁,避免事务就是避免锁。
  • 避免耦合
  • 可以实现并行更新

伸缩扩展应用层

ebay


 

  • 根据不同业务领域分别部署。将不需要事务的业务从需要事务的业务中分离出来,使用异步EDA和同步SOA架构


 

正确对待不一致性

  • 不要担心害怕不一致性,也不要苛求语言工具能够提供高可靠性 和高一致性。
  • 使用事务是为了保证一致性,CAP原理适当降低一致性要求:切分缩小需要高一致性的需求。

一致性

 

 

集群专题

伸缩性scalable

Netflix的亚马逊云计算平台使用

FaceBook大数据架构

SOA

REST