StringCloud_Eureka简答题

编程入门 行业动态 更新时间:2024-10-23 06:32:40

StringCloud_Eureka<a href=https://www.elefans.com/category/jswz/34/1746292.html style=简答题"/>

StringCloud_Eureka简答题

文章目录

  • 一、Eureka(我认为重要的)
    • 1 什么是微服务/微服务的特点
    • 2 不使用Eureka注册中心的情况下, 分布式服务必然面临的问题有哪些?
    • 3 什么是高可用?什么是分布式?什么是集群?什么是负载均衡?
    • 4 Eureka的工作原理
    • 5 什么是服务注册
    • 6 什么是服务续约
    • 7 什么是失效剔除
    • 8 什么是自我保护
  • 二、SpringCloud(重要:真实面试题)
    • 1 你是如何使用SpringCloud的?你的项目中是如何使用SpringCloud的?SpringCloud-微服务的解决方案(框架)中有哪些技术?
    • 2 什么是有状态?
    • 3 什么是无状态?
    • 4 什么是单点登录
    • 5 SpringBoot和Spring cloud的区别
    • 6 Httplicent/RestTemplate和feign的区别
    • 7 什么是RestFul风格?
    • 8 简述什么是CAP,并说明Eureka包含CAP中的哪些特性?

一、Eureka(我认为重要的)

1 什么是微服务/微服务的特点

  • 单一职责:微服务中每一个服务都对应唯一的业务能力,做到单一职责
  • 微:微服务的服务拆分粒度很小,例如一个用户管理就可以作为一个服务。每个服务虽小,但“五脏俱全”。
  • 独立:自治是说服务间互相独立,互不干扰
    –团队独立:每个服务都是一个独立的开发团队,人数不能过多。
    –技术独立:因为是面向服务,提供Rest接口,使用什么技术没有别人干涉
    –前后端分离:采用前后端分离开发,提供统一Rest接口,后端不用再为PC、移动端开发不同接口
    –数据库分离:每个服务都使用自己的数据源
    –部署独立,服务间虽然有调用,但能做到服务重启不影响其它服务。有利于持续集成和持续交付。每个服务都是独立的组件,可复用,可替换,降低耦合,易维护,易集群 Docker部署服务

2 不使用Eureka注册中心的情况下, 分布式服务必然面临的问题有哪些?

  • 服务管理
    –如何自动注册和发现服务
    –如何实现服务状态的监管
    –如何实现动态路由,从而实现负载均衡
  • 服务如何实现负载均衡
  • 服务如何解决容灾问题
  • 服务如何实现统一配置

3 什么是高可用?什么是分布式?什么是集群?什么是负载均衡?

  • 高可用?
    答:就算是在极端环境下,也可以正常提供服务,哪怕是网线坏了
  • 如何实现高可用?
    答:集群(也就是说集群中的一些服务器挂了,也可以继续正常提供服务)
  • 分布式、集群、负载均衡的关系?
    答:分布式:把一个大项目,根据业务需求拆成多个服务,分布式开发,最终部署的时候,也就是分布式部署
  • 集群:把同一份代码 部署在N台服务器上
  • 负载均衡:把请求分摊到多台服务器上
  • 集群之后,必须负载均衡;想要负载均衡,必须集群。

4 Eureka的工作原理

  • Eureka:就是服务注册中心(可以是一个集群),对外暴露自己的地址
  • 提供者:启动后向Eureka注册自己信息(地址,提供什么服务)
  • 消费者:向Eureka订阅服务,Eureka会将对应服务的所有提供者地址列表发送给消费者,并且定期更新
  • 心跳(续约):提供者定期通过http方式向Eureka刷新自己的状态

5 什么是服务注册

服务提供者在启动时,会向EurekaServer发起一次请求,将自己注册到Eureka注册中心中去

6 什么是服务续约

在注册服务完成以后,服务提供者会维持一个心跳(每30s定时向EurekaServer发起请求),告诉EurekaServer:“我还活着”。这个我们称为服务的续约(renew);

7 什么是失效剔除

有些时候,我们的服务提供方并不一定会正常下线,可能因为内存溢出、网络故障等原因导致服务无法正常工作。Eureka Server需要将这样的服务剔除出服务列表。因此它会开启一个定时任务,每隔60秒对所有失效的服务(超过90秒未响应)进行剔除。

8 什么是自我保护

当一个服务未按时进行心跳续约时,在生产环境下,因为网络延迟等原因,此时就把服务剔除列表并不妥当,因为服务可能没有宕机。Eureka就会把当前实例的注册信息保护起来,不予剔除。生产环境下这很有效,保证了大多数服务依然可用。

二、SpringCloud(重要:真实面试题)

1 你是如何使用SpringCloud的?你的项目中是如何使用SpringCloud的?SpringCloud-微服务的解决方案(框架)中有哪些技术?

1、使用Eureka实现了服务注册中心以及服务注册与发现;
2、使用Ribbon实现服务间的负载均衡
3、使用Feign实现服务的远程调用
4、使用Hystrix的融断机制来避免在微服务架构中个别服务出现异常时引起的故障蔓延。
5、使用Zuul作为服务网关,进行鉴权、动态路由、负载均衡。

2 什么是有状态?

答:使用session和cookie登录的时候,用户的登录信息保存在服务器的session中,然后将sessionId送到客户端,保存到cookie中,此时服务端通过sessionid标记当前的请求,这就是有状态。

缺点:

  • 服务器需要更多的内存空间存储数据
  • 不利于集群:当集群之后,需要实现tomcat之间的session共享,否则每次都只能请求某一个tomcat
  • 无法实现节点的动态扩展、水平扩展

3 什么是无状态?

  • 特点
    1. 服务器不保存任何用户的信息以及客户端信息
    2. 客户端每次请求的时候,都将token带到服务器进行身份校验
  • 实现方式:token–jwt是token的标准解决方案
  • 优点
    1. 节约了服务器空间
    2. 方便节点的动态扩展(方便集群)
  • 缺点
    1. 服务器无法注销token,设置了存活多久,就会一直存活
    2. 需要手动刷新token,操作繁琐

4 什么是单点登录

一个账号同一时间只允许一个人登录,这就是单点登录?对不对? 错!!!!!

  • 概念:多套系统只需要登录一次,就可以访问其他系统
  • 注意:单点登录一定需要一个独立的认证授权中心
  • 单点登录就是无状态登录,单点登录的流程是:
  1. 用户登录的时候,将用户名和密码提交到认证授权中心
  2. 认证授权中心校验用户名和密码,如果正确,颁发jwt凭证,返回客户端,保存到localStorage中
  3. 如果不正确,返回错误信息
  4. 客户端每次请求都会携带token,到服务器进行认证

5 SpringBoot和Spring cloud的区别

1.springboot可以单独使用,它不依赖于springcloud
而springcloud必然依赖于springboot,属于依赖关系。
2. Springboot专注于快速方便的开发单个个体服务。
3. SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供配置管理、服务发现、断路器、路由等集成服务。

6 Httplicent/RestTemplate和feign的区别

1 相同点:都是远程调用技术,都是系统间相互调用的技术
2 不同点:

  • Feign属于SpringCloud中的技术,HttpClient属于apache的技术,RestTemplate属于Spring的技术
  • 使用方式不同:HttpClient得手动写很多代码,发送请求,RestTemplate简化了一些,而Feign只需要定义接口即可访问远程服务

7 什么是RestFul风格?

就是一套编程风格,URI是固定的,根据请求的方式调用不同的方法进行处理

8 简述什么是CAP,并说明Eureka包含CAP中的哪些特性?

CAP理论:一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性P在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。
eureka 遵守 AP
Eureka各个节点都是平等的,几个节点挂掉不会影响正常节点的工作,剩余的节点依然可以提供注册和查询服务。
而 Eureka的客户端在向某个 Eureka注册或时如果发现连接失败,则会自动切换至其它节点
只要有一台 Eureka还在,就能保证注册服务可用(保证可用性),只不过查到的信息可能不是最新的不保证强一致性)。

更多推荐

StringCloud_Eureka简答题

本文发布于:2023-07-27 22:08:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1225197.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:简答题   StringCloud_Eureka

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!