我们都是这么做的-分布式缓存的高可用方案 (我们都是这么长大的 粤语歌词)

教程大全 2025-07-20 17:57:05 浏览

分布式缓存的高可用方案,我们都是这么做的

2019-12-04 14:59:01我们讲到了当我们的系统面临持续增加的并发给我们的数据库磁盘IO带了了性能瓶颈,特此为我们的系统引入了缓存,并且学习了我们在开发中该怎么去正确的使用缓存的读写策略,同时结合案例给出一些建议防止数据不一致的情况,那我们的系统现在就是这样的架构了。

我们讲到了当我们的系统面临持续增加的并发给我们的数据库磁盘IO带了了性能瓶颈,特此为我们的系统引入了缓存,并且学习了我们在开发中该怎么去正确的使用缓存的读写策略,同时结合案例给出一些建议防止数据不一致的情况,那我们的系统现在就是这样的架构了。

如上图所示,我们在服务层和数据库层之间增加一个缓存层,现在我们读取数据的时候,先从缓存里面读取,读不到的再去读数据库。

既然我们引入了缓存,那肯定是想更多的请求尽量落在缓存上,也就是说我们必须要关注缓存命中率,命中率越高就代表我们的后端存储就越不容易被拖垮成为性瓶颈,如果我们的缓存命中率下降一定要看是什么原因,因为对于高并发请求哪怕下降1% 都是灾难。

比如,现在的系统QPS是10000,每次请求会查询10次的缓存,现在命中率突然下降了1%,也就是我有 10000 * 10 * 1% =1000次的请求落到了我们后端数据库MySql上了。这就代表了MySQL数据库面临突然增加的1000的并发,这是很危险的,基本普通机器mysql也只能抗大概2000的并发。所以,缓存命中率是要我们关注的。

现在只是下降1%就对系统影响这么大,那要是我们的缓存节点挂了,不可用了,那岂不是又回到了原点,请求都会打到我们的数据库中的。所以,我们在使用缓存一定要搭建高可用缓存,避免上面的单点缓存架构。今天,我们就来学习该怎么做缓存的高可用方案即搭建分布式缓存的高可用方案。

依据经验来说,对于分布式缓存高可用方案目前一般采用应用端、中间代理层以及服务端这三大方案。

接下来我们就来分别学习下这三种方案

应用端方案

在应用端也就是代码层面上,我们就需要自己管理缓存的读和写,也就是通过写代码方式来进行分布式缓存的写入和读取,主要是下面这两模块:

下面我们来看看该怎么进行设计,其实这种设计思路不一定局限在缓存上,我们大部分的底层开发都能用上,希望大家好好掌握

缓存数据如何分片

我们知道单节点的缓存因受到各种原因如本身机器内存、网络带宽等,从而不能承受更高的并发,所以我们需要将数据进行分片存储,即将数据通过分片算法打散到各个缓存节点中。其实这块大家有没有注意到和我们前面的分库分表很类似,所以大部分架构思想都是相通的。

现在我们的数据就在各个缓存节点都有一部分,即使部分故障,也是不影响我们整个业务的。那这个时候,你可能在想,既然数据需要被均匀分散到各个节点,那我该怎么来写这个分片算法呢?别急,我们下面就来看怎么写这个分片算法。

数据分片算法

一般做数据分片算法的有两种,大家应该都清楚吧,前面分库分表就有用到的

我们都是这么长大的 Hash分片算法

Hash分片算法就是我们拿到缓存的KEY,然后对其做hash运算,最后将hash运算的结果对缓存总节点数取余,得到的数字则为具体的分片节点。比如,现在我们缓存节点一共有 3 个,当我们写入数据的时候,将key进行hash运算hash(key),然后将结果对3取余就行了,如下图所示:

这种分片算法优点就是开发简单且容易理解,缺点就是当我们的缓存总节点数改变的时候,就会导致数据不均匀,则会造成大量缓存失效不可用的情况。但是这种算法我们开发中也是会使用的,比如我们的业务对于缓存的命中率不是那么太在意的,就可以使用这种hash分片算法。

一致性Hash分片算法

上面简单的Hash分片算法对缓存命中率要求较高的业务会有一定影响,所以一致性Hash分片算法就出来了,它很好的解决了因缓存节点的增加或减少带来的缓存命中率下降的问题。那我们就来看看它是怎么做的。

例如,下面key1 和 key2 就会进到 Node 1 里面,key3和key4 就会进到 Node 2 里面,key5 进到 Node3 中,key 6 则进到 Node 4 中去。

如上图所示,如果在 Node 1 和 Node 2 之间再加一个 Node 5,我们可以看到之前命中 Node 2 的 Key 3 现在就会命中到 Node 5,而其它的 Key 都没有变化;同样的道理,如果我们把 Node 3 从集群中移除,那么只会影响到 Key 5 。因此,在增加和删除节点时,只有少量的 Key 会跑到其它节点上,而大部分的 Key 命中的节点还是会保持不变,从而可以保证命中率不会大幅下降。

生产开发建议

我们在使用一致性哈希算法的时候,一定要设置缓存的过期时间,为什么这么说的呢?现在假设集群里面有两个节点分别为node1和node2,node1里面存放的(k,5),然后一客户端请求过来需要将5变成8,这个时候node1节点服务和客户端因网络问题断开连接了,那么这次的写入操作就会被路由到node2上了,等到node1网络好了恢复连接的话,客户端读取到node1 中k就为5,而其实这个k已经是8了,就造成了脏数据,所以我们需要设置过期时间。

Memcached 如何做主从机制

memcached不像redis本身支持主从复制机制,那我们该怎么保证memcached的高可用呢?其实和我们前面的数据库方案差不多的。

其主从复制优点就是当某一个 Slave 宕机时,还会有 Master 作为兜底,不会有大量请求穿透到数据库的情况发生,提升了缓存系统的高可用性。

中间代理层方案

上面的应用端方案基本能解决我们绝大部分问题了,现在主要是像有些公司技术语言比较多的话,这种就得每种语言都得开发一套,比如我们公司有java PHP 还有.

net之类的,那么这个时候就需要中间代理层来最好不过了,不需要业务方进行考虑这些复杂情况,直接连接代理层就行了

代理层自己管理缓存节点高可用,通过某种协议,如redis协议,来和各种语言业务端连接。业界也有很多中间代理层方案,比如 Facebook 的Mcrouter,Twitter 的Twemproxy,豌豆荚的Codis。基本架构如下:

如上图所示,中间层代理方案即所有缓存读写的操作都直接通过代理层完成,代理层自己完成上面应用端所有的操作。

服务端方案

服务端方案主要是缓存服务自己管理的,对于我们开发人员不用自己写代码管理也不用引入中间层,就是需要相关运维配置支持,比如redis的sentinel模式就是用来解决redis部署时高可用问题,它可以在主节点挂了以后自动将从节点提升为主节点,保证整体集群的可用。所以服务端对于我们开发影响不是太大,redis的sentinel我们还得需要知道的,后面会专门进行讲解。

总结,今天我们讲到了在使用缓存的时候为了避免单节点所带来的各种问题,所以我们需要搭建高可用缓存架构,共讲到了三种方案,应用端、中间代理层以及服务端方案,大家可以根据公司的资源情况来选择合适的方案。


宽带连接太慢了怎么办?

★★☆◆▼▲●■此答案属于“和谐”个人,复制可耻★★☆◆▼▲●■

产生这种情况原因很多:

1:你首先仔细检查网线和水晶(R45)头:水晶头与座是否插好(松动吗)?接触是否良好?接触电阻是多少?是否有积灰?是否氧化?水晶头与座机械闭锁是否已经闭锁?闭锁是否牢固?网络线与水晶头是否压紧并接触良好?网络线的线间绝缘电阻(采用100V的摇表),应大于20兆欧。

★★☆◆▼▲●■此答案属于“和谐”个人,复制可耻★★☆◆▼▲●■

2:点击电脑,再打开设备管理器,找到网络适配器点停用,再启动,可能就好了。

如果不行,你不要生气!没有憋死的牛,只有愚死的汉;…………………………….

3:如果再不行:看看下面方法,不妨采用你感觉可以接受的措施方法,对你的爱机进行彻底的整理一下,你就不会发生此类现象了。

★★☆◆▼▲●■此答案属于“和谐”个人,复制可耻★★☆◆▼▲●■A:经常上网的用户最多半年,要断电后打开设备的外壳(顺便检查设备内部连接是否良好,内存条是否松动,内存条与卡槽接触是否良好?各插件是否松动?插紧了没有?个连接点是否牢固并接触良好),清理设备里面的灰尘。

B:由于设备过电压、低电压、电压波动过大、过电流、发热,导致过热保护动作切出故障并将设备退出运行(即:会产生慢、延迟、重复启动、延迟、掉线、中断、断线、自动关机、死机等显现像)等;

★★☆◆▼▲●■此答案属于“和谐”个人,复制可耻★★☆◆▼▲●■

一:信杂比:(信号与杂音的比例)较小时,有用的信号被嘈杂的杂散信号所掩盖没(特别是码元间的码间干扰),使收信之路不能在嘈杂的信号里正确提取到有用的信号,判断电路就无法对码元进行正确的判断,就会产生丢包,严重的丢包就是延迟产生的原因,严重的延迟就会就是掉线(会产生慢、延迟、重复启动、掉线、延迟、掉线、中断、断线、自动关机、死机等显现像等),使用杂音计或电平表测量杂音电平是否在允许范围内,或者用示波器观察是否存在杂散信号?是否在码间存在码间干扰?采取措施,予以消除。

你也可以采取下面措施进行处理,并做好设备的接地屏蔽工作,很多干扰来自于屏蔽不好和接地不良,引起计算机慢、丢包、重复启动、延迟、掉线、中断、断线、自动关机、死机等显现像等。

★★☆◆▼▲●■此答案属于“和谐”个人,复制可耻★★☆◆▼▲●■

二:接收电平:接收信号不能太低,太低时,达不到接收之路需要的门槛电平幅度,设备不能正常工作;电平太高会使接收之路前置电路饱和或烧坏前置电路。 因此,接收电平调整十分重要。 使用电平表或示波器,调整连接处的接收电平在合适的幅度范围内。

★★☆◆▼▲●■此答案属于“和谐”个人,复制可耻★★☆◆▼▲●■

三:阻抗匹配:连接点必须做到阻抗相对的匹配,输入输出阻抗不匹配就会导致反射衰耗,信号再强也不能正常工作。

1:将设备置于对人较安全地方,首先断开电源,再打开设备的盒盖,利用空气对流加强与空气接触,进行自然散热;

★★☆◆▼▲●■此答案属于“和谐”个人,复制可耻★★☆◆▼▲●■2:给设备加装微型风扇,增大空气的对流,进行强制散热;3:如果你是做IT的,我建议你:断开电源后,给设备的发热部件加装散热片。4:设备断开电源后,用3毫米钻头在设备上下钻多多的孔,加强空气的对流量,改善散热条件;

★★☆◆▼▲●■此答案属于“和谐”个人,复制可耻★★☆◆▼▲●■5:将设备至于通风干燥处,最好做个(市面上也有用于笔记本的)绝缘散热支架,把设备支起来,进行自然散热;

6:计算机使用时间较长后,CPU与散热片之间的硅胶干枯时,CPU会严重的发热,会产生丢包、延迟、慢、重复启动、掉线、中断、断线、自动关机、死机等现像。 重新涂覆硅胶,即可恢复正常使用。

★★☆◆▼▲●■此答案属于“和谐”个人,复制可耻★★☆◆▼▲●■C:及时清除上网产生的垃圾碎片和IE缓存:只要你使用计算机就会产生垃圾,不及时清理,就会越积累越多,长时间不清理就会使运行C盘空间越来越小及杂乱无章,最后就逐渐的慢下来,直至死机;因此,定期整理运行C盘,可以保持计算机运行速度。 D:先让ADSL设备同步:把设备断电后重启。

E: 软件设置合理,做到3不装:非正规软件不装,P2P(占用资源)类软件不装,不常用软件不装.关掉所有不必要的网络连接,比如迅雷 BT 驴子等;

★★☆◆▼▲●■此答案属于“和谐”个人,复制可耻★★☆◆▼▲●■F:优化网络:人们打开计算机上网就会产生垃圾如同吃饭,不收拾餐桌、不刷洗餐具、不清理灶具一样会产生计算机垃圾,计算机就会逐渐表现为慢、卡、延迟、重复启动、掉线等故障;因此,个人推荐使用一些小工具: 比如超级兔子、优化大师、鲁大师或360等;养成下线前予以清理垃圾的好习惯。

G: 至少一款有效正版的杀毒软件:防火墙设置适当(不要过多、过高);病毒可使计算机变慢、死机、掉线、卡、重复启动和开关机故障。

H: 网卡问题:网卡带宽适当,工作稳定且散热良好。

做好接地,强弱信号分开走线,高低频信号分开走线;屏蔽接地良好;上网时,尽量避开上网高峰。

★★☆◆▼▲●■此答案属于“和谐”个人,复制可耻★★☆◆▼▲●■

只要你仔细的按照上面所说的做到、并保持经常做到,你的设备工作就顺畅,你的心情就舒畅;配置不高的计算机,也能使你十分满意;否则:配置再高的计算机也一样会频发故障;像人穿衣服(小品:好人和坏人中的陈佩斯:你给他再好的衣服,他都上不了档次!)一样,衣服不在档次高低洁净利索就是好。 无论你你配置多高,如若不按照计算机安全保养和使用方法去用,你就会故障不断、事故频发。 许许多多的故障都是人为的,事在人为!

★★☆◆▼▲●■此答案属于“和谐”个人,复制可耻★★☆◆▼▲

感谢你采纳我的答案!

仙人球开花稀奇吗

仙人球开花不稀奇怎样促成仙人掌和仙人球开花仙人掌、仙人球不能及早开花的原因很多,可分为两个方面。 一是与种质有关,即不同的种类到达开花需要的年份相差较大,短的播种后只需2年至3年,长的时间达20年至30年或更长。 二是与阳光、温度、肥料及繁殖方式有关。 为促成其及早开花,可从以下几个方面入手。 1.温度。 一般生长适温为 20℃ 至 30℃ ,并保持较大的昼夜温差,如白天保持 30℃ ,晚上 25℃ 以下。 避免夏季持续的闷热高温,当夏季气温在 30℃ 至 35℃ 时,大部分种类生长缓慢,超过 38℃ 时,进入被迫休眠。 冬季则应至少维持不低于 5℃ 的室温,以免出现冷害。 2.光照。 在栽培过程中只要温度条件许可,且不是多雨季节,应尽可能地将仙人掌类放到室外养护,因室外通风良好,紫外光较高,有利于植株生长健壮,及早达到生殖成熟。 3.培养土。 对陆生类仙人掌植物,可用壤土2份、腐叶土2份、河沙3份,外加陈灰墙屑1份混合配制。 4.水分。 浇水必须符合其原产地的自然降水规律,做到合理浇水。 一般陆生品种,在休眠期间应严格控制浇水,以保持盆土稍呈湿润、不过分干燥为度。 冬季室温达 15℃ 以上,可正常浇水。 当室温在 5℃ 至 10℃ 时每半月浇水一次,低于 5℃ 可以完全停水。 4月至6月,可每1天至2天浇水一次。 7月至8月当气温超过 38℃ 至 40℃ 时,植物被迫休眠,应加强通风,节制浇水,待秋凉后再恢复正常的浇水。 5.肥料。 生长季节增加施肥,可促成植株生长并能尽早开花。 一般气温高于 32℃ 、低于 20℃ 均应停止施肥,以免出现肥害伤根,导致植株死亡。 肥料可用鸡屎、马牛粪、饼肥、骨粉等,经充分腐熟后稀释浇施。 但应注意不要让肥液溅落于植株上,否则易招致掌体或球体腐烂。 此外还可适当浇施0.3%磷酸二氢钾或重过磷酸钙溶液。 施肥时应特别强调,新上盆的植株、生长不良的植株、根系发育不好的植株等不宜施肥。 未经充分发酵的有机肥不可浇施,含有盐分的肉汤、菜汤不可浇施。 外形奇特的仙人掌,居然会开出如此美丽的花朵,有的妖艳,有的淡雅,令人啧啧称奇,而这也正是仙人掌花朵的最大吸引力。 但许多人在亲自栽培仙人掌后,却发现要仙人掌开花是一件很不容易的事情。 到底如何才能使仙人掌开花?首先,品种的不同是一个非常重要的因素,其他如植株的年龄及大小也是不容忽视的因素。 除了这些与品种有关的因素外,栽培条件是否恰当也是一个主要因素,例如将盆栽仙人掌摆放在有充足阳光的地方,适当切除生长点,施用含氮量少的肥料,让其有适当的休眠期等,都是促使仙人掌开花的要领。 仙人掌及其水肥管理仙人掌类植物具有与众不同的生物学特性。 气孔在夜间凉爽时开放,呼出氧气,吸收二氧化碳,贮存在体内,供第二天光合作用之需。 白天气孔关闭,利用夜间固定的二氧化碳进行光合作用,这样既减少水分丢失,又能进行光合作用。 这种特殊的代谢途径是适应干旱环境保存生命的需要,也具有净化空气的作用。 在长期适应干旱的自然环境过程中,仙人掌类植物大多具有发达的侧根,可以延伸到很远的地方吸收水分。 仙人掌类植物具有很强的耐干旱、抗高温的特性,尤其能适应城市高楼林立,住宅区较为燥热的环境。 另外,它们中绝大多数生性强健,耐粗放管理。 养好仙人掌首先要从浇水、施肥等方面考虑:浇水、施肥与盆土有着十分密切的关系。 先说用土:仙人掌喜欢既含有足够营养又松散通透的土壤。 因此,必须配制专门的培养土才行。 可以用蛭石4份、细沙4份,充分腐熟腐殖质2份,掺匀拌和备用,配制成的培养土应手握勉强成团,松手即散为好。 虽然仙人掌是植物界里耐干旱的植物,但它与所有植物一样也离不开水。 浇水量应随季节不同而变化。 春季,掌握一个“适”字。 春季外界气温不高,只需要少量浇水就行了。 夏季,掌握一个“湿”字。 夏季阳光强烈,气温高,若浇水太多,可能引起烂根,但如缺水,植株有些会出现焦斑、皱缩现象,降低观赏价值。 经常给栽培场所喷雾,可增加空气湿度,降低环境温度,还可让茎部吸收水分。 秋季,掌握一个“多”字。 秋季,仙人掌类植物进入了旺盛生长阶段。 同时,有些花期在冬季的仙人掌类如蟹爪兰、仙人指等又在秋季进行花芽分化,需要充足的水肥,自然界也秋高气爽,雨水较少,应该多浇水。 冬季,掌握一个“控”字。 冬季,植株大多进入休眠状态,仅保持盆土潮润就可以了,这时若浇水过多可能引起茎基部腐烂。 不论哪个季节都应掌握“不干不浇,浇则浇透”的原则。 每一次浇水时,都要有少量水从排水孔流出来为止。 切不可浇“拦腰水”。 种植仙人掌类植物时需要适时适量地施肥,且肥料的种类、浓度、施用时机要得当。 在施肥时,应掌握富含磷、钾、钙和少氮的原则。 於清聪家开花的仙人球浑身黑绿,椭圆形,花色洁白如雪,花形和菊花有些像,但花叶不卷,且花柄细长,花蕊是一条细细的黄丝,一片片卵形花瓣相互簇拥,很是漂亮。 记者看到,於清聪的家还有一盆仙人球开出了6朵粉红色的花,花瓣粉嫩挺拔,与粗糙的球体形成强烈反差。 老於说,以往仙人球都是6月中下旬开花,花的数量最多也不超过6朵,花期一般只有一天。 现在一下子开出9朵花,真是让他兴奋不已。 “以前最多开两三朵,没这么多。 我看到开了这么多花,心里非常高兴。 ”老於的兴奋之情溢于言表。 老於种了20多年的花,在他家的院子里,记者还看到了好些其他品种的花卉。 为了让花开得灿烂,老於花了不少的心思。

氟斑牙怎么办,有什么方法可以治疗么?

你好!氟斑牙是由于高氟地区的水源长期对牙齿表面釉质的伤害而形成的。 这种不可逆的损害跟四环素牙原理是差不多的,只能修复和改善,不能逆转复原。 如果是已经出现钙化的症状,目前来说修复表面避免口腔酸液继续侵蚀,是最重要的。 一般有两种主要的改善方式:一种是烤瓷修复美白(视氟斑牙的不同程度,分为烤瓷贴面和牙套两种形式)。 这种修复美白的优点是烤瓷牙可以根据客户需要做得很白,如果牙龈不出问题,烤瓷牙还比较耐用,缺点是本来受到损害的氟斑牙,还要打磨后才能做烤瓷修复,掌握不好,这种损害会导致牙本质过敏,由于氟斑牙牙质本来不好,在烤瓷合金牙套的负荷下,也可能导致牙齿脆化而断掉,同时烤瓷修复对于牙龈健康状态的要求也很高,如果牙龈出现萎缩,烤瓷牙会松动乃至整个脱落;另一种是生物修复和自然美白。 这种美白方式可以不损害牙齿,达到自然美白的作用,具体你可以参看“我爱牙齿网”的相关专题。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐