凤凰架构-读后感

凤凰架构

最近快速的读了周老师的凤凰架构开源版本书籍,学习到一些东西,包括数据库,网络,计算机基础等,关于数据库,着重介绍了事务相关的知识,事务又区分很多不同类型有本地事务、全局事务、共享事务以及分布式事务,事务的核心定义以就是 A (Atomic)原子性、I(Isolation)隔离性、D(Durability)持久性,这三点共同达到C(Consistency)一致性。 一个事务要不完全成功要不就完全失败,回滚。关于数据库,现在的高效数据库是操作和记录分离的,都是保存了最近的操作到log里,如果这个log在记录之后断电或者其他情况,数据库在恢复的时候会继续执行剩下的指令或者回退。

特别的,分布式事务一般有CAP特性,一致性(Consistency)、可用性(Availability)以及分区容忍性(Partition Tolerance),这三个在分布式里是不可能三角,无法兼顾所有,目前最常用的redis就是保证了AP(满足可用性,分区容忍性的系统,通常可能对一致性要求低一些),另外在解决这些分布式事务问题的时候,有一个比较经典的解法就是可靠事件队列,实际上就是一个while或者for循环一直在尝试完成某一个事件,完成之后走到下一步,一般地把最容易出错的事件放到前面,提早暴露问题,这个无限重试直到完成计算机里其实应用的地方很多例如多线程里最常用的那个CAS,就是compare and swap,就是一直尝试去比较是否相等,不相等就切换,CorrentHashMap就是使用cas和单个元素锁定去实现的锁安全。

HTTP 协议的无状态性决定了它必须依靠客户端缓存来解决网络传输效率上的缺陷。这个就是我们客户端缓存的前提,所以我们会存下来cookie等信息,通过解析cookie里面的东西去继续请求下一步或者其他。
域名解析:DNS 也许是全世界最大、使用最频繁的信息查询系统,如果没有适当的分流机制,DNS 将会成为整个网络的瓶颈。
内容分发网络(Content Distribution Network)
CDN 是一种十分古老而又十分透明,没什么存在感的分流系统,许多人都说听过它,但真正了解过它的人却很少。
负载均衡(Load Balancing)
调度后方的多台机器,以统一的接口对外提供服务,承担此职责的技术组件被称为“负载均衡”。

后面大多都是节选了,在看文章的时候还发现了很多算法的影子,现在也是理解了为什么应聘会考算法,因为很多经典的算法都是有实际应用的,即使没有我们工作中不会用到,但是却可以理解他的思想,遇到类似问题之后去借鉴解决。

原文地址:https://www.cnblogs.com/pjex/p/14871643.html