• 学习~从0开始学架构~1


    架构设计的关键思维是判断和取舍

    架构是顶层设计;框架是面向编程或配置的半成品;组件是从技术维度上的复用;模块是从业务维度上职责的划分;系统是相互协同可运行的实体。

    高性能带来的复杂度:

    • 单台-多进程/多线程/通信等方方面面,比如:Nginx 可以用多进程也可以用多线程,JBoss 采用的是多线程;Redis 采用的是单进程,Memcache 采用的是多线程,这些系统都实现了高性能,但内部实现差异却很大
    • 集群-任务分配(分配器 / 分配算法)/任务分解

    高可用 - 冗余:

    • 计算高可用
    • 存储高可用,难点不在于如何备份数据,而在于如何减少或者规避数据不一致对业务造成的影响

     状态决策:

    • 独裁式的决策方式不会出现决策混乱的问题,因为只有一个决策者,但问题也正是在于只有一个决策者。当决策者本身故障时,整个系统就无法实现准确的状态决策。如果决策者本身又做一套状态决策,那就陷入一个递归的死循环了。 master/slave
    • 协商式两台连接通信,先2备,再通信协商谁是主
    • 民主式多个独立的个体通过投票的方式来进行状态决策

    可扩展

    • 预测变化
    • 应对变化,分离变化层和稳定层,面向接口,如下例

    成本

    安全

    规模

  • 相关阅读:
    使用Junit等工具进行单元测试
    软件工程学习、问题
    贪吃蛇
    使用Junit工具进行单元测试
    两人组
    软件工程的理解
    使用工具进行单元测试
    对软件工程的理解
    单元测试
    我对软件工程的理解
  • 原文地址:https://www.cnblogs.com/it-worker365/p/14604823.html
Copyright © 2020-2023  润新知