答疑 | 如何优化CAP?毕业设计如何选题?

CAP理论如何优化

1.老师新年好,分布式CAP理论本身存在不足。那么在实际使用时,有办法弥补吗?

答:回顾一下,CAP是任何一个分布式系统,都必须重点考虑的设计原则。“CAP”三个字母的含义如下:

C:一致性(强一致性):在分布式系统中,所有节点的数据都要时刻保持一致。例如,系统由S1、S2两个节点组成,当你向S1插入一条数据时,这条数据会在短时间内自动同步给S2。注意,这里强调了“短时间内同步”,因此也称为“强一致性”。

A:可用性:分布式系统整体能用。简单理解为,系统是正常的,能正常的接收并处理用户请求。

P:分区容错性 :允许部分失败。例如,系统由S1、S2两个节点组成,当S1节点宕机时,S2节点依然能够正常的处理用户请求。(类似于集群的“失败迁移”)。

而CAP理论是指:在任何分布式系统中,C、A、P不可能共存,最多只能同时存在两个。但还要注意,分布式系统的各个子节点,必然需要通过网络连接起来,而网络又会因为各种原因而存在“弱网”情况(例如网速慢、断网、信号弱……),因此CAP中的“P(分区容错性)”是必须要考虑的。

CAP说了,只能满足2两,而根据上述分析“P”又是必然要满足的,因此实际CAP就是让我们在C和A之间抉择,将项目设计成C+P或者A+P。

为啥不能CAP三者同时满足?请看以下分析。

假设系统满足了“P”,并且此时用户向S1插入了一条数据,但由于弱网环境,S1无法将用户插入的数据同步到S1中,如图。

请问,此时分布式系统改如何处理呢?无外乎两种情况:

(1)情况一:允许S2同步失败,直接返回成功。

(2)情况二:不允许S2同步失败,直接返回失败。

看看情况一:允许S2同步失败,就意味着无法满足“C(一致性)”;

看看情况二:不允许S2同步失败,就意味着无法满足“A(可用性)”。

总结:CAP必须满足“P”,但满足了“P”后,当遇到弱网等异常情况,C和A二者互斥,无法同时满足。因此CAP最多只能同时满足其中的两个。

好了,说了半天废话(实际是给不了解CAP的同学复习一下),下面进入主题,谈谈你的问题“如何弥补CAP三者无法共存”的问题。

简言之,BASE理论就可以密码CAP理论。

在本文开头,讲解“C”的时候,用红色字体强调了,“C”指的是①强一致性、②短时间内自动同步。

重点来了:CAP中的“C(一致性)”指的是“一致性”,也就是要求S1、S2等节点,必须在短时间内进行数据同步。不难发现,如果无法满足“一致性”,那我们就可以试试“最终一致性”。

(“一致性”强调的是短时间,要求不同节点的数据在短时间内必须同步;而“最终一致性”指的是“最终的结果”,即不论同步经过了多长时间[短时间或长时间都可],只要最终数据一致就行了)。

至此,答案出来了。我们可以用“最终一致性”来代替“强一致性”,将CAP理论改进为:最终一致性+A+P。

最后对比一下:

CAP要求:C(强一致性)、A、P三者不能共存。

但我们可以近似的实现:最终一致性、A、P三者共存。

毕业设计/课程设计/小学期如何选题

2.老师,我们开学后会有个“小学期”,类似于一个时间比较长的课程实训。实训的项目需要自己选题,请问选哪种比较好呢?我想做个 ***创新型的,您觉得可以吗?

答:类似的问题,在每年大学毕业设计前,都会有很多同学问,在这里一并回答了,但以下仅仅是我的个人建议,不代表任何主流建议或某个官方观点,仅供参考。

我们经常听到“选择比努力更重要”,这句话用到毕业设计、课程设计、实训等项目选题来说,简直太适合了。为什么呢?一般而言,学生会在“创建”和“保守”之间二选一

选择“创新”的,经常是那些很有想法、有独立思维、或者想得高分的学生;而选择“保守”的,通过是一些只想快速过关、拿毕业证的学生。哪种好呢?我觉得,你得先明白“时势造英雄”这个道理。

举个例子,如果你的项目选题很“创新”,但您能保证给你评分的导师也是“创新型”的吗?只有你和评分导师的性格一致,才可能得高分。

如果不明白,再看个具体的例子:假设学生A的毕业设计题目是“基于大数据的股票预测系统”,这个题目很创新吧?但如果他的评分导师是保守派的,导师可能会想“如果给你这个项目评优了,当你把这个项目发布到网络后,万一被哪个投资商看到了,然后投资商用你这个项目的方法被赔的血本无归,我和我的学校会不会替你背锅?”,原因就是我刚说的“时势造英雄”,你创新前得先衡量一下你的“时势”。

那换一个,项目选题“保守”一些好吗?我觉得,如果你也只是想保守的通过、保守的拿到毕业证,那么就很好。你只需要拿到前几届师兄师姐的毕业设计,看看他们的题目,然后和他们的题目、内容等保持步调一致,应该就能顺利过关了。

- 完 -

推荐阅读

Java小白到大神的心路历程(Java SE)

答疑 | 面试全对,却没offer?

答疑 | 背下这300字,面试就能加薪!

猜你喜欢

转载自blog.csdn.net/yanqun007/article/details/105966467
今日推荐