框架之spring cloud面试题


1. 什么是springcloud

我所理解的 Spring Cloud 就是微服务系统架构的一站式解决方案,在平时我们构建微服务的过程中需要做如 服务发现注册 、配置中心 、消息总线 、负载均衡 、断路器 、数据监控 等操作,而 Spring Cloud 为我们提供了一套简易的编程模型,使我们能在 Spring Boot 的基础上轻松地实现微服务项目的构建。

在这里插入图片描述


2. 微服务架构的优点

降低了业务之间的耦合度-----每个服务中只包含一种业务
便于服务的拓展----如果用户服务访问压力很大;我们就可以针对用户这个服务搭建集群,其他服务不能动;


3. 微服务架构体系

在这里插入图片描述


4. CAP理论,BASE理论

在这里插入图片描述


5. Ribbon负载均衡算法、类型,如何配置

Ribbon负载均衡算法的类型
如何配置

在这里插入图片描述


6. 分布式架构下,Session 共享有什么方案

分布式环境中HttpSession不能共享
使用cookie来完成
用户登录成功后,将用户信息存储到cookie中
下次客户端访问服务器,通过判断是否有cookie从而判断是否登录
使用Nginx中的ip绑定策略,同一个ip只能在指定的同一个机器访问(不支持负载均衡)
使用数据库同步session(效率不高)
用户登录成功后,将用户信息存储到session,然将session存储到数据库。
下次客户端访问服务器,从数据库中获取用户session;判断用户是否登录
使用tomcat内置的session同步(同步可能会产生延迟)
使用token代替session(推荐)
使用Spring-Session+Redis实现
在这里插入图片描述


7. 简述你对RPC、RMI的理解

RPC:在本地调用远程的函数,远程过程调用,可以跨语言实现 httpClient
RMI:远程方法调用,java中用于实现RPC的一种机制,RPC的java版本,是J2EE的网络调用机制,跨JVM调用对象的方法,面向对象的思维方式


8.微服务监控用的是什么技术

微服务架构监控通常使用的就是链路追踪
目前主流的链路追踪技术
SkyWalking
Zipkin+Sleuth
这些链路追踪技术都实现opentrace标准


9. 分布式id生成方案

uuid: UUID长度过长,不适用于存储,耗费数据库性能。 ID无一定业务含义,可读性差。
基于redis、mongodb、zk等中间件生成
雪花算法

在这里插入图片描述


10. 分布式锁解决方案

需要这个锁独立于每一个服务之外,而不是在服务里面
数据库:利用主键冲突控制一次只有一个线程能获取锁,非阻塞、不可重入、单点、失效时间
Zookeeper分布式锁
Redis分布式锁
在这里插入图片描述


11. 分布式事务解决方案

两阶段协议
三阶段协议
TCC(补偿事务)
消息队列的事务消息
在这里插入图片描述


12. zk和eureka的区别

zk:CP设计(强一致性),目标是一个分布式的协调系统,用于进行资源的统一管理。
eureka:AP设计(高可用),目标是一个服务注册发现系统,专门用于微服务的服务发现注册。


13. 高并发场景下如何实现系统限流

Nginx限流
OpenResty限流
Sentinel限流
Redis+Lua限流
Spring Cloud Gateway限流
在这里插入图片描述


14. springcloud核心组件及其作用

注册中心(nacos,eureka)
客户端负载均衡(ribbon)
远程调用( Feign Dubbo)
服务保护(Hystrix Sentinel)
网关(zuul,gateway)
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值