- 博客(15)
- 资源 (1)
- 收藏
- 关注
原创 小白学分布式程序开发14-MQ
消息队列(MQ)——什么是MQ消息队列(MQ)是一种应用程序之间的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。
2017-08-28 13:33:26
316
原创 小白学分布式程序开发13-幂等性
幂等性(Idempotence):分布式架构的基石,即同一个操作无论请求多少次,其结果都相同。在以前的单应用系统中,我们只需要把数据操作放入事务中即可,发生错误立即回滚,但是再响应客户端的时候也有可能出现网络中断或者异常等等。举个最简单的例子:*支付用户购买商品时使用网上支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会
2017-08-21 11:02:30
379
原创 小白学分布式程序开发12-PAXOS算法例子
例子 现有两个商人各有一个项目需要通过审批,但只有一个项目能通过,两人开始展开激烈的争夺。 商人A先找了官员1和官员2进行贿赂,官员1和2分别收取了¥10,等商人找到官员3时,没想到遭到了官员3的鄙视,官员3告诉他,商人B给了¥12。不过没关系,商人A已经得到了1,2两个官员的认可,形成了多数派。他可以进入提案采纳阶段了。 但是此时商人B
2017-08-16 09:55:06
340
原创 小白学分布式程序开发11-PAXOS算法1
Paxos的两个原则1、安全原则:保证不能做错的事a. 只能有一个值被批准,不能出现第二个值把第一个覆盖的情况b. 每个节点只能学习到已经被批准的值,不能学习没有被批准的值2、存活原则:只要有多数服务器存活并且彼此间可以通信最终都要做到的事a. 最终会批准某个被提议的值b. 一个值被批准了,其他服务器最终会学习到这个值
2017-08-16 09:23:38
345
原创 小白学分布式程序开发10-PAXOS算法
今天我们要学习的是莱斯利·兰伯特提出的PAXOS算法,我们先来了解一下莱斯利·兰伯特。简介: 莱斯利·兰伯特(LaTex软件创始人)是一名计算机科学家,同时他也是微软研究院首席研究员、美国国家工程院和科学院院士.主要成就: 时间、时钟和相对论、面包店算法、拜占庭将军问题、Paxos算法、抽象的正确性。 2013
2017-08-09 10:29:33
306
原创 小白学分布式程序开发9-三阶段提交
三阶段提交与两阶段提交不同的是,三阶段提交有两个改动点。1、引入超时机制。同时在协调者和参与者中都引入超时机制。 2、在第一阶段和第二阶段中插入一个准备阶段。保证了在最后提交阶段之前各参与节点的状态是一致的。 CanCommit阶段
2017-08-03 09:22:57
380
原创 小白学分布式程序开发8-二阶段提交的缺点
上次我们讲了二阶段提交,今天我们就接着来讲讲二阶段提交的缺点1.同步阻塞问题执行过程中,所有参与节点都是事务阻塞型的。当参与者占有公共资源时,其他第三方节点访问公共资源不得不处于阻塞状态。举例:接上一篇的例子,如果Jim是打电话到小白的宿舍里,小白用宿舍的公用电话来接,那么宿舍里的其他人想打电话只有等在小白后面了。2.单点故障由于协调者的重要性,一旦
2017-07-31 16:23:00
1074
原创 小白学分布式程序开发7-二阶段提交
什么是二阶段提交?先举个简单的例子来说明:小白程序猿训练营组织周末爬山的活动,组织者是Jim。第一阶段,Jim作为“协调组织者”,给小白和小明(参与者)发微信,组织他们俩明天8点在学校门口集合,一起去爬山,然后开始等待小白和小明答复。第二阶段,如果小白和小明都回答没问题,那么大家如约而至。如果小白或者小明其中一人回答说“明天没空,不行”,那么Jim会
2017-07-24 14:28:06
328
原创 小白学分布式程序开发6-BASE理论
什么是BASE理论?BASE理论是eBay架构师Dan Pritchett在对大规模分布式系统的实践总结基础上提出的,BASE理论是对CAP理论的延伸,核心思想是即使无法做到强一致性(Strong Consistency,CAP的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性(Eventual Consitency)。BASE是指:基本可用
2017-07-18 12:57:02
426
原创 小白学分布式开发5——CAP理论
今天我们来学分布式系统中CAP理论吧~一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。程序猿小白:一致性、可用性和分区容错性是什么意思呢? Consistency 一致性一致性指"all nodes see the same data at t
2017-07-12 15:19:48
530
原创 小白学分布式程序开发3-分布式系统的数据一致性问题
今天我们来探讨一下分布式系统的数据一致性问题(What?Why?)数据一致性其实是数据库系统中的概念。我们可以简单的把一致性理解为正确性或者完整性,那么数据一致性通常指关联数据之间的逻辑关系是否正确和完整。我们知道,在数据库系统中通常用事务(访问并可能更新数据库中各种数据项的一个程序执行单元)来保证数据的一致性和完整性。而在分布式系统中,数据一致性往往指的是由于数
2017-07-03 13:00:11
318
原创 小白学分布式程序开发2-分布式架构下系统间交互的5种通信模式
分布式架构下系统间交互的5种通信模式1、request/response模式(同步模式) 客户端发起请求一直阻塞到服务端返回请求为止。普通的HTTP请求都属于同步模式。2、Callback(异步模式) 客户端发送一个RPC请求给服务器,服务端处理后再发送一个消息给消息发送端
2017-06-28 16:38:16
2186
原创 小白学分布式程序开发1-分布式的特点
初步了解分布式系统的定义及其6大特点:分布性、对等性、并发性、缺乏全局时钟、故障总是会发生点、处理单点故障。
2017-06-28 12:41:39
438
原创 欢迎关注小白程序猿的博客
大家好,我是小白程序猿。步入程序猿这个行业,有没有让你很有成就感呢?IT是一门新技术日新月异的职业,不能靠着死记硬背就能学的好。学习一门新技术,要知其然知其所以然,才能融会贯通,做到学以致用。欢迎大家关注小白程序猿的博客,我们会带领大家走上正确的学习道路!
2017-06-28 09:53:06
370
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人