zoukankan      html  css  js  c++  java
  • 架构方面的笔记

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

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

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

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

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

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

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

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

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

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

  • 相关阅读:
    DB2数据库BACKUP PENDING状态(修改日志模式导致)(转)
    JAVA调用WebService实例
    eclipse启动报JVM terminated. Exit code=-1的解决方法
    JAVA使用Dom4j组装、解析XML
    任务调度IBM Tivoli Workload Scheduler(TWS)
    Java遍历Map数据的几种方式
    谈谈我对Log4j2以外的感想
    ESQL中添加JMS参数
    node.js-node-inspector调试
    前端-浏览器内核
  • 原文地址:https://www.cnblogs.com/linyx/p/9853062.html
Copyright © 2011-2022 走看看