Spring Cloud 微服务简介

Spring Cloud 微服务简介

Scroll Down

网站架构演变过程

  1. 传统架构
    传统的网站架构,分为三层架构模式:web控制层、业务逻辑层、数据库访问层。
    传统架构也是单点应用,即SSH或SSM框架,业务没有拆分,都在一个框架当中。一般适合个人或者小型团队开发

  2. 分布式架构
    分布式架构是基于传统架构演变过来的,她将传统的单体项目以项目模块进行拆分,从而降低项目的耦合性。

  3. SOA架构
    SOA架构代表面向服务架构,俗称为服务化。通常理解为面向于业务逻辑层开发,将共同的业务逻辑抽取出来形成一个服务,提供给其他服务接口调用,服务与服务之间使用RPC远程技术调用。
    SOA架构缺点:
    a、SOA架构中通常使用XML 方式实现通讯,在高并发情况下XML比较冗余会带来极大的影响。所以最后的微服务中采用的是JSON代替XML。
    b、SOA架构的底层是通过WebService 和 ESB, ,Web Service技术是SOA服务化的一种实现方式,WebService底层采用soap协议进行通讯,soap协议就是Http或者是Https通道传输XML数据实现的协议。
    c、依赖与中心化服务发现机制
    d、服务管理非常混乱,缺少服务管理和治理设备不完善

    SOA架构.png

  4. 微服务架构
            微服务是从SOA架构演变过来的,相比于SOA架构,她在粒度上更加精细,目的是为了提高效率。每个服务与服务之间互不干扰,每个服务必须独立部署,微服务架构更加体现轻量级,采用restful风格提供API,也就是HTTP协议 + JSON格式进行传输,更加轻巧,更加适合互联网公司敏捷开发、快速迭代产品。

  • 微服务架构有什么特征?
    a、微服务架构倡导应用程序设计程多个独立、可配置、可运行和可微服务的子服务。
    b、服务与服务通讯协议采用Http协议,使用restful风格API形式来进行通讯,数据交换格式轻量级json格式通讯,整个传输过程中,采用二进制,所以http协议可以跨语言平台,并且可以和其他不同的语言进行相互的通讯,所以很多开放平台都采用http协议接口。

Spring Cloud 微服务框架

在众多微服务框架中,为什么选用Spring Cloud?
        因为SpringCloud提供了一套完整的微服务解决方案,不像其他框架只解决了微服务中的某个问题。

服务治理: 阿里巴巴开源的Dubbo和当当网在其基础上扩展的Dubbox、Eureka、Apache 的Consul等
分布式配置中心: 百度的disconf、Netfix的Archaius、360的QConf、SpringCloud、携程的阿波罗等。
分布式任务:xxl-job、elastic-job、springcloud的task等。
服务跟踪:京东的hyra、springcloud的sleuth等

SpringCloud简介

SpringCloud是基于SpringBoot基础之上开发的微服务框架,SpringCloud是一套目前非常完整的微服务解决方案框架,其内容包含服务治理、注册中心、配置管理、断路器、智能路由、微代理、控制总线、全局锁、分布式会话等。

SpringCloud包含众多的子项目
        SpringCloud config 分布式配置中心

        SpringCloud netflix 核心组件

        Eureka:服务治理 注册中心

        Hystrix:服务保护框架

        Ribbon:客户端负载均衡器

        Feign:基于ribbon和hystrix的声明式服务调用组件

        Zuul: 网关组件,提供智能路由、访问过滤等功能。

微服务.png