微服务架构
[{
"id" : "2",
"name" : "微服务架构",
"children" : [ {
"id" : "3",
"name" : "单体架构",
"children" : [ {
"id" : "5",
"name" : "三层架构",
"children" : [ {
"id" : "7",
"name" : "逻辑分层",
"children" : [ {
"id" : "9",
"name" : "表示层",
"children" : [ ]
}, {
"id" : "11",
"name" : "业务逻辑层",
"children" : [ ]
}, {
"id" : "13",
"name" : "数据访问层",
"children" : [ ]
} ]
}, {
"id" : "15",
"name" : "优势",
"children" : [ {
"id" : "17",
"name" : "解决了系统间调用复杂、代码职责不清的问题",
"children" : [ ]
}, {
"id" : "19",
"name" : "降低了代码之间的耦合度",
"children" : [ ]
} ]
} ]
}, {
"id" : "21",
"name" : "单体架构",
"children" : [ {
"id" : "23",
"name" : "概念",
"children" : [ {
"id" : "25",
"name" : "三层架构是逻辑分层",
"children" : [ ]
}, {
"id" : "27",
"name" : "代码运行于同一个进程",
"children" : [ ]
}, {
"id" : "29",
"name" : "功能集中,代码中心化、一个发布包",
"children" : [ ]
} ]
}, {
"id" : "31",
"name" : "优势",
"children" : [ {
"id" : "33",
"name" : "易开发",
"children" : [ ]
}, {
"id" : "35",
"name" : "易测试",
"children" : [ ]
}, {
"id" : "37",
"name" : "易部署",
"children" : [ ]
}, {
"id" : "39",
"name" : "易水平扩展",
"children" : [ {
"id" : "41",
"name" : "复制应用,做负载均衡",
"children" : [ ]
} ]
} ]
}, {
"id" : "43",
"name" : "不足",
"children" : [ {
"id" : "45",
"name" : "复杂度高,代码可维护性、扩展性、灵活性降低",
"children" : [ ]
}, {
"id" : "47",
"name" : "系统修改、构建以及维护成本增加",
"children" : [ ]
}, {
"id" : "49",
"name" : "技术更新困难、难以使用新技术",
"children" : [ ]
} ]
} ]
} ]
}, {
"id" : "51",
"name" : "定义",
"children" : [ {
"id" : "53",
"name" : "一种架构模式,提倡将单一应用划分为多个小的服务,服务之间相互协调、互相配合最终为用户服务",
"children" : [ ]
}, {
"id" : "55",
"name" : "每个服务运行在独立的进程中,能够独立发布",
"children" : [ ]
}, {
"id" : "57",
"name" : "服务间采用轻量级的通信机制(RESTful)",
"children" : [ ]
}, {
"id" : "59",
"name" : "依据单一业务功能进行服务划分",
"children" : [ ]
} ]
}, {
"id" : "61",
"name" : "诞生背景",
"children" : [ {
"id" : "63",
"name" : "互联网高速发展",
"children" : [ {
"id" : "65",
"name" : "需求变化快",
"children" : [ ]
}, {
"id" : "67",
"name" : "用户群体庞大",
"children" : [ ]
} ]
}, {
"id" : "69",
"name" : "传统的单体架构无法适应互联网发展",
"children" : [ ]
}, {
"id" : "71",
"name" : "敏捷、精益、持续交付、DevOps",
"children" : [ ]
}, {
"id" : "73",
"name" : "容器虚拟化技术",
"children" : [ {
"id" : "75",
"name" : "快速部署和交付",
"children" : [ ]
}, {
"id" : "77",
"name" : "迁移和扩展简单",
"children" : [ ]
}, {
"id" : "79",
"name" : "易管理",
"children" : [ ]
} ]
} ]
}, {
"id" : "81",
"name" : "微服务与SOA",
"children" : [ {
"id" : "83",
"name" : "SOA",
"children" : [ {
"id" : "85",
"name" : "企业级,自顶向下",
"children" : [ ]
}, {
"id" : "87",
"name" : "子系统,粗粒度",
"children" : [ ]
}, {
"id" : "89",
"name" : "ESB为中心,集中式",
"children" : [ ]
}, {
"id" : "91",
"name" : "集成复杂(ESB/WS/SOAP)",
"children" : [ ]
}, {
"id" : "93",
"name" : "单体架构,依赖、部署复杂",
"children" : [ ]
} ]
}, {
"id" : "95",
"name" : "微服务",
"children" : [ {
"id" : "97",
"name" : "团队级,自底向上",
"children" : [ ]
}, {
"id" : "99",
"name" : "子服务,细粒度",
"children" : [ ]
}, {
"id" : "101",
"name" : "无中心,松散",
"children" : [ ]
}, {
"id" : "103",
"name" : "集成简单(HTTP/REST/JSON)",
"children" : [ ]
}, {
"id" : "105",
"name" : "服务独立部署",
"children" : [ ]
} ]
} ]
}, {
"id" : "107",
"name" : "康威法则",
"children" : [ {
"id" : "109",
"name" : "组织的设计成果,其结构往往对应于这个组织中的沟通和组织结构",
"children" : [ ]
} ]
}, {
"id" : "111",
"name" : "微服务的特点",
"children" : [ {
"id" : "113",
"name" : "服务组件化",
"children" : [ ]
}, {
"id" : "115",
"name" : "按业务组织团队",
"children" : [ ]
}, {
"id" : "117",
"name" : "做产品的态度",
"children" : [ ]
}, {
"id" : "119",
"name" : "智能端点和哑管道",
"children" : [ ]
}, {
"id" : "121",
"name" : "去中心化治理",
"children" : [ ]
}, {
"id" : "123",
"name" : "去中心化管理数据",
"children" : [ ]
}, {
"id" : "125",
"name" : "基础设施自动化",
"children" : [ {
"id" : "127",
"name" : "自动化测试",
"children" : [ ]
}, {
"id" : "129",
"name" : "自动化集成",
"children" : [ ]
}, {
"id" : "131",
"name" : "自动化部署",
"children" : [ ]
} ]
}, {
"id" : "133",
"name" : "容错设计",
"children" : [ {
"id" : "135",
"name" : "故障自动检测",
"children" : [ ]
}, {
"id" : "137",
"name" : "故障自动恢复",
"children" : [ ]
} ]
}, {
"id" : "139",
"name" : "演进式设计",
"children" : [ {
"id" : "141",
"name" : "演进的方式构建系统",
"children" : [ ]
}, {
"id" : "143",
"name" : "从单体架构逐步微服务化",
"children" : [ ]
} ]
} ]
}, {
"id" : "145",
"name" : "微服务的优势",
"children" : [ {
"id" : "147",
"name" : "单一性",
"children" : [ {
"id" : "149",
"name" : "分解为多个服务,解决复杂性",
"children" : [ ]
}, {
"id" : "151",
"name" : "聚焦单一业务功能,易开发、维护和理解",
"children" : [ ]
} ]
}, {
"id" : "153",
"name" : "独立性",
"children" : [ {
"id" : "155",
"name" : "独立开发、测试、构建",
"children" : [ ]
}, {
"id" : "157",
"name" : "服务可独立扩展",
"children" : [ ]
}, {
"id" : "159",
"name" : "独立部署",
"children" : [ ]
} ]
}, {
"id" : "161",
"name" : "技术多样性",
"children" : [ {
"id" : "163",
"name" : "独立团队开发",
"children" : [ ]
}, {
"id" : "165",
"name" : "自由选择技术,提供API",
"children" : [ ]
} ]
}, {
"id" : "167",
"name" : "快速部署和交付",
"children" : [ {
"id" : "169",
"name" : "每个服务独立部署",
"children" : [ ]
}, {
"id" : "171",
"name" : "不需要协调其他服务",
"children" : [ ]
} ]
} ]
}, {
"id" : "173",
"name" : "微服务的不足",
"children" : [ {
"id" : "175",
"name" : "分布式系统固有的复杂性",
"children" : [ {
"id" : "177",
"name" : "性能",
"children" : [ {
"id" : "179",
"name" : "服务间跨进程、跨网络调用",
"children" : [ ]
}, {
"id" : "181",
"name" : "多个服务协作下的性能",
"children" : [ ]
} ]
}, {
"id" : "183",
"name" : "可靠性",
"children" : [ {
"id" : "185",
"name" : "服务量大,单节点故障率",
"children" : [ ]
}, {
"id" : "187",
"name" : "网络、带宽等物理条件",
"children" : [ ]
} ]
}, {
"id" : "189",
"name" : "数据一致性",
"children" : [ {
"id" : "191",
"name" : "分布式事务",
"children" : [ ]
}, {
"id" : "193",
"name" : "CAP理论",
"children" : [ ]
} ]
} ]
}, {
"id" : "195",
"name" : "运维成本高",
"children" : [ ]
}, {
"id" : "197",
"name" : "测试困难",
"children" : [ ]
}, {
"id" : "199",
"name" : "自动化部署",
"children" : [ ]
}, {
"id" : "201",
"name" : "依赖管理",
"children" : [ ]
} ]
} ]
}]