SpringCloud

简介:

SpringCloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

优点:

  1. 服务拆分粒度更细,有利于资源重复利用,有利于提高开发效率。
  2. 可以更精准的制定优化服务方案,提高系统的可维护性。
  3. 微服务架构采用去中心化思想,服务之间采用Restful等轻量级通讯,比ESB更轻量。
  4. 适于互联网时代,产品迭代周期更短。

缺点:

  1. 分布式系统开发的成本高(容错,分布式事务等)对团队挑战大。

spring cloud 的核心组件:

  • Eureka:服务注册于发现。

  • Feign:基于动态代理机制,根据注解和选择的机器,拼接请求 url 地址,发起请求。

  • Ribbon:实现负载均衡,从一个服务的多台机器中选择一台。

  • Hystrix:提供线程池,不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务雪崩的问题。

  • Zuul:网关管理,由 Zuul 网关转发请求给对应的服务。

SpringBoot 和 SpringCloud:

SpringBoot是Spring推出用于解决传统框架配置文件冗余,装配组件繁杂的基于Maven的解决方案,旨在快速搭建单个微服务
而SpringCloud专注于解决各个微服务之间的协调与配置,服务之间的通信,熔断,负载均衡等
技术维度并相同,并且SpringCloud是依赖于SpringBoot的,而SpringBoot并不是依赖与SpringCloud,甚至还可以和Dubbo进行优秀的整合开发

总结:

  • SpringBoot专注于快速方便的开发单个个体的微服务

  • SpringCloud是关注全局的微服务协调整理治理框架,整合并管理各个微服务,为各个微服务之间提供,配置管理,服务发现,断路器,路由,事件总线等集成服务

  • SpringBoot不依赖于SpringCloud,SpringCloud依赖于SpringBoot,属于依赖关系

  • SpringBoot专注于快速,方便的开发单个的微服务个体,SpringCloud关注全局的服务治理框架

SpringCloud 和 Dubbo:

Dubbo 只是实现了服务治理,而 Spring Cloud 实现了微服务架构的方方面面,服务治理只是其中的一个方面。下面通过一张图对其进行比较:

可以看出,Spring Cloud 比较全面,而 Dubbo 由于只实现了服务治理,需要集成其他模块,需要单独引入,增加了学习成本和集成成本。

SpringCloud 学习路线

SpringCloud基于SpringBoot,因此在研究SpringCloud之前,首先要学习SpringBoot的用法,方便后续SpringCloud的学习。

学习SpringCloud大致可以为四个部分:

  • 第一部分初识Spring Boot,掌握SpringBoot基础知识,为后续入门SpringCloud打好基础 。
  • 第二部分SpringCloud入门篇,主要介绍SpringCloud常用模块,包括服务发现、服务注册、配置中心、链路追踪、异常处理等。
  • 第三部分SpringCloud进阶篇,介绍大型分布式系统中事务处理、线程安全等问题,并以一个实例项目手把手教大家搭建完整的微服务系统。
  • 第四部分SpringCloud高级篇,解析SpringCloud源码,并讲解如何部署基于SpringCloud的大型分布式系统。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值