课件的引子

人们说哲学是门装逼的科学,我也是一个很能装的人,而且今天肯定能装的清新脱俗。
一、Unix哲学
Unix的人生哲学:短小即是美。我梦想能活在Unix的世界中,就像许多女生想回到唐朝一样。
Kafka、Storm、Spark、Hadoop、Redis等这些程序都专注自己的事,没有把上上下下的活都自己干。每个程序都专注于自己擅长的事,并且都擅长与其他成员合作。所以他们都那么小、那么瘦、还那么美。
二、传说
程序员的江湖中流传着这样一个传说:编程中的多数问题,都可以通过增加一层间接性来解决; 这也就是程序的劳动分工,软件的功能越复杂,程序的功能划分就会越清晰。
例:操作系统、虚拟机、代理 CISC AISC  Reduced Instruction Set Computer


程序员的江湖中还流传着这样另一个传说:软件运行中的性能问题,多数情况下可以通过减少一层间接性来解决。
例:C++ 相对 Java, IOS相对Android 


所有的分布式都是在单机计算基础上增加一层或多层间接性。
三、分布式
分布式:花最少的钱,干最多的活,出问题了还不担责任。
比如我是一个老实巴交的北方农民,没钱买三头强壮的牛的去拉犁耕田。但我一千鸡,怎样用这一千鸡,把三头牛的能干活给做了。这样做还有一个额外的好处:一千鸡死个十个八个,活还照干,牛要是病例一、二头,肯定歇菜。
如何让一千鸡协同去拉犁,这光是耐性的考验,更是管理、协调能力的考验,这正是分布式技术要做的事情。
分布式是一个群体作战的技术,以量取胜,很适合咱们的国情。
四、数据一致性
本地程序有两种状态:成功、失败。
分布式的三态:成功、失败、超时;
因此分布式最核发的问题之一:数据一致性。常用数据同步算法有三种:2段提交、3段提交和Paxos。
4.1 2PC
Two-phase commit。问题:阻塞、数据不一致问题、单点问题。
阶段一:提交事务请求(投票阶段)
阶段二:执行事务提交(执行阶段)
4.2 3PC
问题:解决2PC的阻塞,但还是可能造成数据不一致。
Three-Phase Commit,三阶段提交,分为CanCommit、PreCommit、do Commit三个阶段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值