2020互联网Java后端面试必备解析—SpringCloud篇

学习导图
这篇文章来分享一下面试必备的Spring Cloud问题解析! 用XMind画了一张导图记录 Spring Cloud 的学习笔记和一些面试解析
在这里插入图片描述

1.什么是微服务
微服务是一种架构⻛格,也是⼀种服务;
微服务的颗粒⽐较⼩,⼀个⼤型复杂软件应⽤由多个微服务组成,⽐如Netflix⽬前由500多的微服务组成;
它采用UNIX设计的哲学,每种服务只做⼀件事,是⼀种松耦合的能够被独⽴开发和部署的⽆状态化服务(独⽴扩展、升级和可替换)。
2. 微服务之间是如何独立通讯的在这里插入图片描述
Dubbo 使用的是 RPC 通信,⼆进制传输,占⽤带宽⼩;
Spring Cloud 使⽤的是 HTTP RESTFul ⽅式。
2020互联网Java后端面试必备解析—SpringCloud篇
3. springcloud和dubbo有哪些区别
Dubbo具有调度、发现、监控、治理等功能,⽀持相当丰富的服务治理能力。Dubbo架构下,注册中⼼对等集群,并会缓存服务列表已被数据库失效时继续提供发现功能,本身的服务发现结构有很强的可⽤性与健壮性,⾜够⽀持⾼访问量的⽹站。
虽然Dubbo ⽀持短连接⼤数据量的服务提供模式,但绝大多数情况下都是使⽤⻓连接⼩数据量的模式提供服务使⽤的。所以,对于类似于电商等同步调⽤场景多并且能⽀撑搭建Dubbo 这套⽐较复杂环境的成本的产品⽽⾔,Dubbo 确实是一个可以考虑的选择。但如果产品业务中由于后台业务逻辑复杂、时间⻓⽽导致异步逻辑⽐较多的话,可能Dubbo 并不合适。同时,对于⼈⼿不⾜的初创产品⽽⾔,这么重的架构维护起来也不是很方便。
Spring Cloud由众多⼦项⽬组成,如Spring Cloud Config、Spring Cloud Netflix、Spring Cloud Consul 等,提供了搭建分布式系统及微服务常用的⼯具,如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性token、全局锁、选主、分布式会话和集群状态等,满足了构建微服务所需的所有解决⽅案。⽐如使⽤Spring Cloud Config 可以实现统⼀配置中⼼,对配置进⾏统⼀管理;使⽤Spring Cloud Netflix 可以实现Netflix 组件的功能 - 服务发现(Eureka)、智能路由(Zuul)、客户端负载均衡(Ribbon)。
Dubbo 提供了各种 Filter,对于上述中“⽆”的要素,可以通过扩展 Filter 来完善。
dubbo的开发难度较⼤,原因是dubbo的jar包依赖问题很多⼤型⼯程⽆法解决。

4. springboot和springcloud认识
Spring Boot 是 Spring 的⼀套快速配置脚⼿架,可以基于Spring Boot 快速开发单个微服务,Spring Cloud是一个基于Spring Boot实现的云应⽤开发⼯具;
Spring Boot专注于快速、⽅便集成的单个微服务个体,Spring Cloud关注全局的服务治理框架;
Spring Boot使⽤了默认⼤于配置的理念,很多集成⽅案已经帮你选择好了,能不配置就不配置;
Spring Cloud很⼤的⼀部分是基于Spring Boot来实现,可以不基于Spring Boot吗?不可以。
5. 什么是服务熔断,什么是服务降级
服务熔断:
如果检查出来频繁超时,就把consumer调⽤provider的请求,直接短路掉,不实际调⽤,⽽是直接返回⼀个mock的值。

服务降级:
consumer 端: consumer 如果发现某个provider出现异常情况,⽐如,经常超时(可能是熔断引起的降级),数据错误,这时,consumer可以采取⼀定的策略,降级provider的逻辑,基本的有直接返回固定的数据。

provider 端: 当provider 发现流量激增的时候,为了保护⾃身的稳定性,也可能考虑降级服务。

1.直接给consumer返回固定数据

2.需要实时写⼊数据库的,先缓存到队列⾥,异步写⼊数据库。

  1. 微服务的优缺点
    优点:
    单⼀职责&#x
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值