• 架构方面的笔记


    开放封闭原则 (The Open Closed Principle)

    软件实体应该对扩展开放,对修改封闭。一般不要直接修改类库源码(即使你有源代码),通过继承等方式扩展。

    依赖倒置原则 (The Dependency Inversion Principle)

    高层模块不应该依赖于底层模块,二者都应该依赖于抽象。换句话说,依赖于抽象,不要依赖于具体实现。比方说,你不会把电器电源线焊死在室内电源接口处,而是用标准的插头插在标准的插座 (抽象) 上。

    信息专家:当不确定哪个团队应该负责某个微服务时,一般原则也是谁拥有数据谁负责,基于有界上下文 Bounded Context(一般是边界比较清晰的领域数据源)构建微服务。

    确保系统可以回滚到以前发布过的任何版本。可以通过发布系统保留历史版本,或者代码中引入动态开关切换机制 (Feature Switch)。

    尽可能无状态,只有当业务确实需要,才使用状态。无状态系统易于扩展,有状态系统不易扩展且状态复杂时更易出错。

    实现故障隔离设计,通过断路保护避免故障传播和交叉影响。通过舱壁泳道等机制隔离失败单元 (Failure Unit),一个单元的失败不至影响其它单元的正常工作。

    把后端服务 (例如缓存,数据库,MQ 等) 当作附加资源,相关配置和连接字符串通过环境变量注入,或者采用配置中心。

    CAP 认为:一个分布式系统最多同时满足一致性 (Consistency),可用性 (Availability) 和分区容忍性 (Partition Tolerance) 这三项中的两项。

  • 相关阅读:
    SEO优化之外链的末日来临
    【九章算法免费讲座第一期】转专业找CS工作的“打狗棒法”
    关于Windows下程序运行的说明
    bootstrap学习——javascript插件篇
    使用Linq 查询数据 构建对象 select new{}
    多级联动系列——ajax调用XML实现三级联动
    C语言指针实现字符串的反转
    分布式事物的原理图
    计算机网络之物理层笔记
    reveal end of document
  • 原文地址:https://www.cnblogs.com/linyx/p/9853062.html
Copyright © 2020-2023  润新知