spring boot、SpringCloud、Dubbo
什么是SpringCloud?什么是SpringBoot?以及两者关系?springboot和Dubbo的区别?微服务框架如何进行选型?SpringCloud核心组件架构?
小伙伴们可以从第一篇看起
spring boot springcloud dubbo概述
目录
一、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基础经典面试一份!
更多推荐
所有评论(0)