Spring-Cloud核心组件及底层原理

上述为-Cloud的微服务架构集大成者,云计算最佳业务实践 。
接触-cloud有一种男性荷尔蒙的冲动,特别想征服它,我觉得她是喜欢我的,让我想起了辛弃疾的诗:我见青山多抚媚,料青山见我应如是 。
既然两情相悦,那就让我们去深入了解一下,此处怎么深入…(想什么呢),那就教你一个PUA式的教程
好吧,就此打住吧,如果对上述特别有兴趣的话可以随时交流,回归正题 。
一、-Cloud的前世今生
1,首先我们是不是想去-Cloud是个什么?
这篇文章针对没有接触过spring-cloud,或者有经验的可以更加巩固一下,Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的开发便利性简化了分布式系统的开发,比如服务发现、服务网关、服务路由、链路追踪等 。Spring Cloud 并不重复造轮子,而是将市面上开发得比较好的模块集成进去,进行封装,从而减少了各模块的开发成本 。换句话说:Spring Cloud 提供了构建分布式系统所需的“全家桶” 。
2,-cloud当今现状?
目前,国内使用 Spring Cloud 技术的公司并不多见,不是因为 Spring Cloud 不好,主要原因有以下几点:Spring Cloud 中文文档较少,出现问题网上没有太多的解决方案 。国内创业型公司技术老大大多是阿里系员工,而阿里系多采用 Dubbo 来构建微服务架构 。大型公司基本都有自己的分布式解决方案,而中小型公司的架构很多用不上微服务,所以没有采用 Spring Cloud 的必要性 。但是,微服务架构是一个趋势,而 Spring Cloud 是微服务解决方案的佼佼者,这也是作者写本系列课程的意义所在 。
3,-cloud优缺点?
其主要优点有:集大成者,Spring Cloud 包含了微服务架构的方方面面 。约定优于配置,基于注解,没有配置文件 。轻量级组件,Spring Cloud 整合的组件大多比较轻量级,且都是各自领域的佼佼者 。开发简便,Spring Cloud 对各个组件进行了大量的封装,从而简化了开发 。开发灵活,Spring Cloud 的组件都是解耦的,开发人员可以灵活按需选择组件 。接下来,我们看下它的缺点:项目结构复杂,每一个组件或者每一个服务都需要创建一个项目 。部署门槛高,项目部署需要配合 Docker 等容器技术进行集群部署,而要想深入了解 Docker,学习成本高 。Spring Cloud 的优势是显而易见的 。因此对于想研究微服务架构的同学来说,学习 Spring Cloud 是一个不错的选择 。
二、-Cloud用法及业务场景
其实我也是刚接触-cloud,有点一见钟情的感觉,那就把握机会,错过就不再遇见 。
业务场景介绍:假设咱们现在开发一个在线视频学习的项目,实现支付订单的功能 。
流程如下:
针对上述,设计有订单服务、库存服务、仓库服务、积分服务、优惠券服务
大体的思路:
用户针对一个订单完成支付之后,就会去找订单服务,更新订单状态订单服务调用库存服务,完成相应功能订单服务调用仓库服务,完成相应功能订单服务调用积分服务,完成相应功能
整个支付订单业务流程结束,如图1清晰表明各服务间的调用过程:
那接下来让我们探索 Cloud微服务架构中,有哪几个组件,如何相互发挥作用及其背后的带头大哥?
Cloud由众多子项目组成,如 Cloud 、 Cloud 、 Cloud等,提供了搭建分布式系统及微服务常用的工具,如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性token、全局锁、选主、分布式会话和集群状态等,满足了构建微服务所需的所有解决方案 。
服务发现——Netflix Eureka客服端负载均衡——Netflix Ribbon断路器——Netflix Hystrix服务网关——Netflix Zuul分布式配置——Spring Cloud Config