From eab1787b7a602745ef1dcab0c33af91fdff9eb5c Mon Sep 17 00:00:00 2001 From: guide Date: Sat, 17 Oct 2020 10:09:09 +0800 Subject: [PATCH] =?UTF-8?q?[feat]cap=E7=90=86=E8=AE=BA=E8=A1=A5=E5=85=85?= =?UTF-8?q?=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 14 +++-- .../high-availability/BASE理论.md | 0 .../high-availability/CAP理论.md | 59 ++++++++++++++++++ .../high-availability/images/cap/cap.png | Bin 0 -> 56966 bytes .../images/cap/dubbo-architecture.png | Bin 0 -> 15546 bytes ...可用系统?要考虑哪些地方?.md | 0 6 files changed, 68 insertions(+), 5 deletions(-) create mode 100644 docs/system-design/high-availability/BASE理论.md create mode 100644 docs/system-design/high-availability/CAP理论.md create mode 100644 docs/system-design/high-availability/images/cap/cap.png create mode 100644 docs/system-design/high-availability/images/cap/dubbo-architecture.png rename docs/system-design/{website-architecture => high-availability}/如何设计一个高可用系统?要考虑哪些地方?.md (100%) diff --git a/README.md b/README.md index 9cfabc72..aec6f64d 100644 --- a/README.md +++ b/README.md @@ -224,17 +224,17 @@ 如果你没有接触过 Java Web 开发的话,可以先看一下我总结的 [《J2EE 基础知识》](docs/java/J2EE基础知识.md) 。虽然,这篇文章中的很多内容已经淘汰,但是可以让你对 Java 后台技术发展有更深的认识。 -#### Spring/SpringBoot +#### Spring/SpringBoot (必看 :+1:) -**知识点/面试题:** (必看 :+1:) +**知识点/面试题:** 1. **[Spring 常见问题总结](docs/system-design/framework/spring/SpringInterviewQuestions.md)** 2. **[SpringBoot 指南/常见面试题总结](https://github.com/Snailclimb/springboot-guide)** **重要知识点详解:** -1. **[Spring/Spring 常用注解总结!安排!](./docs/system-design/framework/spring/SpringBoot+Spring常用注解总结.md)** (必看 :+1:) -2. **[Spring 事务总结](docs/system-design/framework/spring/spring-transaction.md)** (必看 :+1:) +1. **[Spring/Spring 常用注解总结!安排!](./docs/system-design/framework/spring/SpringBoot+Spring常用注解总结.md)** +2. **[Spring 事务总结](docs/system-design/framework/spring/spring-transaction.md)** 3. [Spring 中都用到了那些设计模式?](docs/system-design/framework/spring/Spring-Design-Patterns.md) #### MyBatis @@ -332,12 +332,16 @@ RPC 让调用远程服务调用像调用本地方法那样简单。 ### 高可用 -高可用描述的是一个系统在大部分时间都是可用的,可以为我们提供服务的。高可用代表系统即使在发生硬件故障或者系统升级的时候,服务仍然是可用的 。相关阅读: **《[如何设计一个高可用系统?要考虑哪些地方?](docs/system-design/website-architecture/如何设计一个高可用系统?要考虑哪些地方?.md)》** 。 +高可用描述的是一个系统在大部分时间都是可用的,可以为我们提供服务的。高可用代表系统即使在发生硬件故障或者系统升级的时候,服务仍然是可用的 。 + +相关阅读: **《[如何设计一个高可用系统?要考虑哪些地方?](docs/system-design/high-availability/如何设计一个高可用系统?要考虑哪些地方?.md)》** 。 #### CAP 理论 CAP 也就是 Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性) 这三个单词首字母组合。 +关于 CAP 的详细解读请看:[《CAP理论解读》](docs/system-design/high-availability/CAP理论.md)。 + #### BASE 理论 **BASE** 是 **Basically Available(基本可用)** 、**Soft-state(软状态)** 和 **Eventually Consistent(最终一致性)** 三个短语的缩写。BASE 理论是对 CAP 中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结,是基于 CAP 定理逐步演化而来的,它大大降低了我们对系统的要求。 diff --git a/docs/system-design/high-availability/BASE理论.md b/docs/system-design/high-availability/BASE理论.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/system-design/high-availability/CAP理论.md b/docs/system-design/high-availability/CAP理论.md new file mode 100644 index 00000000..381cda57 --- /dev/null +++ b/docs/system-design/high-availability/CAP理论.md @@ -0,0 +1,59 @@ +![](images/cap/cap.png) + +## 简介 + +**CAP** 也就是 **Consistency(一致性)**、**Availability(可用性)**、**Partition Tolerance(分区容错性)** 这三个单词首字母组合。 + +CAP 理论的提出者布鲁尔在提出 CAP 猜想的时候,并没有详细定义 Consistency、Availability、Partition Tolerance 三个单词的明确定义。 + +因此,对于 CAP 的民间解读有很多,一般比较被大家推荐的是下面 👇 这种版本的解。 + +在理论计算机科学中,CAP 定理(CAP theorem),又被称作 **布鲁尔定理(Brewer’s theorem)**,它指出对于一个分布式系统来说,当设计读写操作时,只能能同时满足以下三点中的两个: + +- **一致性(Consistence)** : 所有节点访问同一份最新的数据副本 +- **可用性(Availability)**: 非故障的节点在合理的时间内返回合理的响应(不是错误和超时的响应)。 +- **分区容错性(Partition tolerance)** : 分布式系统在遇到某节点或网络分区故障的时候,仍然能够对外提供服务。 + +CAP 仅适用于原子读写的 NOSQL 场景中,并不适合数据库系统。现在的分布式系统具有更多特性比如扩展性、可用性等等,在进行系统设计和开发时,我们不应该仅仅局限在 CAP 问题上。 + +## 不是所谓的“3 选 2” + +大部分人解释这一定律时,常常简单的表述为:“一致性、可用性、分区容忍性三者你只能同时达到其中两个,不可能同时达到”。实际上这是一个非常具有误导性质的说法,而且在 CAP 理论诞生 12 年之后,CAP 之父也在 2012 年重写了之前的论文。 + +> **当发生网络分区的时候,如果我们要继续服务,那么强一致性和可用性只能 2 选 1。也就是说当网络分区之后 P 是前提,决定了 P 之后才有 C 和 A 的选择。也就是说分区容错性(Partition tolerance)我们是必须要实现的。** + +因此,**分布式系统理论上不可能选择 CA 架构,只能选择 CP 或者 AP 架构。** + +**为啥无同时保证 CA 呢?** + +举个例子:若系统出现“分区”,系统中的某个节点在进行写操作。为了保证 C, 必须要禁止其他节点的读写操作,这就和 A 发生冲突了。如果为了保证 A,其他节点的读写操作正常的话,那就和 C 发生冲突了。 + +**选择的关键在于当前的业务场景,没有定论,比如对于需要确保强一致性的场景如银行一般会选择保证 CP 。** + +## CAP 实际应用案例 + +我这里以注册中心来探讨一下 CAP 的实际应用。考虑到很多小伙伴不知道注册中心是干嘛的,这里简单以 Dubbo 为例说一说。 + +下图是 Dubbo 的架构图。**注册中心 Registry 在其中扮演了什么角色呢?提供了什么服务呢?** + +注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小。 + +Dubbo Architecture + +常见的可以作为注册中心的组件有:ZooKeeper、Eureka、Nacos...。 + +1. **ZooKeeper 保证的是 CP。** 任何时刻对 ZooKeeper 的读请求都能得到一致性的结果,但是, ZooKeeper 不保证每次请求的可用性比如在 Leader 选举过程中或者半数以上的机器不可用的时候服务就是不可用的。 +2. **Eureka 保证的则是 AP。** Eureka 在设计的时候就是优先保证 A (可用性)。在 Eureka 中不存在什么 Leader 节点,每个节点都是一样的、平等的。因此 Eureka 不会像 ZooKeeper 那样出现选举过程中或者半数以上的机器不可用的时候服务就是不可用的情况。 Eureka 保证即使大部分节点挂掉也不会影响正常提供服务,只要有一个节点是可用的就行了。只不过这个节点上的数据可能并不是最新的。 +3. **Nacos 不仅支持 CP 也支持 AP。** + +## 总结 + +在系统发生“分区”的情况下,CAP 理论只能满足 CP 或者 AP。要注意的是,这里的前提是系统发生了“分区” + +如果系统没有发生“分区”的话,节点间的网络连接通信正常的话,也就不存在 P 了。这个时候,我们就可以同时保证 C 和 A 了。因此,**如果系统发生“分区”,我们要考虑选择 CP 还是 AP。如果系统没有发生“分区”的话,我们要思考如何保证 CA 。** + +## 推荐阅读 + +1. [CAP 定理简化](https://medium.com/@ravindraprasad/cap-theorem-simplified-28499a67eab4) (英文,有趣的案例) +2. [神一样的 CAP 理论被应用在何方](https://juejin.im/post/6844903936718012430) (中文,列举了很多实际的例子) +3. [请停止呼叫数据库 CP 或 AP ](https://martin.kleppmann.com/2015/05/11/please-stop-calling-databases-cp-or-ap.html) (英文,带给你不一样的思考) \ No newline at end of file diff --git a/docs/system-design/high-availability/images/cap/cap.png b/docs/system-design/high-availability/images/cap/cap.png new file mode 100644 index 0000000000000000000000000000000000000000..4ac6504d1a09e6dfbdc59ba9ec6dc7d48713aef4 GIT binary patch literal 56966 zcmdRVWk3{P)b|1^2BCl;t#nFvDj?F`!jb~g-7FT;NH-`cE!`~LAstIdcX#c)1NeWw zKhL-K3(L&hIPp8bbMKuq{)+OFm=B2_LLd-Kskh?F5XfCM2m}ps9~HclYw#VLuSMs_-h5P#fZ`M{gBeWE#z zW9+Q|5^$&oas)ys!RaB8AHTBkP;UNPgx&mzBGLcXmp+%+H+?#Qo1g#H<#*tA`ZMyI zzW=MseUY0!&jGZX-~Y|!|3yv6KNJ05)cnsT{}(m?+2sGCCgh(@{(o?8kDvS#2t-kk z#Psxi4Pd*Yv=6ArAD%I$(p3pK0MmB9+;&86%1oO9}INkQ--vOL%XO;S-&@<gG&|AZ(p_VIV(1CbXZ56omY0ZE|b`+SfmE{NorSJ6?#;~K4; zRMF9IWhtcmX{f@UG~;zUF4TpQk5t%;ok!PR!P=hMrPb&76;!3TmQF>Y=n7Uxo~Dw=80q3Jda_Z206!3O5vau4Q#h8w!C^Egox{0S}E+LAzU!;4< z6y5c3E}_7GmT}G}@>>Qw)6*Aw>s2$sQ_Y|_*CQDAUq&xx&9^HL3ece`5lX*hVDxWI0p4Q^*N=s<2Go%+NqY77O3d({+dmU^IT77mcJ($ZU zm{Mau4zZ*t=;_4kObDS>=^4JqE-@iT{0 zCZ2*JR&@tp10L=|}ZQ&Tk?cuNdF`g`!UQhYtvSfYTyXBq|NCdS`W4u!iaAD6vt z_YpS==aNFUPCWWMlEKO3z+fVg_T_Wl{aY`@%5{o_IY+=uQ^aw?JHsyn;RFpUQN=js zzoMgpmFKevApfSN0zT&t&M=Bm0a_D}6q9wH{I*A_19iQoNU&3}dzcx+1&G1-Xh{@cz=*Wl+30>A9H8x;W`F$RtbcnJJK6g(J3~xe}G@=K?9+45nWZZAA3lq`08?*H%U~ znh57w)T}5yk&>w}#t68Bd*GH{B)_cQ-Ne7=E}r&J{2$MGL&if&onI!nJK?Uh=Uw7AleDS%Vv&g#RL)4gz`Vl zk~(MYnt`I1=4(+#NwTNy7-xdTzh4nq7#r06%K0UG=U?OnHo=+E*!X6cCHak6yS~6` zt18}7Jk2O}3;}2EV#WQ($bBJ;Hj{(HFPQ7V=<$^b``fd-Iv6WJq`yZppyvLs(agZ^ zEP2E-7T+NK0BHupkc2AZdbj;%6ucj zNY_3+Ne;PJzV8O2R!fuRAV&*C_-zXsSaUcfseQT}KRPdhe5a*`R)UDZWKB?uUs90h zKWv!Bo5*m!{5H9yn9!mUi9RFs(?iCBQ7&=Nv*A%`7>&q@Un;%&|gl`e-Oz%nCWro8+>%#qVIJNh|}%-!@h$*VY5D#S_U8C^kzHpQcL<6cAaUzwmkcl!(h5m1Q7NQAp_yOQ}%8mpouNtn^J zp=NPkv|HIfn}BH-sZ%|*JIg0(@WZU^#NVo>qRqYfR)U5+44{|P`gDgdl~r+(AHAh` z8j;F(-E-zi9%!pthdIEkW|Nn~OX(q6iG)*jo(_Y|^58$|-pieeOs)F@A9=rioXB9O z+KBEdKKpOli6=;?2vgV{@X@b4@llqvYmvEC=uyGd5-BpY92d!!D}iJEly`Dl9bD^! z-t(bY^uu^#GHcf)vWjZU*rczz3JP+ac3KIMJUbB~-Vf2h+sj`6O_BNt5My&Y@+m!5 ze%A1NRIfrAqjeR;=S>$JWSX7Z)pt%8rDqLvy}H&Ter;?2o_!@pE=Wx{i(^%&JZrdv zRZ;VlDmfh#@0zReiXF9&IlDjNOQXgPf5fkdPalfBbK_4sSwb-^myVFM$UC+~0wL8= z)JBRpH(dJTPi%DQQCGBAaS;dPq$yZL}21Vdse zLpR)@n%#EUxY)XkD8QcL`Hcp=0#t+h>o3+qm2nyfN6DQSH7Ml%P3NLL`d!RwaQKxJ z#Ku1pt0KSzQyTTg!nF=0VSV0iThFOcYQO3Utg3V3-$t*G3)3Zb>taToVbKctu6nV( z2MX5z_;crr>YH-1NV8AjkQw`dFFMo8g#V3K$0QTt(y0`Eg=Q0zMrxf=!t~!0U6Qc+ zSj!m&P=?&zi|L$phFg_)xxWJ9%HAd4hL9gCbZ9oz>%_xBF1ohH?kET51cE{r4YVNE zDv>SYk4`(ETT?JE`8i4&uRM`Pb#31ioL3ji1iM`0wnEW+Sp*%4vh%!~Ob?8Wn{lF9 znJ305u9U#m-;N}wyUgtIZ+U@t0hH?3re!LXPf1fBO@;I%6PU-YF>9*M&Rn?pbSNEs z^2xkfjlJuiytelUGfB3-%O78&_t7Mw4GyoVE8I@a(cqje!ca(h-K8(2+4{)%>AzXf zlnEy$s0jOr(ffo!Y$a!7P@~*HYlfs9oS)N45vM^bC%ZX69ZLli8Kk3zgeMB!(O!6H zw(5xD{`{ONur=%2NCB!-8k2+Yk9X=UoS(nNEesYVd zSPD=;ztST`9MO;F8+ME=rYJY8>_abQY|My2qI@;qcv0~X?FLPWz6)M5^Vli3#6;yb*!2@t-{^_FW`jt~A5mIo+`9>cXRXfZbqW-0 z(x`MeVX->d6Cet%*(4~ur=x%-0ELdBCVnah+%19#W9_jsW^F46M2pq}E7cGN|Agp} zF)2)!NkN`!G!vDGXJe%pdU3soQJ?JssJSbCH86cJ>Gx! zwCF9m8W-kS$)ClNlC^PKk%cDs%Maf9~;7@|=-3SUQ(B zTY>fmyNW8Uz{KMD>F?>QTdX@KfLY2iRpkzZb;B5g&`%jdqLIxCQOwkB*J6jK<|r}7 zC8vZJa4(DPu~WjQA1SxG{&*V~O|r!huVFM%Zk|vcL7B>%N*9omQ=Ri6NBMAQs@V5v z_~VvNDESOxB)*U6DfLgrn1Wink#oKbwb$4X`3u#aP>8L${@Ey`r`J`~DzV!Oa5})hTPK_%sS%mFb=TGPB-aJ# zuak72)$H9HvSNXG|2Wy+*tviHY^-&SWaE2OFsSdfX#*n73C{Zf!lBh?>%j6ssPOK2 zcT$+QY52F1m?+p~YA%q{T>#ZoOS6c_Tktu}ZO6i-GNjy*BA!^T-#+eWD4ygq{Y%U{ z@3)1Y6wV?{^As;;#t-rQ79|wM0)vyf9V`t}#vHTm+XFE7^Pe*<=H;xb0T^Ce*(rd2 zH^+(hrNh`uXl}LyZwFs&fGM-X6!t_p=}Iqt=|Xz2EN4=H$zZt^dhN`2mdCrUS7a1pH_>(SRKNEdj2mPY{e6b&JI2fWgI*mMyayr0V+7jKkmVP8Q8JcI5WM)toob?++kcN+))RTwNQTp{P{9O`9bgs?Cf;L zYM~iU5uh-}r8cCdhG%El{yRU&JTVb1g{xRT4Ea{1axNgqq|VcEwlUec`FGCiISY-v zx`R*MVn~kPXXM}R_dWDo<9>uvxVv!gnh}2Z&8+I!=P4>65u?tB77Bu~+`()oxdFxL znaBkKsMp&35-~p05ySc3+y3$exml01?0n{L3u~p6Aq5_p(Uv6boxKSn4zD`w65~V+ zkm6!Xsx{kDu3jni^S%mDyXK(ebF0ZgmXqE-O`E0!hCy6~7p8|i*5zcH z=lF%gVwc9vIV^&cKg{`Qh9q^p-v@f?jC*qxcHcBTX)k4J=9FviBYGp4FsfG815N!9 zkZBg5<4(gD(pa3IXU<>cR~YasVA&yXm^n6R4&QvVIIXj?e*yCh%~~m^S|O#Y6RS!Y z6sQOTA^)BuWZ{dax15^O3AO9+Ts@?{cx&#__c`Q~lPH$uRNmfgQ@R@$$a%U2! zk{SQ`RNF_8Td%2X?>8x-AO8GTo|7ZN;+2s-52S9r@e<5yJ#_gCBMnJ+oxxIdund4C zKyb6<yo5)Ft z$3Adqc3xc-xIO8*73*p#pzcDo--5Kl-kCh_D*7x`)SjOaFl#$E z2OP*;QLnEGt#D-So$pc3dYxq_w|qC(oD{C_=~Gqdm5PRjoCAEExT)yG0s?a#H5u$++BC zbDZczUbWgq&4q~)3If0sYqNT1WQ8JIe3DhDT6>P=YSCouo!55!gJu|0)cHm`%sxF! zz&u?|B1gJwre=8_`<<=%Tv9min(oL3-Zgu8uV&}f^gf;9&$tuew4*CWw#&a zu`qzH=Wzywx;jEN5XSxQ=8wFNb99iW)re$)%8S6z8F$rb(QS=Zwj7_j)6b|+3l@2H8~ z+eBw$poYA9$JVC(G;9CE`E`$tzF9p@H32089}gi9L?|#pDdKHEd)!$-`@;j~F@y;_ znF&RNI4x8F%dM0iGp-TobSoqMvq)2b-CK3GvlZq#l?+D_iPQdmN>|shQEbnX zToJ_a;5hZYv_Q@xx;HmK`fgSO;yjL6# zZkKDnt=5PbS{^Bw1aIX_=Gh^TKwpjZ;aW1GpuxqTh8p-)26THSo-K>WHF>JyipBdZ zO_(P!C8y?Zu7dD5X<*`c_W42);J!7s_1TM3Wtk`0n|ssTvWX z1(7Ksf9RIm7J5R;7NM8g+0#=pIh81$d!8kkaa@>kN;J@I;ccNWsjFSKfXpQ8^;9P? zcZCZ@Aohf?I%jSB#GUe)z&y$N+Ud6}vPr~%eHSvMMI*(N)go!V|lt! zdZ*!c99I#U-uf62Bt{ktc{3h1p&sfp+^P7(ZV(bK=N zZesDU%xje>oI;2a_j=LjqZJE~`nNpXYr=M}Xy-6;L8^$qgnG_k9BY?Yt>h|P={+Ur|O&>hCT-IjSS%)Adbv&w~kLvldaI*1$uBD?oh-H zt6VrAw$1vj2BZ#u>9Q8yX#%_^Fv;J+Cfpo|yHTmDgbwUIaOB+<&eOxZwob$9l9(w| zs)osHE%&+>H3yf(A55ew`Bm2kICa(9`+sTJ-;IL1In@ml zZxM?_o6<-To) zUux1^HCV7a3XE{&q>^<_(ccv3t{s|qcQ$vP{RqrZ-2N+U-J)oq>@w;3#4Y zD#!*Cku8XH{! z61d8nV}CD1GO3Vop`WU66S*L;pBqz1j~&T*aw52U9+;4TMOC6Dq4YtfTRc*+;RNXv zgG2;|!uJ*_>WVss&|PMV&zpGo?^+&&O&5l`?N1KwyFA@Kh5I4IBTxD8pWJLqQB5@m zXLNpy3CH?{kjEtI=w&l-#5OH^t_=Y4LBf)XYLT;b`(S>g|82Kmi_1mIPOkSxS36WoIW@a!7#V2$1!o4m(!aNK%n~*b_ zhl}f(v_y`>~9%DW^3qgm#GcS`pywI+jZdFK^kXah@X8Gvimbd)(a``PU`0jl_E3Bj$roFRu}v_&ZS%_o|;gK@+xy6 z`v5LE!t$5P z@U_{aXJ8{ygS!W~EZY$vL>|0+S9!>>f`l&UgMP=UOaDjh8xcs=2QhY!Q2UL8^b8zH01S;sazBt)E3J4bC6C+m}?dSwbHiM%4P z@uK=-)9XSOIr zPbn}k>SgmsZ7Wqm#@lghC1$L**QJm%GHUi}TcB?JSL}yL=M(>AtnTtj%Bu^0L>pc! zSNCWT22l0%;(Tl4<&4`2Ps&9ayvF)0{&GLy(K3s$P2c4}S-ZRaYZTl*xk}jhD%ZuQR^W`brAc4a*XZd5np1=X@FxBPj z)yF;TdZ(k-g&iBxRSsHc;kHs4aCy4&Qma&!JWPH=x?8+$i0q;Rpwlm6sq0JwSA znLi4ZYIPBDoNeE^ib1ci*$%+S49;8VF}5k6wAGR`8~$*dXEIZ>RE6yYY|J8$j3hm3 z>}wuqXUz=n9@a7V4m=GGTEnN`J0nmZX&cH8<3W_?N!!`$@>tPYtff5#Jg`0ZIv>$z-mMU;yT1F`M1b!Sl}$zfQ#a#UjP1N6(zscA$I;O z=klvC$Nhon!lX^C)1~D6wB*<6^|kgxgKA%=r4QT1jljJu9^ZR66wx9F@l+|cM^46t zoSN*yk)@be<3ph>k{8wac2K9Y@F?7ZUnv?&WqHo>rpC6$e{Bdi+47}i23Pi&3UY=< zieNgquji)1Kl0$8(FPxOn(RKx-5~Dja&a-EgoiDSE0B+$9ezxb`LJ#St=LN=u-4Wd zdc1p{$%TaCzU<#2_|9HTyHiSPs&P>y;<#DE zaQm?c3eC0J&)fAB8W!q|2l!On`1Iu9SC_$1_d{C3jbI@FqubrK-A1@{?xBQT;n`lD z5iKxVyG{|R{?~{hbBP;IxbP47!r^-F*SHLmbieoLWWW20dO^&lT@fyHwa^vsUfp&` z^oycwZogB$Huoj{h^mt@lMV4EM;71(Ch+9WA*YUwi{ZA7_;U{|=dxgObdgEK5w^nB zWpYf)B{b&UQB8ui_B)j<1{KV8?`enTu7e6Pfy?oku`N3bx@se_6Dzmv6$A`?@W>lj zPhin46|7kBVgGzN%RMf#+$YXmQgd~xT0ix>r!+2!6;ODi7TKlmS`2*Plc(ZxE)P@~ z%9WPR+FuMv?O`mee&4#@er!oR;jp*yxyHjVEM9RfY^Ij5{_6=q`a@E{4`0O%`QllgH9h5WM7FQHjxo z|Fl~(CVlL0xx6C44IGC8TgZGC*(=B9Fnfnn)A7c12I+={Bl8(^uPBOuOnL3(a-;S^ zqY76h%rB}=IYr#?JNi9o5pRwO1fXn|2LsbaGytOmBLmM%{=#RI0oyMKy#`<0oPg5N zMN^^;G}T?+Rl__N*SUhb8mE{m*eHG07;2}w3Nql02wkzL7N)s#?ihNGFB>|lx};D5 zztV9*9-GLhN1vlbShb$ahk4DqBIk^*gjAqKg$!L6qk5Nxh;RlEkC_Be%XqOL2)d=W^bV2zGY%r5TFQ>t*Pt z96KG_OT&xhQUk$q)1F1xR-MJmfk30BOVME~@cl_^;28i>+~icdXY|$M?0}JBMMGUu zK&L(E72jo6NR@+~)0JtVXMeV7xCfV) zly0+0phohX3wJz!Ve0!~1!byaDa?$Br8EUMUJ3Hoyno?F)6~G;ATI4rv89K@!N-`; z?b%6t*F`a}>J={w7KZS0Lsl9hO0nBR+X8WErkWqn#@0tMz9qOB9GOEs0(6bjcce2sJgqG%otrz>$w)Na8-wG z4Lg%8tp8n6()z5(9KOYy|GADd>|^IXoYGK%Q{egEqo97kDPt*R+*QtX3MIg%U4U54 zBJUTOgXt*eiBq}NJI`$@IL%q|LlfiKmLy_suahNONqldLgtNL7Pt!%AfK*O(b!f4z zTUhDS=q+vnZ|r;;2p*%m8_JJg6CoIFkFF%9irqhJBs`DsJR7(;aV$3uexUH%Ap*9c zzcZHNwwjXc#v37EX=C8jduoS-ZhBJ3O9#8%Yq#^RHv$h$`Ip@YG{!<^X8??6LU@IA zUDa-Z_1^7S+ZQe5dC4{UvZ1X-ACrx_IgYZ(&bsiFK+GTq$||l-BVexWXE7lYr@wi~ zwt^*TJW@-;JqoerD80`uUsc7U1(2?It~^6e~yNZLcP zhAwI*=i`(laT;atZBYs{JvhB&&x11~m_ZOFcdhIV`$``T zTs$HpU#)WKb{Lxeu?I%1S^`u{sNf4n=;lN2r6b3e%!jV|8` z6?NnT$f(?YU9ZMV>WyUvVzrP2h4#4sN2kJh~uxN!G8n zk~g4Q#-Qqsyp#an+3=lpxYAsS)RYf@X@Yr9lSWae;p07vcB{-f_(_^jK_XD=zWoXA zwj6R0qP5iP>9~o|yFDdCHb$C+00)<~5oy1iaa^^ za6VAqS9As)+j$3T1&`uzJ;L=cBqGnAj>Np=uK=z8vl3ypN@PWQ3%jgm%RpdIJWE!X?I1fxAofa=*S6m>eb$A5i*%Y8~-I=sH^(F{ivZt=|gW zL2$qS)I7DHQ?(RDyAQLyw08U4c?zDgEE4w%g##<+ZPX{Q{e$igD@^&>z_i@X*>EVF zt9a^segNiq{xikW<7{7o5r1qr>h$tzPZJD7kVq3QsuOWFcq3&KHywFZ7(V@Ec?Y{l z0?*b4xEh()!6PV(v!W}u4DI=&;NX*hNlm4z0ta;=58IP3v#q%n6$Mq|^uA@3_XZ_me9+?U9$`g6ch7-VkwHwHjy>R4t5!;@E_`UEw zjS$lKO)25By-9E%$9dEf8mLVfJzRlx?6tB)yR;-lE(lL`HR&vOt~5duF<_dVjbvLrf|fg;HZTOxH}&jt!tIpInE_v=J|bZ*}i(JEnyKPOMN$ z<>~tDq-|@b2cATg{X`C9Og_I8(A0?nd{uM0en}KRV7i%K2?b9#py z{>5OPM=U@asx1r(JyY^QY(l(*8Ban>RSi7r%xE1o94|+h-M&6VUEsx$c{=n6T!`;( zt{|6zciv*6DeG%4W6aQtX5gqQtfa=G*#v&JP?;o5W2xj zmcdcV_L{&ouDiAM2^!GTM$DMpfJyRD%nTe{ny5+JiHp&9hc@KrJt;G`l1{%IWgSn< zCZoF5uTKN}Iz*uq{N6f^o-^Jj0S7S0G4guTk$bb^)0klNbtLDDb@D`Oy!%tRm`0#W zxF3vJTDP|EHwLx&`Sf@xjsv^_&2YWwqCI2IZ$x z5DMNyIY%q~I-cnj4$lcIXyQFm{Z#KZ^W+Hv3O23)x$c4RtbZMb6~df!)8qJ0L4+yW zsZ;;84zR{?xl`tL>-7!qx!vT5T;e8Sz-r@Voo8pjK%-thORg($MqC#^Iy_4%L)%UZ zj5y$X?=53{9iRbO{HpwW7gTDxs#+(XHIfMrv_a2`OnHyd^GiO|)cvX&BNMh|aSg<$ z&a3lxeGE-vi%sC0)-UH{#)lDJKeF;!@Ynn$EZeiOzFNFC0k@6dF@efRcAwqGGa~Q> zW<5NYIjJ``M1_z^OHs>ZFV&=~aZ4rRd3X86e3&tJT8?&hKNO!yiI(uZFMe5{J({z) zIyL&9bdxu5D*0Z{!DeO8D=9xItnu=`gP7J*(|UZyh(p(>#?Iu4;w^C+u1M+05YpY# zF4V@o8noDQr&_qFsgA>jK5Udzuv+ga2KZJ__nitK zyl=sp2~vNJ%7K%_PB~5%#%`^h*}sr~{|oAjirfP`5>q~A`edObt1IE{ZERiUzD)JN& z$ijSm!ox*)NHL&eDgwP2Pdbj!;81p;4Bdq{NXw(_cvD5N>T zRe$;ETdJtupsEti$EQtB6$C(_g6Rb6V@Lqbw;EK@y*2`T0F7g5;1C;HX|5(_w4n$$ zAo4COkKp8!Fj zu1g45c|*YBY?Ovl6O3cWGKgXbr~qSbWwT60kr+URU?f z;RR68Yyc=d&jB54G}PN>G(gE`9v{Nrmf$cqG7O_MoQn9w*(PB9cLx{XYkbroJI=jF zeq-)W>yW>9SRfpKxk()%H-!_5yn9e^0H3uI()rtA?vC6HL#Tgw+ovf20KLx91N_Xy;%6SEC35q!GGWT?EO=c z5g8~=iLHOn23zgFi6a5h0nTgdm=k4vyOr)ODI|5M11(m#V(q$chHI#T{=bn!^h{(k?HNQi0pSQ*|HezP zmn`$xiWrd0Uh?P2|5`!AAQxcQ`s=?p9W^h((f{FBbl_k;5(N^Eb)#-Tl9fz@0vjaO z*Jt*BVrU8WjS{TFRv2I5CcQ<`ce;Q(pYhOq%@Yf3iR4t(M*Y2N9{Reo<5kr&pzi4^rPobdAg{3N6tT=Bmj-s6Y=@MK2!_@Mp&i|Hwg)g7J0F6An59|1!X50rk zsxc~{VbZG;NyTm<{pY=&!6kWvs@j*SH@D%Ammco3O4JJZ%jwvAefDupHb09k>5U$V zLb6oU=efc1wd;^kG!IaXR>pwHrxo9vk=(S~cTbOIhM*+MTU8<6-FoeH2A#6TD>evk zaP`BAs()L|1VBRib86Au=RTe0@d(Ao|6FHT{#Gs45W*%$2WHB;Z$N9Q zI>os<2B6$RJIjK-BL2E%)rhs&EeSoWEz-D|UACaS$%^i_cjJ&6J*E-{ghr9bKH>H= z4Mn`IItHgD&~*=nV`}8?Kz@uD4LpMMVCjYS6oxfhnJ!P@siErad9>_wd(Au5l67Yx z^gzfF!|ya_+6Rf0N21i&xqIW)LOf4wSc(< zt3Z=LlPaDeoaV?pdadq!EG?Bm+8nXT@2YKHmxOGEZB`VwYAJoel_1J_zpvKl^92nD zOFQFLNejy>xc2;zS8|>~CMJh@tkh6Yyn0u0NqJIH@tQb|MO-Fxrcpw)34cgb|3!$= zim(!%gxbC?Nnw^R%|Qedoc4#@_|#TtcfOXk@*)9~+!GQHAb+Vi(tHOJ((>gSa z{-snL;cullg$|?#6kF$Sxhf#LQzJu=NvufaZbI?z$SB?=>WP5wU&NAeplzI~*_QAy zQq~?<8r+@GcK+Tk2FvI>q=fQE<%{S?-$Vj91Yh!9hWgj*ytJY_8%|3+Rpr}L>V@@O zp^sdN)9-zFQAnHa(PUEJwI0q8TEY4EXpM|AEKGAs;F*Rm4vy4YsyCsKKI6%LwTJZB z(h_f_WvEsi9K88oyq{tVH$3dr*LDxLUUpHr@;C4#JX4bQOol11w4j?>CMmvA54jX- zekvhuXHTx+h))N87kSY_{5TZa^;ud@@$kc5jNf*c@tf2KghAbk`-f4ff<6B!oYy&K zVtw@MvM@)PFuF@QEpxcwzDLtX@zGTUlNye-kE+!o`2Ly2Z(gnMoib7+WM{>{prN69G{Ao4K_o1C)VY);4V?s zdxll2_hi|2u{9oMKai2oYh3;aoZ>aUy} zdg*Q4)?9P7SI}S)Me<#)JE(I$?Lp~>$uII<-nyex$ITI-7~Sh?w_ReMVbS~)DNjYN$)|g^yvP6c5(? zrEOaB@pky3L>BT);L_nHllME4Ad0D@R|BYZ!q>J{i)oWPH8ZUcnL;F|fqxY~QH1Yc z{ZW%pQ%lJl^YwK4sBiQKN{%JnrFwDiDCE@|VWhG4DJ8GWERqgq7yMYPhdyTA{=q5^ zx#J*OI8pfGcTHd7eXH)?%McX|I8`$-=7-ef8Z<#1rWnzx`NBxWuU}-u$9Qoc-tb-1 z`z1p-1^E3}?}Vi!4FZ-oL?-<#BnjaHKPBj5q=*L#ap#p()zordBl#M`C8&|-wu({- z?khf{e9x!R44*a4Hm3q=yRPX4uZeQff4)N{^FI>k^p?VW%dnp51-h3hyg?*m8=}i8 z*VQyQPKRWdU?gB>ntyA3fawjrO%)hg?MhGAc=FSH2jY7j5$g4n4W(AOJPgd!CFREU z2dJvLYFujh5AG6)HA>9s%RT>l*j{T@H#kH401J=qWex>3N}LY!K~4q()tVpfPKMAhz{4Nl#`ovh7Ut(06t#6>HwqoqeU#5Kc|?e*Qw@j-om0GoO1BPvu_-0 z>fN$@A#1$8yrUh_!bwp=?Q{k2pguVk0g`H0Wc`=6wo>MmMWy00CUyB<(lQkob|Io4 z+mZXfiLF;Oq!eS!QX*C(HDTMv!YU*Yx-Y)vYtsqO`t5l;RZ@x$NMJL%XP9MFiJ`~h z-SBLKKrcQUNjnZ-VlP==x&ZSK_?>BNMA?on{kKW#R&G~HBz}Nd{IbeZ-Jy-wA5Bbt znwS`b8hA{)k1W6BM}5e0%#st~rZ%rcJ-Q?=K+Q#$$tO76k4O%?6y|eDUOlH85Eh{q z#by4rsy0tAVuwwNa&vf78@!)(<;#oCK0z5LTX6-HoX{%TXB>I$0(BN!7A{UlIor{k zX;%98VhKl2Py0V?^4i^hCeY$+iEH>8=Xu|3M6JF(NdgI4xe@M+SWqwu%im{~4f?DI z41to+bi!cg?2MU{f-CF(gW9YdE@c-Bi|mS=?H%+aVdVi8-K(i;r=1fmZ-w8y!{k$k zV!8}L{f3?)R<3fH^}O^AJ?#`8L;hE5UzYA2f0f$0ywk;%+5WyRY2b0F{%_nXzAqSf zZK~#|BYgK!)*OBT)z!tTmfs4dnFcmA_)&u}Ho2YeJbuCk;6536ze|*MW%}+UeI+EI z0q*V#$f*elc2h%m3|6Z%ETRpLsSGa${p;4gutAIZLkwIWdN&-K<460~V{L*vMfK3D zR=Y^kXBQe9e<2jd`J0znJoOV_2#124HRIX_A*1)7Qy3y?DN>!vG#hMa?qk)I{d{g4 zxgUjLy+b*5VD|wpq+MMXQ)P@<>`}t8D8ILYPW5zoZ=gzBoDx%H)l2>ERiZ(=&8;^u z^r=+sO20wzt6*lKHsr`d#Q2!YRVTo+b^i~_BXwnt1J=|;EK%{6O9gT9jRuvjul#e> z?eAP(J%GO_AR~7dGC^gRNw?nWuiah#1<#bAU z|B5_0l_Xtx{Z~NRO*$XZK@$U+dZ{~PDTYm~4x>R{T2^!5u(QY#)3W^NScee1H>bWJ zY^)bPbZO8s!#GuFf-)`lqW}o|?g+rf(KT8Yebt8$otMFD6T*UWjGAv9(66?{BLjjs7~FG(LtY_N(fEE~v@j z1zNrC*xFUjoTA9Ho#*xYAmTJ%h+w$4H5hSPD? zWb8);;`4X6;)D?aiKJtFw#}^x4-n&sV4);MH7>7*8Cv&W?$17}sR;`an_WEj3?78M zd0kRt(DEZr5KCOV2M`B|>a5?-eV_cvM-K$zv@nU_Z_8cRAWh8tmRM$@1>s zl%{V=ON?x*DE>0Mc;r!SCrK-=)tmgv9II)G8%caz&uMF>kBbfzf}LnMYYK}feCi;# z!y{s{hCe-4s46oMiH&KRp2VILHFP8zx=R)lY()Hq!SaO0&?O6pPhoPUt!%*DHStgV zI6sZM{rC_Hqhb_WWaeM>7vmDeVUx<^QJ<|XmySK-QH1VL=4+AW{pSOr2$)m=t?o*y zh5}NaW0+M#w8}T4S&*MN#UWUhZa5)eHp0)8v|pGlRgUHPcq0dkELs)k@yT;kHNrRM z_pAv)v-{4T8UQcFtyblJGeeEC8s4yol2!NWK`1DeVHBxbqI7C%>-1xMTkemPhvPq- zu!}Ur*{OaIludYUOtfZe=EC5nz@8k>98W8$NGG=a`%zKBi>K}NWTg_SPIzDKDxcnA z3i(Z+YA`iW;spA5_K|+MxpRFHiRg+F#SLwJkSZ=Jnl@bpmz`baBDeE{4jKbaXxk{$ zGq&DMpQs$5&i|a&&o376_gj6B_xCLy$sL87vOQ6}46~UJ??Xay30w}}9rnV{KfE1x zHf48KU>M1I;pr|*Jh3f-Vu@SFH#P7eKQ*A4uD>zYUIdUcS>@%0AU@34=70Oq&dG?) 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 By6FG_ literal 0 HcmV?d00001 diff --git a/docs/system-design/website-architecture/如何设计一个高可用系统?要考虑哪些地方?.md b/docs/system-design/high-availability/如何设计一个高可用系统?要考虑哪些地方?.md similarity index 100% rename from docs/system-design/website-architecture/如何设计一个高可用系统?要考虑哪些地方?.md rename to docs/system-design/high-availability/如何设计一个高可用系统?要考虑哪些地方?.md