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读取
将数据映射到本地
让数据库负担尽可能小
首先考虑无事务情况
创建数据库结构可替代技术
让数据库负担尽可能小
不要将业务逻辑放入数据库。没有存储过程,只有简单的一些触发器。
尽量不要让数据库进行复杂耗时查询及其计算。将这些工作移植到应用层,如排序,JOIN等。
最小化数据库事务
使用Auto-commit事务
无分布式事务,无客户端事务
有事务就有锁,避免事务就是避免锁。
避免耦合
可以实现并行更新
伸缩扩展应用层
根据不同业务领域分别部署。将不需要事务的业务从需要事务的业务中分离出来,使用异步EDA和同步SOA架构
正确对待不一致性
不要担心害怕不一致性,也不要苛求语言工具能够提供高可靠性 和高一致性。
使用事务是为了保证一致性,CAP原理适当降低一致性要求:切分缩小需要高一致性的需求。
转载于:https://blog.51cto.com/zlfwmm/1621600
EBay架构案例分析相关推荐
- 百分点推荐引擎——需求与架构——案例分析
百分点推荐引擎,实现了多种推荐算法,适应不同商务网站对不同推荐结果的要求. 为了设计大数据下.高可用高可靠.实时.可扩展.便于管理的推荐系统引擎. 百分点设计了如下推荐系统架构. 主要分4大部分:存储 ...
- 网购秒杀系统架构案例分析
秒杀活动的技术挑战 对现有网站业务造成冲击 高并发下的应用数据库负载 突然增加的网络及服务带宽 直接下单 秒杀系统的应对策略 秒杀系统独立部署 秒杀商品页面静态化 租赁秒杀活动网络带宽 动态生成随机下 ...
- 系统架构案例分析——(1)Web开发技术综述
1.技术目录 (保持更新) 2.服务器集群发展 (1)单机到数据库与Web服务器分离 (2)应用服务器集群诞生 集群产生的问题: ①用户请求如何转发 → 负载均衡问题 ②如何维护Session一致 ...
- 5.8架构设计原则案例分析
date comments categories tags permalink title 2020/3/15 true 软件架构 架构 原则 5.8 架构设计原则案例分析 前面介绍了架构设计的三条核 ...
- 大型网站技术架构:核心原理与案例分析阅读笔记二
大型网站技术架构:核心原理与案例分析阅读笔记二 网站架构设计时可能会存在误区,其实不必一味追随大公司的解决方案,也不必为了技术而技术,要根据本公司的实际情况,制定适合本公司发展的网站架构设计,否则会变 ...
- 《大型网站技术架构:核心原理与案例分析》笔记05
<大型网站技术架构:核心原理与案例分析>笔记05 网站的课扩展性架构: 扩展性:指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力.表现在系统基础设施稳定不需要经常变更,应用之间 ...
- 一文讲透大型网站架构模式核心原理与案例分析
什么是模式?每一个模式描述了一个在我们周围不断发生的问题及该问题解决方案的核心.这样,你就能一次又一次地使用该方案而不必做重复的工作. 也许互联网产品不是随便复制就能成功的,创新的产品更能为用户创造价 ...
- 阅读《大型网站技术架构:核心原理与案例分析》第五、六、七章
阅读<大型网站技术架构:核心原理与案例分析>第五.六.七章,结合我们的系统,分析如何增加相应的功能,提高系统的可用性和易用性. 这三章主要讲述的是网站的可用性.伸缩性和可扩展性. 高可用架 ...
- SOA架构设计和相关案例分析
一.SOA概念 1.定义: SOA,是一个组件模型,面向服务的体系架构,它将应用程序的不同服务通过这些服务之间定义良好的接口和契约联系起来,不涉及底层编程接口和通讯模型.服务层是SOA的基础,可以直接 ...
最新文章
- 11月29日云栖精选夜读:阿里传奇工程师多隆的程序世界
- 获得WebBrowser中的图片数据
- Kerberos简介,概述,协议内容,3次通信
- springboot 参数校验详解
- Twitter创始人Jack Dorsey的每日必做和不做清单
- Objective-C 日记③ 字符串
- java 类型 装箱和拆箱
- Seata分布式事务问题由来---微服务升级_SpringCloud Alibaba工作笔记0056
- 中国凝血测试耗材行业市场供需与战略研究报告
- mysql 内存太大被杀_数据库mysqld进程频繁被杀解决方案[终]
- 基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达
- JAVA的第一个小程序:Hello world
- asm冗余 oracle_ORACLE 11G RAC ASM磁盘的三种冗余模式
- Java:(游戏:豆机)
- 【TCP/IP】IP地址分类和特殊IP地址
- Sina weibo新浪微博 API返回信息详解
- 初探NIVIDIA GPU+CUDA+pyTorch
- 杂谈---一个项目经理的自我反省
- 那些仰望星空的人们,《三体》中看见区块链的未来
- SplendidCRM
热门文章
- “落花有意随流水,流水无情恋落花。”出处
- [软件工程]在线教程
- 接口测试工具-Jmeter使用笔记(九:跨线程组传递变量)
- 用postman做接口测试
- android制作下拉选择_Excel制作一、二、三级下拉菜单技巧,你一定不能错过
- php gzip 关闭,php能否在当前脚本页关闭nginx的gzip输出
- 自学Web前端有哪些误区?自学Web需要掌握哪些技术
- android webview 多次加载,android – 重复webview,我想在每个加载相同
- linux启动写入了mbr,一、Linux系统启动(MBR)
- shell的单引号与双引号