> 文档中心 > 浅析微服务架构

浅析微服务架构


一、什么是微服务架构?

简单的描述,微服务是系统架构设计方面的一种风格,它的设计精髓是将原本一个独立的系统进行拆分成多个小应用。这些应用都在各自独立的进程中运行,拥有各自执行的cpu资源,互不影响。若一个应用挂了也不影响其他的系统。并且每一个应用都维护着各自的数据存储,业务开发,自动化部署案例和独立的部署机制。

二、与传统单体应用的区别

1、随着后期业务的拓展和维护,单体应用变得日益臃肿,难以维护。微服务易于拓展,且模块之间耦合度低。
2、微服务项目一个服务占据一个进程,单体应用整个系统运行在一个进程中。
3、单体应用系统哪怕是修改很小的功能在部署的时候都会影响其他模块的功能,微服务则不会影响。
4、在性能评估方面微服务易于评估,更容易发现系统的瓶颈。

三、为什么选择Spring Cloud

Sprig Cloud集成了一系列服务治理的组件,又在新体系上创建了一系列边缘组件。比如集成的组件有:服务注册组件Netflix的Eureka Server 和服务发现组件Eureka Client、负载均衡组件Ribbon等。对于实施微服务还未形成体系的团队来说,这将是一个有吸引力的框架选择,不论其项目发展的目标,还是Spring的强大背景,都是企业顶级架构师必须了解的框架。

四、Spring Cloud简介

Spring Cloud是基于Spring boot实现的一个微服务框架。它包含了一系列微服务开发的组件,包括配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁等。以下是常见组件的简单介绍。

  1. Spring Cloud Netflix

    核心组件,对多个NetFlix OSS开源组件进行整合。有如下的子套件
    (1)Eureka服务治理组件,包含服务注册中心,以及服务发现机制。
    (2)Hystrix:容错管理组件,实现断路器模式,为服务出现的故障和延迟提供容错机制。
    (3)Ribbon:客户端负载均衡组件。
    (4)Feign:声明式服务调用组件。
    (5)Zuul:网关组件,提供智能路由,访问过滤等功能。

  2. Spring Cloud Bus:事件和消息总线,传输系统集群中的事件和消息。

  3. Spring Cloud Config:配置管理工具,支持git提交和更新配置内容,实现 应用配置的外部化存储,支持客户端信息刷新等。

  4. Spring Cloud Stream:通过消息中间件和缓存数据库,比如redis和rabbitMq实现消费微服务。

  5. Spring Cloud Sleuth:微服务分布式跟踪实现。