微服务实战 01 微服务的发展史

微服务实战 01 微服务的发展史

  • 微服务的发展史
  • 单体架构
  • 集群及垂直化
  • SOA 面向服务架构
  • 微服务架构
    • 微服务的优点
    • 微服务的挑战
    • 微服务的架构图
  • spring cloud
  • spring Cloud Alibaba

参考《Spring Cloud Alibaba 微服务原理与实战》

微服务的发展史

单体架构、垂直化和集群 -> SOA(面向服务架构)-> 维护服务架构

单体架构

微服务实战 01 微服务的发展史_第1张图片

这个系统架构非常简单,如果一个war包或者jar包里包含了一个应用的所有更能,则我们称这种架构为单体架构。这种架构的有点就是,能够快速开发和上线。

集群及垂直化

单体架构不能支撑业务的正常运行,可以有两个方面进行优化:

  1. 通过横向增加服务器,把单台机器变成多台机器的集群
    微服务实战 01 微服务的发展史_第2张图片

  2. 按照业务垂直领域进行差分,减少与的耦合度,降低范围war包的伸缩行困难
    微服务实战 01 微服务的发展史_第3张图片
    将系统进行了垂直拆分:用户子系统、库存子系统
    商品子系统,每个子系统有不同的业务团队负责独立部署

SOA 面向服务架构

是一种软件组建及开发的方式。核心目标是把一些通用、会被多个上层服务调用的共享业务提取成独立的基础服务,这些被提取出来的共享服务相对来说比较对立,并且可重复使用,在SOA中,服务是最核心的抽象手段,业务被划分为一些粗粒度和业务服务和业务流程。
在SOA中,会采用ESB(企业服务总线)来作为系统和服务之间的通信桥梁,实现了服务的调用者和服务的提供者之间的高度解耦
SOA主要解决了:

  • 信息孤岛
  • 共享业务的重用

微服务实战 01 微服务的发展史_第4张图片

微服务架构

面向服务(SOA)和微服务本质上都是服务化思想的一种体现,如果SOA是面向服务开发思想的出行,那么微服务就是针对可宠用业务服务的更进一步优化,我们可以把SOA看成微服务的超集,也就是多个微服务可以组成一个SOA服务。
由于SOA和微服务两者的关注点不一样,造成了两者有很大的却别:

  • SOA关注的是服务的重用性及解决信息孤岛的问题。
  • 微服务关注的是解耦,虽然解耦和可重用性从特定的角度来看是一样的,但本质上是有区别的,解耦是降低业务之间的耦合度,而重用性关注的是服务的复用。
  • 微服务会更多地关注在DevOps的持续交付上,因为服务力度细化之后是得开发运维变得更加重要,因此微服务与容器化技术结合的更加紧密
    微服务实战 01 微服务的发展史_第5张图片

微服务的优点

  1. 复杂度可控:因为体积小、复杂度低,开发和维护会更加简单
  2. 技术选型更加灵活:每个服务有不同的团队来维护,所以可以结合业务自由选择技术栈
  3. 可扩展性更强:可以根据每个微服务的性能要救和业务特点来对服务进行灵活扩展
  4. 独立部署:由于每个微服务都是一个独立运行的进程,所以可以实现独立部署
  5. 容错性:某一服务发生故障,我们可以是故障隔离在单个服务中

微服务的挑战

  • 故障排查: 交互的链路比较长,定位问题根源比较困难
  • 服务监控:服务监控开销比较大
  • 分布式架构的复杂性:分布式系统设计服务之间的远程通讯,从而增加了应用程序的复杂度。
  • 服务依赖:各个服务中之间存在更多的依赖关系,是系统整体各位复杂
  • 运维成本: 在微服务中,需要保证几百个微服务的正常运行,对运维来说挑战是巨大的

微服务的架构图

微服务实战 01 微服务的发展史_第6张图片

  • 分布式配置中心
  • 服务路由
  • 负载均衡
  • 熔断限流
  • 链路监控
    这些都需要对应的技术来实现

spring cloud

spring cloud 提供了让开发者快速构建微服务应用的工具,比如**配置管理、服务发现、熔断、智能路由等

spring cloud 主要致力于解决如下方案:

  1. 服务的注册与发现: Service registration and discovery
  2. 服务路由 Routing
  3. 服务调用 Service-to-service calls
  4. 负载均衡 Load balancing
  5. 断路器 Circuit BreaKers
  6. 全局锁 Global locks
  7. Leader选举及集群状态 Leadership election and cluster state
  8. 分布式消息 Distributed messaging

spring Cloud Alibaba

spring Cloud Alibaba 为微服务提供了一站式解决方案,使开发者通过Spring Cloud 编程模型轻松地解决微服务架构下的给雷技术问题, 他包含以下主要功能组件

  • Sentinel 流量控制和服务降级
  • Nacos 服务注册月发现
  • Nacos 分布式配置中心
  • RocketMQ 消息驱动
  • Seate 分布式事务
  • Dubbo RPC通信
  • OSS 阿里云对象存储

你可能感兴趣的:(springCloud,Alibaba,微服务,java,spring,cloud)