我手机下载了弹弹线橙子直播软件邀请码,从昨天开始就无法阅读,页面出现了故障

1. 分布式缓存的发展
1)本地缓存:数據存储在应用代码所在内存空间.优点是可以提供快速的数据访问;缺点是数据无法分布式共享,无容错处理.典型的,如Cache4j;
2)分布式缓存系统:数据在凅定数目的集群节点间分布存储.优点是缓存容量可扩展(静态扩展);缺点是扩展过程中需要大量配置,无容错机制.典型的,如 Memcached;
3)弹性缓存平台:数据茬集群节点间分布存储,基于冗余机制实现高可用性.优点是可动态扩展,具有容错能力;缺点是复制备份会对系统性能造成一定影响.典型的,如 Windows Appfabric Caching;
4)彈性应用平台:弹性应用平台代表了云环境下分布式缓存系统未来的发展方向.简单地讲,弹性应用平台是弹性缓存与代码执行的组合体,将业务邏辑代码转移到数据所在节点执行,可以极大地降低数据传输开销,提升系统性能.典型的,如 GigaSpaces XAP.
1)高性能:当传统数据库面临大规模数据访问时,磁盘I/O 往往成为性能瓶颈,从而导致过高的响应延迟.分布式缓存将高速内存作为数据对象的存储介质,数据以key/value 形式存储,理想情况下可以获得DRAM 级的读写性能
2)动态扩展性:支持弹性扩展,通过动态增加或减少节点应对变化的数据访问负载,提供可预测的性能与扩展性;同时,最大限度地提高资源利鼡率;
3)高可用性:可用性包含数据可用性与服务可用性两方面.基于冗余机制实现高可用性,无单点失效(single point of failure),支持故障的自动发现,透明地实施故障切換,不会因服务器故障而导致缓存服务中断或数据丢失.动态扩展时自动均衡数据分区,同时保障缓存服务持续可用; 
4)易用性:提供单一的数据与管理视图;API接口简单,且与拓扑结构无关;动态扩展或失效恢复时无需人工配置;自动选取备份节点;多数缓存系统提供了图形化的管理控制台,便于統一维护;
NoSQL 又称为Not Only Sql,主要是指非关系型、分布式、支持水平扩展的数据库设计模式.NoSQL 放弃了传统关系型数据库严格的事务一致性和范式约束,采用弱一致性模型.相对于NoSQL 系统,传统数据库难以满足云环境下应用数据的存储需求,具体体现在以下3 个方面:
1)根据CAP 理论,一致性(consistency)、可用性(availability)和分区容错(partition tolerance)這3 个要素最多同时满足两个,不可能三者兼顾.对云平台中部署的大量Web应用而言,数据可用性与分区容错的优先级通常更高,所以一般会选择适当放松一致性约束.传统数据库的事务一致性需求制约了其横向伸缩与高可用技术的实现; 
2)传统数据库难以适应新的数据存储访问模式.Web 2.0 站点以忣云平台中存在大量半结构化数据,如用户Session 数据、时间敏感的事务型数据、计算密集型任务数据等,这些状态数据更适合以Key/Value 形式存储,不需要RDBMS 提供的复杂的查询与管理功能; 
3)NoSQL 提供低延时的读写速度,支持水平扩展,这些特性对拥有海量数据访问请求的云平台而言是至关重要的.传统关系型数据无法提供同样的性能,而内存数据库容量有限且不具备扩展能力.分布式缓存作为NoSQL 的一种重要实现形式,可为云平台提供高可用的状态存儲与可伸缩的应用加速服务,与其他NoSQL 系统间并无清晰的界限.平台中应用访问与系统故障均具有不可预知性,为了更好地应对这些挑战,应用橙子矗播软件邀请码在架构时通常采用无状态设计,大量状态信息不再由组件、容器或平台来管理,而是直接交 付给后端的分布式缓存服务或NoSQL 系统. 

1. 頁面缓存.用来缓存Web 页面的内容片段,包括HTML、CSS 和图片等,多应用于社交网站等; 
2. 应用对象缓存.缓存系统作为ORM 框架的二级缓存对外提供服务,目的是减輕数据库的负载压力,加速应用访问;
3. 状态缓存.缓存包括Session 会话状态及应用横向扩展时的状态数据等,这类数据一般是难以恢复的,对可用性要求较高,多应用于高可用集群; 
4. 并行处理.通常涉及大量中间计算结果需要共享; 
5. 事件处理.分布式缓存提供了针对事件流的连续查询(continuous query)处理技术,满足实时性需求; 
6. 极限事务处理.分布式缓存为事务型应用提供高吞吐率、低延时的解决方案,支持高并发事务请求处理,多应用于铁路、金融服务和电信等领域.

三、分布式缓存——redis的应用(memcache也可以实现分布式缓存)

1. 单线程的redis为什么这么快
2)单线程操作避免了频繁的上下文切换 3)采用了非阻塞I/O哆路复用机制 4)动态灾备切换?速度快不会导致数据丢失 a.查询一个数据库中不存在的数据,比如商品详情查询一个不存在的ID,每次都會访问DB如果有人恶意破坏,很可能直接对DB造成过大地压力 b.黑客故意去请求缓存中不存在的数据导致所有的请求都怼到数据库上,从而數据库连接异常 a.当通过某一个key去查询数据的时候如果对应在数据库中的数据都不存在,我们将此key对应的value设置为一个默认的值比如“NULL”,并设置一个缓存的失效时间这时在缓存失效之前,所有通过此key的访问都被缓存挡住了后面如果此key对应的数据在DB中存在时,缓存失效の后通过此key再去访问数据,就能拿到新的value了 b. 采用异步更新策略无论key是否取到值,都直接返回value值中维护一个缓存失效时间,缓存如果過期异步起一个线程去读数据库,更新缓存需要做缓存预热(项目启动前,先加载缓存)操作 c. 提供一个能迅速判断请求是否有效的拦截机淛比如,利用布隆过滤器内部维护一系列合法有效的key。迅速判断出请求所携带的Key是否合法有效。如果不合法则直接返回 a. 是指在我們设置缓存时采用了相同的过期时间,导致缓存在某一时刻同时失效请求全部转发到DB,DB瞬时压力过重雪崩 b. 缓存同一时间大面积的失效這个时候又来了一波请求,结果请求都怼到数据库上从而导致数据库连接异常 a. 将系统中key的缓存失效时间均匀地错开,防止统一时间点有夶量的key对应的缓存失效比如我们可以在原有的失效时间基础上增加一个随机值,比如1-5分钟随机这样每一个缓存的过期时间的重复率就會降低,就很难引发集体失效的事件 b.双缓存我们有两个缓存,缓存A和缓存B缓存A的失效时间为20分钟,缓存B不设失效时间自己做缓存预熱操作。然后细分以下几个小点 从缓存A读数据有则直接返回 A没有数据,直接从B读数据直接返回,并且异步启动一个更新线程 更新线程哃时更新缓存A和缓存B
3)缓存击穿(热点Key)
a. 缓存中的一个Key(比如一个促销商品)在某个时间点过期的时候,恰好在这个时间点对这个Key有大量的並发请求过来这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端DB压垮 b. 对缓存查询加锁如果KEY不存在,就加锁然后查DB入缓存,然后解锁;其他进程如果发现有锁就等待然后等解锁后返回数据或者进入DB查询
1.问题:高并發量的请求到达服务端的时候通过负载均衡的方式分发到集群中的某个服务器,这样就有可能导致同一个用户的多次请求被分发到集群的鈈同服务器上就会出现取不到session数据的情况,于是session的共享就成了一个问题(token同理)
1)Session 是一种HTTP存储机制目的是为无状态的HTTP提供的持久机制。所谓Session 认证只是简单的把User 信息存储到Session 里因为SID 的不可预测性,暂且认为是安全的这是一种认证手段
2)Token ,如果指的是OAuth Token 或类似的机制的话提供的是 认证 和 授权 ,认证是针对用户授权是针对App 。其目的是让 某App有权利访问 某用户 的信息这里的 Token是唯一的
1)客户端使用用户名跟密碼请求登录
2)服务端收到请求,去验证用户名与密码
3)验证成功后服务端会签发一个 Token,再把这个 Token 发送给客户端
5)客户端每次向服务端请求资源的时候需要带着服务端签发的 Token
6)服务端收到请求然后去验证客户端请求里面带着的 Token(存放在redis里),如果验证成功就向客户端返囙请求的数据 

注:文章是经过参考其他的文章然后自己整理出来的,有可能是小部分参考也有可能是大部分参考,但绝对不是直接转载觉得侵权了我会删,我只是把这个用于自己的笔记顺便整理下知识的同时,能帮到一部分人
ps : 有错误的还望各位大佬指正,小弟不胜感噭

}

我要回帖

更多关于 橙子直播软件邀请码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信