小伙伴们可以从第一篇看起

微服务 分布式 集群 负载均衡详述

spring boot springcloud dubbo概述

springcloud五大核心组件详述

一、SpringCloud概述

(1)SpringBoot

简化开发,不需要过多的配置,默认配置了很多框架的使用方式。
核心功能:
1.以jar包形式独立运行spring项目
2.内嵌servlet容器:可以选择内嵌tomcat和jetty
3.提供starter简化maven配置:使用了spring-boot-starter-web时会自动加载springboot的依赖包
4.自动配置spring:会根据在类路径中的jar包类自动配置bean
5.无代码生成和xml配置:主要动过注解实现

(2)SpringCloud

1.概念

  • SpringCloud,是一个开发工具集合,含有多个子项目。
  • 主要进一步基于Netflix开源组件的进一步封装,它利用SpringBoot的开发便利巧妙地简化了分布式系统基础设施的开发。
  • 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理,服务发现,断路器,路由,微代理,事件总线,全局锁,决策竞选,分布式会话等,他们可以利用springboot的开发风格做到一键启动和部署

2.核心组件架构

(1)服务注册中心Eureka:Eureka Server和Eureka Client
(2)配置中心Config:congfig Server和Config Client 结合SpringCloud Bus 实现配置自动刷新
(3)负载均衡器Ribbon:实现方式:
①Ribbon+RestTemplate
②Ribbon+Feign
(4)路由网关Zuul:主要功能
①动态路由
②校验
(5)断路器Hystrix:防止程序出错导致网络阻塞
Hystrix Dashboard:断路器监控,提供数据监控和友好的图形界面

(3)springboot和springcloud关系

1.springboot专注于快速方便的开发单个个体微服务
2.SpringCloud是关注全局的微服务协调整理治理框架,它将springboot开发的一个个单体微服务整合并管理起来
3.springboot可以离开SpringCloud独立使用开发项目,但是springcloud离不开springboot,属于依赖关系

(4)Dubbo和SpringCloud

  • 最大的区别:SpringCloud抛弃了Dubbo的远程过程通信的RPC方式,采用的是基于Http的Rest API方式。
    1.从使用方面看,Http接口只关注服务提供方,对于客户端怎么调用,
    调用方式怎样并不关心,而RPC服务则需要客户端接口与服务端保持一致
    2.从性能角度看,由于Http携带的信息过多,导致传输速度比RPC低
    虽然
    3.从灵活性看:rest相比RPC更灵活,服务提供方和调用方的依赖只依靠一纸契约,不存在代码级别的强依赖。
    4.从一定程度上来说,http的Rest API方式牺牲了服务调用的性能,但也避免了原生RPC带来的问题。

(5)为什么要选择springcloud呢

1、Dubbo只是实现了服务治理,其它组件如配置管理和服务跟踪等组件需要
依赖其它框架,使用门槛较高
2、SpringCloud,是一个解决微服务架构实施的综合性解决框架,整合了
诸多被广泛实践和证明过的框架,包括了服务治理的方方面面,如服务追踪、断路器、回退机制、消息总线、服务调用等组件。使用门槛较低

  • 品牌机与组装机的区别:
    很明显,SpringCloud比Dubbo功能更强大,而且能够与SpringFramework、springboot、SpringData、SpringBatch等其他spring项目完美融合。使用Dubbo构建的微服务框架就像组装电脑,各个环节我们选择的自由度很高,但最终结果有可能因为一条内存质量就点不亮了。SpringCloud就像品牌机,在SpringSource的整合下作了大量的兼容性测试,保证机器拥有更高的稳定性。
  • 对于技术发展的新需求,需要由开发者自行扩展升级(比如当当网弄出了Dubbox),这对于想采用微服务架构的中小型组织,显然不太合适,中小公司没有这么强大的技术修改dubbo源码+周围的一整台解决方案。
  • Dubbo始终是一款RPC框架,SpringCloud的目标是微服务架构下的一站式解决方案

在这里插入图片描述

(4)资料

官网
SpringCloud中国社区
springcloud中文网
书籍:
链接: https://pan.baidu.com/s/1MbCkiZ3FJsuiSOF5QknGmg
提取码: ct57
如果失效可以加小编微信wxid_oa4xyqaslq3122备注书籍

喜欢Java的,欢迎加入少年与java交流群5号,群聊号码:106643434

小伙伴们可以从第一篇看起
微服务 分布式 集群 负载均衡详述
spring boot springcloud dubbo概述
springcloud五大核心组件详述

如果看到这里,说明你喜欢这篇文章,请转发,点赞。关注微信公众号微信搜索[老板来一杯java]回复[进群]或者扫描下方二维码即可进入无广告交流群!回复[java]即可获取java基础经典面试一份!

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐