《架构设计之[CAP定理]》读后感
现在有许多互联网项目都是采用分布式结构进行部署。而cap定理是分布式系统中最近出的原则。所以对于哦我们来说,学习cap非常重要。CAP定理又称为布鲁尔定理。CAP定理是指对于一个分布式系统,不能同时满足一致性,可用性,分区容错性。
一致性(Consisteny)是指,对于任何客户端来说,每次的读操作,都能获得最新的数据。即。当有客户端向A节点写入了新数据之后。从节点B读到的数据也是最新的,与A节点数据保持一致。可用性(Availability)是指,每个请求都能在合理的时间内获得符合预期的响应。简而言之,只要客户端发起请求时,必须给客户回复,不用保证回复的值是否正确。分区容错性(Partition tolerance)是指当节点之间的网络出现问题后,系统依然能正常提供服务。
应用CAP定理,共有两个架构:cp架构和ap架构。(1)Cp架构是一致性和分区容错性的组合。该结构是指当节点a和节点b不能通讯时,有客户端向节点A进行写入,A节点不接受写入。这样就保证了节点A和节点B的一致性。当客户端请求读出数据时,节点返回网络出现问题之前的数据,这样就保证了分区容错性。(2)ap架构是可用性,分区容错性的组合架构。该结构是指当节点a和节点b不能通讯时,有客户端向节点A进行写入,A节点接受写入。当数据从节点B读出数据时,读出的还是节点a和节点b不能通信时的a的数据,不能读出a新增的数据。但是由于系统能照常提供服务,所以满足了可用性的要求。
Cp和ap架构可以自不同情况下进行应用,例如:在电商系统中,属于用户模块的数据(账密,钱包余额等)对一致性要求没那么高,但是为了照顾用户体验没所以对可用性要求更高一点,那么这个模块可以采用ap架构。
除了cp架构和ap结构,还有ca架构。但是当系统发生网络故障时不能使用ca架构。但是在我们的生活中大多数时间没有网络故障,所以可以采用ca架构。
学习完cap感觉对我们以后设计架构软件时比较有用,尤其是分布式部署系统时,根据具体的功能需求,舍弃掉或放松一些cap特性。当我们不能全都满足时,挑选重要的体位性进行满足,让用户体验更加好。
《架构设计之[CAP定理]》读后感的更多相关文章
- 《DevOps软件架构师行动指南》读后感
从软件架构师视角讲解了引入DevOps实践所需要拥有的技术能力,涵盖运维.部署流水线.监控.安全与审计以及质量关注,这是本书一开始内容简介的开头,本书的作者是伦恩·拜斯(Len Bass).英戈·韦伯 ...
- nodejs开发指南读后感
nodejs开发指南读后感 阅读目录 使用nodejs创建http服务器; supervisor的使用及nodejs常见的调式代码命令了解; 了解Node核心模块; ejs模板引擎 Express 理 ...
- DevOps:软件架构师行动指南(文摘)
第一部分 背景 第1章 DevOps是什么 第二部分 部署流水线 第三部分 横切关注点 第四部分 案例研究 第五部分 走向未来
- 2020年DevOps工程师入门指南
DevOps兴起于2010年代,到现在DevOps已经在行业中拥有了一席之地,并在继续发展壮大. 有兴趣成为一名DevOps工程师吗?如果想要成为一名DevOps工程师,需要做到以下五点: 要有开发者 ...
- 5月29日 Java性能调优指南 读后感
并行垃圾收集器 串行垃圾收集器 并发标记清除(CMS)垃圾收集器 Garbage First(G1)垃圾收集器 没有深入的学习G1的原理,只是看了大概的思想; SA工具:待学习
- 敏捷开发、DevOps相关书籍——书单
自己瞎整理的一些书单,都是豆瓣评分比较高的书,可以作为选择的一个参考. 书名 豆瓣链接 持续交付:发布可靠软件的系统方法 https://book.douban.com/subject/6862062 ...
- 有奖试读—Windows PowerShell实战指南(第2版)
为什么要学PowerShell? Windows用户都已习惯于使用图形化界面去完成工作,因为GUI总能轻易地实现很多功能,并且不需要记住很多命令.使得短时间学会一种工具成为可能. 但是不幸的是,GUI ...
- [转载]你所不了解的DevOps
DevOps开发运维训练营 一旦建立了创新的文化,即使那些并非科学家或者工程师的人——诗人.演员.记者——也能以团体的形式,接受科学文化的意义.他们信奉创新文化的概念.他们以促进这种文化的方式投票.他 ...
- 给 DevOps 初学者的入门指南
当我们谈到 DevOps 时,可能讨论的是:流程和管理,运维和自动化,架构和服务,以及文化和组织等等概念.那么,到底什么是"DevOps"呢? 什么是DevOps 随着软件发布迭代 ...
- CI Weekly #3 | 关于微服务、Docker 实践与 DevOps 指南
CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...
随机推荐
- Android Touch 事件总结
---恢复内容开始--- 1.Touch事件传递机制 过程有点儿类似于栈, ViewGroup的子类有都继承它的以下3个方法: public boolean dispatchTouchEvent(Mo ...
- 常用的String方法Math方法
Arrays.sort();冒泡排序字符串.charAt(i);字符串索引i上的字符Integer.prsent(字符串) 字符串转整数equals(Object anObject) 将此字符串与指定 ...
- 理解Javascript的Prototype
在Javascript中创建对象主要分为三种方式 1. var catA = {name: "Fluffy", color: "White", age: 0}; ...
- 那些原生的javascript APIs
在前端开发的时候,我们往往会使用javascript 框架,使用框架的好处多多,提供的方便的操作函数,类继承机制,MV*等,让我们能够快速开发,然而我们应该清楚这些框架都是基于浏览器原生api的封装, ...
- BZOJ 2460 [BeiJing2011]元素(线性基模板题)
Description 相传,在远古时期,位于西方大陆的 Magic Land 上,人们已经掌握了用魔法矿石炼制法杖的技术.那时人们就认识到,一个法杖的法力取决于使用的矿石.一般地,矿石越多则法力越强 ...
- ArcGis Android 10.2.6更新文档翻译
ArcGis Android 10.2.6更新文档翻译 @[ArcGis Android|10.2.6|更新文档] 本文描述了ArcGIS Runtime SDK for Android 10.2.6 ...
- SOLR企业搜索平台 一 (搭建SOLR)
前提是已经安装了java的环境,环境变量的配置不做为讲解,网上也有大量资料.下面以linux为例来说明如何搭建好一个solr 1)首先下载solr,下载地址:http://mirror.bit.edu ...
- 【git】常用命令
// 下载Git项目git clone url // 显示当前git配置git config --list // 设置用户信息git config --global user.name "& ...
- [NetCore学习记录]第一章.使用netcore撸个简单的增删改查
1.引言 2.解决方案各部分介绍图 3.添加数据模型 4.添加数据库上下文 5.修改配置文件 6.使用依赖关系注入容器注册数据库上下文 7.添加基架工具并执行初始迁移 1.引言 NetCore出来有一 ...
- jenkins+docker+docker machine 远程部署
dotnet publish -c Release docker build -t microtest:1.0 --build-arg microport=1000 -f "$WORKSPA ...