文章分类 -  分布式系统

摘要:Quorum机制是为了保证分布式系统中的数据一致性。 强一致性:任意时刻从不同副本取出的值是相同的。 弱一致性:由于网络延迟和设备异常等原因,从不同副本拿到的值可能不同,但是一段时间后会相同。 1.WARO协议 为了达到强一致性的效果,Write All Read One是最好的办法,即写入数据时, 阅读全文
posted @ 2022-02-27 16:47 Cheung-10
摘要:1.分布式锁 现在的系统都是微服务模型,即各种组件单独运行在逻辑独立的机器中,之间通过rpc等方式调用并完成服务。 也因此数据的保存和数据的计算往往不在同一个地方,需要一个分布式框架的“全局锁”。其余所有系统都需要通过它获取锁。 实现分布式锁功能的,可以是redis这样的缓存数据库,也可以是MySQ 阅读全文
posted @ 2022-02-23 16:36 Cheung-10
摘要:1.雪崩效应 目前的后台服务通常是由多个组件完成,或者多个服务会被实现为多个微服务。用户发情请求后,会出现多个服务的链式调用来完成整个操作。(如 检查参数->查询缓存->查询数据库) 当调用链的某一步失效时,可能导致流量穿透到下一个服务,导致下一个服务崩溃(如缓存击穿导致数据库崩溃),最终导致整个后 阅读全文
posted @ 2022-02-21 16:43 Cheung-10
摘要:在使用分布式缓存的时候,可以将数据分区保存在不同节点上,以扩大存储能力。 另外一种思想是不同节点备份相同数据,以提高读响应速度(如redis主从模型)。 以下是集中分片策略(算法) 1.range Based算法 按照关键值将数据划分到不同区间,每个缓存节点保存一个区间内的数据,需要保证关键值的连续 阅读全文
posted @ 2021-10-26 15:32 Cheung-10
摘要:1.缓存回收策略 FIFO(First In First Out) LRU(Least Recently Used)清除求救没有用过的数据 LFU(Least Frequently Used)清除一段时间内使用频率最小的数据 2.缓存一致性策略 消息队列修改方案 应用修改完自身缓存和数据库数据后,向 阅读全文
posted @ 2021-10-26 11:26 Cheung-10
摘要:参考博客:https://www.cnblogs.com/xuwc/p/13699205.html 设想一个用户请求数据到返回的过程,数据会经过: 浏览器->CDN->代理服务器->应用服务器->数据库服务器,每个位置都可以使用缓存技术来提高响应速度,降低访问需求量。 例如:浏览器缓存的脱机网页文件 阅读全文
posted @ 2021-10-26 11:16 Cheung-10
摘要:1. 缓存和数据库模型下的数据读写流程 读模型 1)判断缓存是否有数据,若有则返回。 2)判断数据库是否有该数据,若无则返回为空。 3)若数据库有数据,则写入缓存,随后(由缓存)返回数据。 写模型 写模型的策略各有不同,不过一般认为应当先更新数据库再更新缓存,这是因为需要先将数据持久化保存,来确保数 阅读全文
posted @ 2021-10-26 10:08 Cheung-10
摘要:当请求流过大时,可能导致服务接口不可用或者整个服务系统崩溃。 一般解决办法为引流或者限流,常用的限流算法包括漏桶和令牌桶算法。 1.漏桶算法 即将请求缓存在桶中,桶底限制一个最大速率来对接口进行请求。 漏桶算法可以限制请求的平均数量,但当需要允许某些突发传输情况时可能不合适。 2.令牌桶算法 系统以 阅读全文
posted @ 2021-10-26 09:43 Cheung-10