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

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

作者: 真实的追梦者 | 来源:发表于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核心思想是如果数据最近被访问过,那么将来被访问的概率也更高

相关文章

  • 分布式缓存学习总结

    一、分布式缓存简图 二、为什么使用Memcached分布式缓存呢? 三、Memcached基础原理 四、Memca...

  • 2.2-本地缓存和分布式缓存介绍+热点key的解决方案—小滴课堂

    本地缓存和分布式缓存介绍+热点key的解决方案 简介:介绍本地缓存和分布式缓存 分布式缓存 与应用分离的缓存组件或...

  • 缓存常见问题这一篇就够了

    一、缓存架构 上图是之前项目的缓存架构,加了二个级别的缓存:进程内缓存、分布式缓存。 读操作的思路:判断该缓存是否...

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

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

  • 4:Redis 分布式锁 (文末有项目连接)

    1:什么是缓存分布式锁 2:分布式锁的关键代码 3:业务代码使用分布式缓存锁 4:业务代码使用分布式缓存锁 5:测...

  • 缓存

    堆缓存堆外缓存磁盘缓存分布式缓存 Guava CacheEHcacheMapDBmemcachedTerracot...

  • Mybatis缓存

    三点:一级缓存,二级缓存,redis缓存(分布式系统一般使用这个) 1.一级缓存 一级缓存 localcache:...

  • 静态缓存和动态缓存(基于thinkphp测试)

    动态缓存 静态缓存有 浏览器缓存 磁盘缓存 内存缓存 CDN(分布式缓存) Nginx反向代理缓存

  • 【转】缓存在分布式系统中的应用

    【转】缓存在分布式系统中的应用 缓存在分布式系统中的应用 摘要 缓存是分布式系统中的重要组件,主要解决高并发,大数...

  • Java本地缓存

    引言 缓存是存储在内存中的KV数据结构,分为分布式缓存和本地缓存。 分布式缓存方案中,一般应用进程和缓存进程不在同...

网友评论

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

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