之前我在一篇blog中有提到一个例子,我称之为业务事务,其实可能定义有点偏颇,不过表达的意思很明确,即使用业务的方法来保证最终数据一致性,尽量避免使用分布式事务。
这几天我看到一篇文章,恍然大悟,才明白原来这种思想本来早就有了它的专业术语:BASE.
这里我来和大家分享一下,BASE其实是下面三个术语的缩写:
基本可用(Basically Available)
软状态(Soft state)
最终一致(Eventually consistent)
它的思想是通过让系统放松对某一时刻数据一致性的要求来换取系统整体伸缩性和性能上改观。为什么这么说呢,缘由就在于大型系统往往由于地域分布和极高性能的要求,不可能采用分布式事务来完成这些指标,要想获得这些指标,我们必须采用另外一种方式来完成,这里BASE就是解决这个问题的办法。
具体的理论基础,我也就不说了,这里我给大家推荐几篇更专业一点的文章,大家自己去研究研究吧:
1. http://www.infoq.com/cn/news/2008/03/ebaybase 很好的以ebay为例子的BASE介绍
2. http://www.ccs.neu.edu/groups/IEEE/ind-acad/brewer/index.htm 专门介绍BASE的PPT
3. http://www.infoq.com/cn/articles/ebay-scalability-best-practices 说起ebay,那我就推荐一个和base无关的,他的 架构介绍吧
4. http://www.infoq.com/cn/interviews/fengdahui-database-architecture 这个是支付宝数据库架构师冯大辉先生的见解
- 浏览: 1600797 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1585)
- Http Web (18)
- Java (194)
- 操作系统 (2)
- 算法 (30)
- 计算机 (45)
- 程序 (2)
- 性能 (50)
- php (45)
- 测试 (12)
- 服务器 (14)
- Linux (42)
- 数据库 (14)
- 管理 (9)
- 网络 (3)
- 架构 (83)
- 安全 (2)
- 数据挖掘 (16)
- 分析 (9)
- 数据结构 (2)
- 互联网 (6)
- 网络安全 (1)
- 框架 (9)
- 视频 (2)
- 计算机,SEO (3)
- 搜索引擎 (31)
- SEO (18)
- UML (1)
- 工具使用 (2)
- Maven (41)
- 其他 (7)
- 面向对象 (5)
- 反射 (1)
- 设计模式 (6)
- 内存数据库 (2)
- NoSql (9)
- 缓存 (7)
- shell (9)
- IQ (1)
- 源码 (1)
- Js (23)
- HttpClient (2)
- excel (1)
- Spring (7)
- 调试 (4)
- mysql (18)
- Ajax (3)
- JQuery (9)
- Comet (1)
- 英文 (1)
- C# (1)
- HTML5 (3)
- Socket (2)
- 养生 (1)
- 原理 (2)
- 倒排索引 (4)
- 海量数据处理 (1)
- C (2)
- Git (59)
- SQL (3)
- LAMP (1)
- 优化 (2)
- Mongodb (20)
- JMS (1)
- Json (15)
- 定位 (2)
- Google地图 (1)
- memcached (10)
- 压测 (4)
- php.性能优化 (1)
- 励志 (1)
- Python (7)
- 排序 (3)
- 数学 (3)
- 投票算法 (2)
- 学习 (1)
- 跨站攻击 (1)
- 前端 (8)
- SuperFish (1)
- CSS (2)
- 评论挖掘分析 (1)
- Google (13)
- 关键词分析 (1)
- 地图 (1)
- Gzip (1)
- 压缩 (1)
- 爬虫 (13)
- 流量统计 (1)
- 采集 (1)
- 日志分析 (2)
- 浏览器兼容 (1)
- 图片搜索引擎技术 (2)
- 空间 (1)
- 用户体验 (7)
- 免费空间 (1)
- 社交 (2)
- 图片处理 (2)
- 前端工具 (1)
- 商业 (3)
- 淘宝 (3)
- 站内搜索 (1)
- 网站收藏 (1)
- 理论 (1)
- 数据仓库 (2)
- 抓包 (1)
- Hadoop (105)
- 大数据 (6)
- Lucene (34)
- Solr (31)
- Drupal (1)
- 集群 (2)
- Lu (2)
- Mac (4)
- 索引 (9)
- Session共享 (1)
- sorl (10)
- JVM (9)
- 编码 (1)
- taobao (14)
- TCP/IP (4)
- 你可能會感興趣 (3)
- 幽默笑话 (7)
- 服务器整合 (1)
- Nginx (9)
- SorlCloud (4)
- 分佈式搜索 (1)
- ElasticSearch (30)
- 網絡安全 (1)
- MapReduce (8)
- 相似度 (1)
- 數學 (1)
- Session (3)
- 依賴注入 (11)
- Nutch (8)
- 云计算 (6)
- 虚拟化 (3)
- 财务自由 (1)
- 开源 (23)
- Guice (1)
- 推荐系统 (2)
- 人工智能 (1)
- 环境 (2)
- Ucenter (1)
- Memcached-session-manager (1)
- Storm (54)
- wine (1)
- Ubuntu (23)
- Hbase (44)
- Google App Engine (1)
- 短信 (2)
- 矩阵 (1)
- MetaQ (34)
- GitHub &Git &私/公有库 (8)
- Zookeeper (28)
- Exception (24)
- 商务 (1)
- drcp (1)
- 加密&解密 (1)
- 代码自动生成 (1)
- rapid-framework (1)
- 二次开发 (1)
- Facebook (3)
- EhCache (1)
- OceanBase (1)
- Netlog (1)
- 大数据量 (2)
- 分布式 (3)
- 事物 (2)
- 事务 (2)
- JPA (2)
- 通讯 (1)
- math (1)
- Setting.xml (3)
- 络驱动器 (1)
- 挂载 (1)
- 代理 (0)
- 日本語の (1)
- 花生壳 (7)
- Windows (1)
- AWS (2)
- RPC (11)
- jar (2)
- 金融 (1)
- MongDB (2)
- Cygwin (1)
- Distribute (1)
- Cache (1)
- Gora (1)
- Spark (31)
- 内存计算 (1)
- Pig (2)
- Hive (21)
- Mahout (17)
- 机器学习 (34)
- Sqoop (1)
- ssh (1)
- Jstack (2)
- Business (1)
- MapReduce.Hadoop (1)
- monitor (1)
- Vi (1)
- 高并发 (6)
- 海量数据 (2)
- Yslow (4)
- Slf4j (1)
- Log4j (1)
- Unix (3)
- twitter (2)
- yotube (0)
- Map-Reduce (2)
- Streaming (1)
- VMware (1)
- 物联网 (1)
- YUI (1)
- LazyLoad (1)
- RocketMQ (17)
- WiKi (1)
- MQ (1)
- RabbitMQ (2)
- kafka (3)
- SSO (8)
- 单点登录 (2)
- Hash (4)
- Redis (20)
- Memcache (2)
- Jmeter (1)
- Tsung (1)
- ZeroMQ (1)
- 通信 (7)
- 开源日志分析 (1)
- HDFS (1)
- zero-copy (1)
- Zero Copy (1)
- Weka (1)
- I/O (1)
- NIO (13)
- 锁 (3)
- 创业 (11)
- 线程池 (1)
- 投资 (3)
- 池化技术 (4)
- 集合 (1)
- Mina (1)
- JSMVC (1)
- Powerdesigner (1)
- thrift (6)
- 性能,架构 (0)
- Web (3)
- Enum (1)
- Spring MVC (15)
- 拦截器 (1)
- Web前端 (1)
- 多线程 (1)
- Jetty (1)
- emacs (1)
- Cookie (2)
- 工具 (1)
- 分布式消息队列 (1)
- 项目管理 (2)
- github (21)
- 网盘 (1)
- 仓库 (3)
- Dropbox (2)
- Tsar (1)
- 监控 (3)
- Argo (2)
- Atmosphere (1)
- WebSocket (5)
- Node.js (6)
- Kraken (1)
- Cassandra (3)
- Voldemort (1)
- VoltDB (2)
- Netflix (2)
- Hystrix (1)
- 心理 (1)
- 用户分析 (1)
- 用户行为分析 (1)
- JFinal (1)
- J2EE (1)
- Lua (2)
- Velocity (1)
- Tomcat (3)
- 负载均衡 (1)
- Rest (2)
- SerfJ (1)
- Rest.li (1)
- KrakenJS (1)
- Web框架 (1)
- Jsp (2)
- 布局 (2)
- NowJs (1)
- WebSoket (1)
- MRUnit (1)
- CouchDB (1)
- Hiibari (1)
- Tiger (1)
- Ebot (1)
- 分布式爬虫 (1)
- Sphinx (1)
- Luke (1)
- Solandra (1)
- 搜素引擎 (1)
- mysqlcft (1)
- IndexTank (1)
- Erlang (1)
- BeansDB (3)
- Bitcask (2)
- Riak (2)
- Bitbucket (4)
- Bitbuket (1)
- Tokyo Cabinet (2)
- TokyoCabinet (2)
- Tokyokyrant (1)
- Tokyo Tyrant (1)
- Memcached协议 (1)
- Jcrop (1)
- Thead (1)
- 详设 (1)
- 问答 (2)
- ROM (1)
- 计算 (1)
- epoll (2)
- libevent (1)
- BTrace (3)
- cpu (2)
- mem (1)
- Java模板引擎 (1)
- 有趣 (1)
- Htools (1)
- linu (1)
- node (3)
- 虚拟主机 (1)
- 闭包 (1)
- 线程 (1)
- 阻塞 (1)
- LMAX (2)
- Jdon (1)
- 乐观锁 (1)
- Disruptor (9)
- 并发 (6)
- 为共享 (1)
- volatile (1)
- 伪共享 (1)
- Ringbuffer (5)
- i18n (2)
- rsync (1)
- 部署 (1)
- 压力测试 (1)
- ORM (2)
- N+1 (1)
- Http (1)
- web开发脚手架 (1)
- Mybatis (1)
- 国际化 (2)
- Spring data (1)
- R (4)
- 网络爬虫 (1)
- 条形码 (1)
- 等比例缩放 (1)
- java,面向接口 (1)
- 编程规范 (1)
- CAP (1)
- 论文 (1)
- 大数据处理 (1)
- Controller (3)
- CDN (2)
- 程序员 (1)
- Spring Boot (3)
- sar (1)
- 博弈论 (1)
- 经济 (1)
- Scrapy (1)
- Twistedm (1)
- cron (1)
- quartz (1)
- Debug (1)
- AVO (1)
- 跨语言 (1)
- 中间服务 (2)
- Dubbo (4)
- Yarn (1)
- Spring OSGI (1)
- bundle (1)
- OSGI (1)
- Spring-Boot (1)
- CA证书 (1)
- SSL (1)
- CAS (7)
- FusionCharts (5)
- 存储过程 (3)
- 日志 (2)
- OOP (2)
- CentOS (5)
- JSONP (2)
- 跨域 (5)
- P3P (1)
- Java Cas (1)
- CentOS 6.5 Released – Installation Guide with Screenshots (1)
- Android (1)
- 队列 (2)
- Multitail (1)
- Maout (1)
- nohup (1)
- AOP (1)
- 长连接 (3)
- 轮循 (2)
- 聊天室 (1)
- Zeus (1)
- LSM-Tree (1)
- Slope One (1)
- 协同过滤 (1)
- 服务中间件 (1)
- KeyMeans (1)
- Bitmap (1)
- 实时统计 (1)
- B-Tree+ (1)
- PageRank (1)
- 性能分析 (1)
- 性能测试 (1)
- CDH (10)
- 迭代计算 (1)
- Jubatus (1)
- Hadoop家族 (8)
- Cloudera (2)
- RHadoop (1)
- 广告定价 (1)
- 广告系统 (9)
- 广告系统,架构 (1)
- Tag推荐算法 (1)
- 相似度算法 (1)
- 页面重构 (2)
- 高性能 (6)
- Maven3 (3)
- Gradle (11)
- Apache (1)
- Java并发 (1)
- Java多进程 (1)
- Rails (1)
- Ruby (3)
- 系统架构 (1)
- 运维 (36)
- 网页设计 (1)
- TFS (0)
- 推荐引擎 (0)
- Tag提取算法 (1)
- 概率统计 (1)
- 自然语言处理 (2)
- 分词 (1)
- Ruby.Python (1)
- 语义相似度 (0)
- Chukwa (0)
- 日志收集系统 (0)
- Data Mining (4)
- 开放Api (1)
- Scala (28)
- Ganglia (2)
- mmap (1)
- 贝叶斯分类 (1)
- 运营 (1)
- Mdrill (1)
- Lambda (2)
- Netty (5)
- Java8 (1)
- Solr4 (1)
- Akka (12)
- 计算广告 (2)
- 聊天系统 (1)
- 服务发现 (1)
- 统计指标 (1)
- NLP (1)
- 深度学习 (0)
最新评论
-
wahahachuang5:
web实时推送技术使用越来越广泛,但是自己开发又太麻烦了,我觉 ...
使用 HTML5 WebSocket 构建实时 Web 应用 -
秦时明月黑:
Jetty 服务器架构分析 -
chenghaitao111111:
楼主什么时候把gecko源码分析一下呢,期待
MetaQ技术内幕——源码分析(转) -
qqggcc:
为什么还要写代码啊,如果能做到不写代码就把功能实现就好了
快速构建--Spring-Boot (quote) -
yongdi2:
好厉害!求打包代码
Hadoop日志文件分析系统
发表评论
-
邻接表无向图---C语言
2016-08-26 16:06 966邻接表无向图的介绍 邻接表无向图是指通过邻接表表示的无向图 ... -
Dubbo分析一
2016-05-09 18:23 402Dubbo的总体架构如下图所示: 节点角色说 ... -
即时通信聊天工具的原理与设计
2015-03-13 15:11 734该软件采用P2P方式,各个客户端之间直接发消息进行会话聊天 ... -
从模拟真实世界中理解软件设计原则
2015-03-12 10:17 760软件设计原理的理论在大多数学生眼里既枯燥又乏味——那是因为他 ... -
架构师必读:淘宝网采用什么技术架构来实现网站高负载的
2014-06-18 12:22 815<iframe style=&qu ... -
97条架构师须知
2014-07-02 09:27 71697条架构师须知原载:http://architect.9 ... -
高性能web开发技术(一)
2014-05-05 09:22 7471. 数据库访问性能优 ... -
互联网系统架构的演进
2014-04-08 17:36 501多终端接入、开放平 ... -
天猫浏览型应用的CDN静态化架构演变(转)
2014-03-26 09:57 1137在天猫双11活动中,商品详情、店铺等浏览型系统,通常会承受 ... -
支撑4.5亿活跃用户的WhatsApp架构概览(转)
2014-03-06 10:42 1186以下为译文: 从WhatsApp软件架构师Rick Ree ... -
技术选型:效率至上与实用至上
2014-01-02 11:05 867当我们面对一个架构 ... -
LMAX架构(转)
2013-12-31 17:48 933LMAX是一种新型零售 ... -
可伸缩性最佳实践:来自eBay的经验(转)
2013-12-29 12:36 638在eBay,可伸缩性是我 ... -
ROM
2013-12-19 09:56 747http://zh.wikipedia.org/wiki/ ... -
人人网中间层-系统架构(重要)
2013-12-19 09:57 1386人人网中间层:问 ... -
国内图片网站Yupoo的架构
2013-12-19 10:01 1035一、先来看看Yupoo网站的基本信息: 带宽:4000M ... -
浅析Facebook的盈利模式(转)
2013-12-19 10:03 751作为全球最大的社交 ... -
Facebook 网站架构总结
2013-12-19 10:05 1003Facebook是一个社会化网络站点,它于2004年2月4 ... -
框架、模式、架构、构件、组件、中间件概要
2013-12-21 14:12 694简单来说:框架(Framework) 解决某一方面应用问题 ... -
一步步构建大型网站架构
2013-12-23 12:38 901谈谈一个网站一般是如何一步步来构建起系统架构的,虽然我们希 ...
相关推荐
BERT模型的核心思想是利用Transformer架构,通过预训练和微调的方式,使得模型能够理解文本的上下文信息,从而实现对语言的深入理解。在这个场景中,我们关注的是BERT的一个特定版本——"BERT-base-Chinese",这是一...
OneBase是一个免费开源的,快速、简单的面向对象的应用研发架构,是为了快速研发应用而诞生的。在保持出色的性能和新颖设计思想同时,也注重易用性。遵循Apache2开源许可协议发布,意味着你可以免费使用OneBase,...
OneBase是一个免费开源的,快速、简单的面向对象的应用研发架构,是为了快速研发应用而诞生的。在保持出色的性能和新颖设计思想同时,也注重易用性。遵循Apache2开源许可协议发布,意味着你可以免费使用OneBase,...
书中对OceanBase数据库源码进行了全面而系统的解析,覆盖了从数据结构、算法设计到查询、索引和事务处理等多个方面。书中还提供了一些实际应用场景中的案例进行分析,帮助读者更好地理解OceanBase数据库在实际应用中...
XLNet最初由Google的研究人员提出,其核心思想是对自注意力机制进行改进,通过Transformer架构实现更全面的上下文建模。Chinese-XLNet-BASE则是这一理念在中国语境下的实践,对于中文文本的理解和生成能力有了显著...
* 融入到整个技术体系中:前端基础架构需要具备融入到整个技术体系中的特点,能够与后端技术无缝结合,发挥技术最大能量。 前端基础架构的组成部分: * 代码风格Guidelines * 性能/可用性/可访问性技术文档 * 培训...
实践篇则以阿里巴巴的分布式数据库OceanBase的实现细节为案例,深入剖析了大规模分布式存储系统的架构与设计过程,分享了实践过程中的经验和教训。通过这个案例,读者可以具体地了解一个分布式数据库系统的内部实现...
通过下载并分析`jiajunhui-PlayerBase-7729853`这个压缩包,你可以深入理解PlayerBase的源码结构,学习如何集成和定制这个框架,以适应自己的项目需求。同时,它还可能包含示例代码、文档说明等资源,帮助你快速上手...
在jenly1314-Base-29c02c3这个版本中,我们可以期待找到上述所有组件和工具类的源代码,通过阅读和学习,开发者可以理解并借鉴其中的设计思想,进一步优化自己的项目。同时,这个库也可能是开源的,意味着社区的持续...
本文还提到了在OceanBase系统架构分析中发现的问题,即尽管OceanBase有多个数据存储节点和多个查询处理节点,但这些节点在处理join工作时尚无法实现协同工作。这个问题表明,仅仅有多个节点并不意味着系统性能就一定...
在Android 1.0版本时,虽然这个系统相对较新,但`framework/base`已经奠定了Android系统架构的基础。让我们深入探讨一下`framework/base`中的主要组成部分及其在Android 1.0中的作用。 1. **ActivityManagerService...
在掌握了以上知识点后,开发人员能够更加系统地了解如何利用Rails Engine来实现模块化的Rails应用,从而提高代码的复用性、可维护性和扩展性。通过拆分成组件,还能让团队分工更加清晰,提高开发效率,减少代码间的...
在深入学习Chrome Base模块时,开发者可以研究其源代码,了解这些功能的具体实现,从而更好地理解和优化Chrome的性能,或者将这些设计思想应用到自己的项目中。通过分析压缩包中的"base"文件,我们可以看到这些核心...
OceanBase 0.5 的架构设计基于分布式存储和计算的思想,旨在实现高可用性、可扩展性和高性能。系统主要由以下几个组件构成: - **RootServer**:作为全局元数据的管理者,RootServer 负责维护系统中所有数据表的...
OneBase是一个免费开源的,快速、简单的面向对象的应用研发架构,是为了快速研发应用而诞生的。在保持出色的性能和新颖设计思想同时,也注重易用性。遵循Apache2开源许可协议发布,意味着你可以免费使用OneBase,...
- UML (Unified Modeling Language): 描述系统结构和行为的标准建模语言。 - 类图: 展示类及其关系。 - 用例图: 描述系统功能。 **2.3 面向对象编程** - **实践**: - 使用类和对象: 实现具体的逻辑和功能。 -...
#### 四、BASE24-es体系结构与演进 BASE24-es采用了先进的分层架构设计,以支持高效、安全的支付处理。随着时间的推移,这一架构经历了不断的优化和升级,以适应不断变化的技术环境和客户需求。例如: - **1995年*...
7. **扩展性与插件架构**:为了方便扩展和定制,Base类库通常会包含插件系统或者扩展点设计,允许开发者通过继承或实现特定接口来添加新的功能。 8. **异常处理和日志记录**:良好的错误处理和日志记录能力是软件...
企业数据中台体系的顶层架构一般包括数据集成层、数据服务层、数据应用层。数据集成层负责数据的收集和整合;数据服务层提供数据建模、加工和分析服务;数据应用层则是面向不同业务场景提供数据产品和服务。这样的...