Spring Cloud 01 (入门)

简介
        微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。

        对于大型应用程序来说,增加更多的用户则意味着提供更大型的弹性计算云(EC2)实例规模,即便只是其中的一些功能扩大了规模亦是如此。其最终结果就是企业用户只需为支持超过微服务的那部分需求的EC2实例支付费用。

微服务的优点
        微服务应用的一个最大的优点是,它们往往比传统的应用程序更有效地利用计算资源。这是因为它们通过扩展组件来处理功能瓶颈问题。这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个完整的应用程序的全新迭代。最终的结果是有更多的资源可以提供给其它任务。
        微服务应用程序的另一个好处是,它们更快且更容易更新。当开发者对一个传统的单体应用程序进行变更时,他们必须做详细的QA测试,以确保变更不会影响其他特性或功能。但有了微服务,开发者可以更新应用程序的单个组件,而不会影响其他的部分。测试微服务应用程序仍然是必需的,但它更容易识别和隔离问题,从而加快开发速度并支持DevOps和持续应用程序开发。

第三个好处是,微服务架构有助于新兴的云服务,如事件驱动计算。类似AWS Lambda这样的功能让开发人员能够编写代码处于休眠状态,直到应用程序事件触发。事件处理时才需要使用计算资源,而企业只需要为每次事件,而不是固定数目的计算实例支付

项目架构演进

Spring Cloud 01 (入门)

单体架构优缺点

优点:容易测试、容易部署

缺点:开发效率低、代码维护难、部署不灵活、稳定性不高、扩展性不够

Web研发模式演变

    http://blog.jobbole.com/65509/

分布式定义

        旨在支持应用程序和服务的开发,可以利用物理架构由多个自治的处理元素不共享主内存,但通过网络发送消息合作

学习线路

        Spring Framework-->Spring Boot-->Spring Cloud

        Linux-->Docker

研究内容

    Eureka

            Eureka Server

            Eureka Client

            Eureka高可用

            服务发现机制

    Config

            Config Server

            Config Client

            Spring Cloud Bus(结合RabibtMQ)

    Ribbon

            RestTemplate

             Feign

             Ribbon(分析源码、了解底层) 

    Zuul

            动态路由

            校验

    Hystrix

           Hystrix Dashboar

            熔断机制