数据分布方式

  • 顾名思义就是利用多台计算机协同解决单台计算机所不能解决的计算、存储等问题。
  • 单机系统与分布式系统的最大的区别在于问题的规模,即计算、存储的数据量的区别。
  • 将一个单机问题使用分布式解决,首先要解决的就是如何将问题拆解为可以使用多机分布式解决,使得 分布式系统中的每台机器负责原问题的一个子集。由于无论是计算还是存储,其问题输入对象都是 数据,所以如何拆解分布式系统的输入数据成为分布式系统的基本问题。
阅读全文 »

WARO机制介绍

先看一个极端的情况:WARO(Write All Read one)是一种简单的副本控制协议,当Client请求向某副本写数据时(更新数据),只有当所有的副本都更新成功之后,这次写操作才算成功,否则视为失败。

阅读全文 »

本质

Lease 是由颁发者授予的在某一有效期内的承诺。
包含两方面的内容:

  1. 颁发者遵守承诺:颁发者一旦发 出 lease,则无论接受方是否收到,也无论后续接收方处于何种状态,只要 lease 不过期,颁发者一定严守承诺;
  2. 接受者遵守承诺:接收方在 lease 的有效期内可以使用颁发者的承诺,但一旦 lease 过期,接收方一定不能继续使用颁发者的承诺。

由于 lease 是一种承诺,具体的承诺内容可以非常宽泛,可以是数据的正确性;也可以是某种权限,例如当需要做并发控制时,同一时刻只给某一个节点颁发 lease,只有持有 lease 的节点才可以修改数据;也可以是某种身份。

阅读全文 »

本书的整体思路

  1. 首先说明架构十分重要。
  2. 为了得到良好的架构,思考软件系统最本质的组成:代码。从代码出发,一步步将代码组织成系统:代码->类->组件->系统
  3. 从代码开始,介绍编写代码的三种编程范式:结构化编程、面向对象编程、函数式编程。
  4. 接下来介绍将代码(数据+行为)组织成类的设计原则:SOLID原则。
  5. 类确定后,介绍将类聚合成组件的原则(REP、CCP、CRP)以及组件之间的耦合原则(ADP、SDP、SAP)。
  6. 软件架构的实质就是规划如何将系统切分成组件,并安排好组件之间的排列关系,以及组件之间互相通信的方式。第5步已经得到了组件,所以接下来介绍软件架构要遵循的一些方法,以便将这些组件组合成完整的系统。
  7. 最后介绍了软件架构的一些细节问题。
阅读全文 »

  • 将“业务到实现” 涉及的所有流程 进行拆解、细化,提供落地标准。并有例子说明,通俗易懂。
  • 自己看了收获很大,改正以前很多不规范的地方,对软件方法有了新的认识。还需要消化吸收,和以前的知识融合一下。

👇一句话来自书中,算是《穷查理宝典》中“保持终生学习”的具体例子,与大家分享:

有的开发人员的“十年工作经验”实际上是“一年工作经验用了十年”,一直在热热闹闹的民工层次徘徊,没有积累和成长。

阅读全文 »

最近一直在看心理学系列的书,《影响力》《谈判力》,再加上这本《乌合之众》。恰好赶上了疫情爆发,群体的表现和书上所描述的大部分吻合,真的如书名所说:乌合之众!同时我发现群体很多行为都是“系统一”在起作用,所以打算再读一遍《思考,快与慢》。

大部分行为表明,群体在精神上往往十分低劣。群体的无意识行为取代了个体有意识的行为,这是现时代最显著的特征之一,群体时时处处都表现出来的特征是:

  • 推理能力差,缺乏批评精神,易怒,轻信,头脑简单。
  • 作决定时受领袖人物的影响,如断言、重复、声望和传染在起作用。
阅读全文 »

动物可能会因为看到某种颜色的羽毛而变得具有攻击性,或是听到某种叫声就对自己的天敌呵护有加。动物这种愚蠢可笑的机械反应在人类身上也有,当某一个触发特征出现时,我们会不假思索地作出相应的反应。之所以会这样,就是因为我们被难以察觉的影响力武器摆布了。

一是这类武器有能力激活一种近乎机械化的过程;二是只要掌握了触发这种过程的能力,人们就能从中渔利。而第三点则是,使用者能借助这些自动影响力武器的威力,这种武器就好像一根沉甸甸的大棒,只要用了它,就能让另一个人乖乖就范。

我们要采取一切合理的方法——抵制、威胁、对峙、谴责、抗议来报复以刺激我们的捷径反应为目的的虚假信号。

阅读全文 »

尝试用“说人话”的方式讲清楚架构设计方法。
如果你之前看过其他架构文章,emmm…..先忘了它

什么是架构

对架构是否有以下疑问:

  • 成天说的架构是在说什么?
  • 面试让画架构图该画什么?
  • 我知道这个东西很重要,但就是不知道怎么存在?
  • 什么是好的架构?
  • 如何做架构设计?
  • 知道有架构师岗位,他们在做什么?
  • 看到过一些文章,XXX高可用架构,XXX高性能实践,XXX架构演进,怎么说的都不一样?
  • 。。。欢迎补充
阅读全文 »