美文网首页
《分布式缓存》读书笔记二

《分布式缓存》读书笔记二

作者: 真实的追梦者 | 来源:发表于2019-01-27 20:44 被阅读8次

    如果一个锁守护多个相互独立的状态变量,可以通过分拆锁,使每一个锁守护不同的变量,从而改进可伸缩性

    分拆锁有时候可以被扩展,分成若干加锁块的集合,并且使他们归属于相互独立的对象,这样的情况就是分离锁

    系统提倡服务无状态,分布式环境中任何节点也是无状态的,可以随意重启和替代,便于做扩展

    考虑幂等性设计

    C:任何的读写都应该看起来是“原子”的,或串行的,所有的读写请求都好像被全局排序

    A:对任何非失败节点都应该在有限时间内给出请求的回应

    P:允许节点之间丢失任意多的消息

    Paxos 理论简介

    Prepare 阶段:

    1.Proposer 发送 Prepare,生成全局唯一且递增的提案ID,向Paxos 集群的所有机器发送请求

    2.Acceptor 应答 Prepare

    Accept 阶段:

    1.Proposer 发送 Accept(Prepare阶段多数派返回值,就是超过 n/2+1,n为机器数)

    2.Acceptor 应答 Accept

     2PC:

    1.提交请求阶段确定相关参与者对于事务处理是否准备就绪

    2.提交阶段基于投票结果,由协调器决定提交事务或者是退出事务处理

    3PC在2PC的基础上增加了一次交互,既preCommit 预提交,只要预提交成功,则一定保证doCommit提交成功

    Raft角色类型:

    领导者:处理所有客户端交互,日志复制等动作

    选民:完全被动的角色,等待被通知投票

    候选人:选举过程中提名自己的实体,一旦选举成功,则成为领导者

     Gossip 去中心化分布式协议

    心跳检测:收到心跳可以确认节点正常,但是收不到心跳却不能确认该节点已经死亡

    缓存的结果为空也要进行缓存

    snowflake 优缺点

    优点:

    基于内存,很快快。

    没有什么依赖,实现也特别简单。

    可以根据实际情况调整各各位段,方便灵活。

    缺点:

    只能趋势递增。(有些也不叫缺点,网上有些如果绝对递增,竞争对手中午下单,第二天在下单即可大概判断该公司的订单量,危险!!!)

    依赖机器时间,如果发生回拨会导致可能生成 id 重复。

    LRU核心思想是如果数据最近被访问过,那么将来被访问的概率也更高

    相关文章

      网友评论

          本文标题:《分布式缓存》读书笔记二

          本文链接:https://www.haomeiwen.com/subject/mvpnjqtx.html