预测师的分布式理论入门学习总结

分布式-来源

在架构学习的这篇文章里,简单介绍下了架构的演化,分布式的出现是在单机不够用的情况下,横向扩展计算机处理能力的一种手段。
分布式主要解决了两个问题,一个是单机系统容量不够用的问题(分布式增加了容量),一个是单机单点的问题(分布式是高可用的)。

分布式-如何学习

带着问题学习,思考分布式为什么会出现(解决单机的处理能力有限的问题),出现带来了什么问题(数据一致性问题),是如何解决的(各种分布式协议)。

分布式计算-概念

关于分布式计算在WIKI上这样写道:

“在计算机科学中,分布式计算(英语:Distributed computing),又译为分散式运算。这个研究领域,主要研究分布式系统(Distributed system)如何进行计算。分布式系统是一组电脑,透过网络相互连接传递消息与通信后并协调它们的行为而形成的系统。[1]组件之间彼此进行交互以实现一个共同的目标。把需要进行大量计算的工程数据分割成小块,由多台计算机分别计算,再上传运算结果后,将结果统一合并得出数据结论的科学。分布式系统的例子来自有所不同的面向服务的架构,大型多人在线游戏,对等网络应用。

目前分布式计算项目通常使用世界各地上千万志愿者计算机的闲置计算能力,通过互联网进行数据传输(志愿计算)。如分析计算蛋白质的内部结构和相关药物的Folding@home项目,该项目结构庞大,需要惊人的计算量,由一台电脑计算是不可能完成的。虽然现在有了计算能力超强的超级计算机,但这些设备造价高昂,而一些科研机构的经费却又十分有限,借助分布式计算可以花费较小的成本来达到目标。”

分布式-难题

1.不可靠的网络:多台机器的分布式架构下,TCP协议显得没有那么可靠
2.不可靠的时钟:多台机器的时间同步问题,使之无法精确测量时间
3.普遍的节点故障:单个节点故障发生的时候,分布式系统如何保证可用性
4.由此可能产生的问题:数据不一致性,测试、运维复杂,排障链路长

分布式-重点

1.幂等性

关于分布式幂等性在WIKI上这样写道:
在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,“setTrue()”函数就是一个幂等函数,无论多次执行,其结果都是一样的,更复杂的操作幂等保证是利用唯一交易号(流水号)实现。

幂等性的解决方案视业务进行选择,针对前端重复提交可以用缓存token机制验证,针对接口重复调用可以用数据库唯一索引验证,应调研不同业务选择最合适的方案。

2.事务
后面单独出一篇文章来写

3.数据一致性
数据一致性
后面单独出一篇文章来写

分布式-理论

1.CAP理论
2.BASE理论

分布式-技术

1.分布式缓存

1.Redis/ES

2.分布式存储

分布式数据库
后面单独出一篇文章来写

3.分布式锁

1.Mysql
2.Zookeeper
3.单机Redis
4.RedLock
后面单独出一篇文章来写

分布式-实现

XXL-JOB
后面单独出一篇文章来写

分布式-学习资料

MIT课程

你可能感兴趣的:(后端成神之路,分布式,java,程序人生,经验分享,后端)