微服务架构与实践2_微服务架构

微服务遵循前提:

  • 业务独立性:推荐书籍 Eric Evans《领域驱动模型》
  • 团队自主性:

 

特点

  • 单一职责:推荐书籍 Robert C.Martin《敏捷软件开发:原则、模式和实现》
  • 轻量级通信:语言无关、平台无关的交互方式

  • 独立性:交付过程中,开发(功能)、测试、部署的独立性;服务与服务的独立、隔离;

 

 

  •  进程隔离

 

 

 背景

 

 

互联网时代的产品特点:

  • 需求变化快
  • 用户群体庞大

 

价值观、方法论=》可遵循、可参考、可实施的交付体系

  • 精益创业Lean Startup=》最小可实行产品Minimum Viable Product
  • 敏捷方法
  • 持续交付
  • 云、虚拟化、基础设施自动化Infrastructure as Code:
  • DevOps文化的推行

 

容器虚拟化技术

Docker的优势 》一个节点运行成百上千的Docker容器 》解决微服务的环境搭建、部署、运维成本高的问题

  • 更快速的交付、部署:镜像
  • 更轻松的迁移、扩展:可以在任意平台迁移(物理机、虚拟机、公有云、私有云……)
  • 更简单的管理:镜像修改以增量方式分发、更新

 

 

SOA面向服务架构 vs 微服务

 

 

 

 

 微服务的本质:

  • 服务作为组件Component:组件可以被独立部署
    • 定义了清晰的、语言无关、平台无关的接口
    • 分布式调用比进程调用更消耗时间
    • 严重依赖网络的可靠性、稳定性

 

 

  • 围绕业务组织团队

 

  • 关注产品而非项目

  • 技术多样性

 

  • 业务数据独立
    • 业务数据接口继承,而非以数据库的方式同其他服务继承
    • 随业务发张,选择更合适的工具管理、迁移业务数据

 

  • 基础设施自动化
    • 部署、运维的成本随服务的增多呈指数级增长
    • 云技术、持续继承、持续交付
  • 演进式架构
    • 业务驱动架构,架构服务于业务

 

 

 

微服务的优势

  • 独立性
  • 单一职责
  • 技术多样性

实施需要考虑的因素:

  • 分布式系统的复杂度
    • 分布式系统的复杂度
      • 性能:网络延迟、带宽;多服务相互协作时,响应时间、性能
      • 可靠性:网络、带宽、节点自身的可靠性=》组件间远程调用;单点故障
      • 异步:异步通信的定位问题、调试问题难度更大
      • 数据一致性:跨多个节点来保证数据的瞬时一致性||数据的最终一致性
      • 工具:开发、调试工具没有足够支持
    运维成本:每个服务独立配置、部署、监控、日志收集=》成本呈指数级增长
    • 配置
    • 部署
    • 监控、警告
    • 日志收集
  • 部署自动化:构建自动化部署流水线
  • DevOps与组织架构
  • 服务间依赖测试
  • 服务间依赖管理

 

转载于:https://www.cnblogs.com/panpanwelcome/p/8855273.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值