SpringCloud面试题

3 篇文章 0 订阅

SpringCloud面试题

什么是微服务

微服务架构是一种架构模式,将单一应用程序划分成一组小的服务。每个服务运行在其独立的自己的进程中服务之间相互配合、相互协调,为用户提供最终价值。服务之间采用轻量级通信。每个服务都围绕具体业务进行构建,并能够独立部署到生产环境等。单独的模块只处理单独的业务逻辑。

微服务之间的通信

同步通信: dobbo通过 RPC 远程过程调用、springcloud通过 REST  接口json调用
异步通信: 消息队列

SpringCloud 和 Dubbo

Dubbo优势:

  • 单一应用架构:系统压力小时,一个应用就可以将所有功能部署在一起,节省成本,部署节点少
  • 垂直应用架构:访问量大时,将应用拆开,提升效率
  • 分布式服务架构:垂直应用增加时,将核心业务抽取出来独立,形成稳定的服务中心。

SpringCloud优势:

  • 开箱即用,快速启动
  • 使用与各种复杂场景
  • 轻量级的丰富组件,功能齐全
  • 约定优于配置

比较:

  1. Dubbo使用二进制传输,占用的带宽更少。
  2. SpringCloud使用http传输,带宽消耗较大。
  3. Dubbo的jar包依赖处理起来很麻烦
  4. Dubbo的注册中心可选zk,redis等,SpringCloud的注册中心只能是eureka或者自研
  5. SpringCloud的接口协议约定比较自由,需限制接口无序升级

总结:

DubboSpringCloud
服务注册中心Zookeepereureka
调用方式RPC基于http的rest api
服务监控Dubbo-monitorboot admin
断路器不完善hystrix
网关×zuul
分布式配置×config
服务跟踪×sleuth
消息总线×bus
数据流×stream
批量任务×task

SpringBoot 与 SpringCloud

SpringBoot是开发单个微服务。

SpringCloud:关注全局的微服务协调治理框架,将SpringBoot开发的一个个单体微服务组合并管理起来。
SpringBoot可以离开SpringCloud独立使用,但是SpringCloud不可以离开SpringBoot,属于依赖关系。

熔断与服务降级

熔断:

类似于电路上的保险丝,当服务出现宕机或者连接超时的情况,为了防止整个微服务挂掉

降级:

对某些负荷会比较高的情况,为了预防某些功能(业务场景)出现负荷过载或者响应慢的情况,在其内部暂时舍弃对一些非核心的接口和数据的请求,而直接返回一个提前准备好的fallback(退路)错误处理信息。这样,虽然提供的是一个有损的服务,但却保证了整个系统的稳定性和可用性

微服务的优缺点

优点:

  • 松耦合,聚焦单一业务功能,
  • 在开发中,不需要了解多有业务,只专注于当前功能
  • 微服务一个功能宕机,对其他功能影响并不是太大,可以快速定位问题。
  • 微服务只专注于当前业务逻辑代码,不会和 html、css 或其他界面进行混合。可以灵活搭配技术,独立性高。

缺点:

  • 随着服务数量增加,管理复杂,
  • 部署复杂,服务器需要增多,服务通信和调用压力增大,
  • 运维工程师压力增大,人力资源增多,
  • 系统依赖增强,
  • 数据一致性要求高
  • 需要性能监控

eureka和zookeeper的区别

  • zookeeper 是CP原则,强一致性和分区容错性
  • eureka 是AP 原则 可用性和分区容错性
  • zookeeper当主节点故障时,zk会在剩余节点重新选择主节点,耗时过长,虽然最终能够恢复,但是选取主节点期间会导致服务不可用
  • eureka各个节点是平等的,一个节点挂掉,其他节点仍会正常保证服务。

C(一致性)、A(可用性)和P(分区容错性)

微服务技术栈

微服务技术栈
服务开发Spingboot、SpringCloud、SpringMVC
配置管理Netfix的Archaius、阿里的Diamoind
注册发现eureka、zookeeper
远程调用rest rpc
熔断hystrix
负载均衡nginx ribbon
接口调用feign
消息队列rabbitMQ、Kafka
配置中心config、chef
路由网关zuul
服务监控zabbix nagios metrics spectator
全链路跟踪zipkin brave dapper
服务部署docker openstack kubemetes
数据流SpringCloudStream
消息总线SpringCloud Bus
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值