zoukankan      html  css  js  c++  java
  • 11.DDD与微服务设计模式笔记

    ---------------------------------------------------------------------------------

    单体架构到位服务

    软件生命周期与架构演化

     

    微服务立方体

     

    最好的架构是演化过来

    微服务拆分示例——典型电商系统的架构演化

     

    微服务横向扩展划分——共享核心功能模式

     

    微服务数据分区

     

    ---------------------------------------------------------------------------------------

    如何设计一个为服务系统

    微服务系统的优缺点

    优点

    缺点

    更为敏捷

    整个系统更加复杂

    更小,更专注的团队

    开发和测试面临更多挑战

    更小的codebase

    分布式带来管控难题

    自由选择不同的技术栈

    网络瓶颈和延迟

    问题隔离

    数据一致性

    扩展性/扩容容易

    管理文化挑战

    数据隔离

    多服务版本对齐控制

    技术能力要求高

    微服务设计示例:Boat House无人机送餐系统

    S1-领域模型Domain Model设计

     

    S3 单一领域结构分析(Shipping Domain)

     

    s4——单一领域流程f分析(Shipping Domain)

     

    S5——应用服务边界和条用关系设计

     S7应用服务部署设计

     

     S8服务见通讯机制设计

     

     S9.CI/CD流水线设计

     

    --------------------------------------------------------------------------------------

    12要素法制(Software as a Service设计准则/Cloud Native应用设计准则

    基准代码:一份基准代码,多分部署(快速交付:合理划分边界,良好的软件生命周期管理)

    依赖:显式声明依赖关系(提升开发效率:标准化,排除意外风险)

    配置:在环境存储配置(软件发布管理:将配置转为环境变量)

    后端服务:吧后端服务当作附加资源(弹性/敏捷:使用断路器,松散绑定)

    构建、发布、运行:严格分离构建和运行(软件发布管理:通过流水线实现CI/CD自动化)

    进程:以一个火多个无状态进程运行应用(云兼容性:将状态管理交给后端服务)

    端口绑定:通过端口绑定提供服务(运营效率:应用服务只需要知道url地址与对应端口)

    并发:通过进程模型进行扩展(自动弹性伸缩:转为云台设计,使用PCF的功)

    易处理:快速启动和优雅终止可最大化健壮性(自动弹性伸缩:将缓慢的进程转变为后端服务)

    开发环境与线上环境等价:尽可能的保持开发、预发布,线上环境相同(可靠性:凭借云平台,获得等价性)

    日志:把日志当作事件流(实时系统指标:日志管理系统)

    管理进程:后台管理任务当作一次性进程运行(可靠性:转变为后端服务,并暴露为REST接口)

  • 相关阅读:
    解读《TCP/IP详解》(卷1):05章:RARP(逆地址解析协议)
    Android中利用“反射”动态加载R文件中的资源
    “骆驼”怎么写
    eclipse无法访问genymotion模拟器下/data/data文件解决方案
    解读《TCP/IP详解》(卷1):03章:IP(网际协议)
    解读《TCP/IP详解》(卷1):02章:链路层
    hdu1039 java正则表达式解法
    hdu1027 又是next_permutaiton
    hdu1261 java水过高精度排列组合。。
    hdu1716 STL next_permutation函数的使用
  • 原文地址:https://www.cnblogs.com/aixiaoxiaoyu/p/12590422.html
Copyright © 2011-2022 走看看