springcloud五大组建及面试题

springcloud组建介绍

1.eureka组建介绍
Eureka是服务架构的注册中心专门负责服务的注册的发现,eruekaf分为eurekaserver服务端和eurekaclient客户端.

  • eurekaserver:里面有个注册中心,注册中心保存的各个服务所在的机器和端口号.
  • eurekaclient:负责将服务注册到eurekaserver中并且发现服务
    工作原理:在启动应用之后,eureka客户端会向服务端注册自己的服务,同时服务端的信息会缓存到本地,客户端会向服务端周期性的心跳交互更新服务信息.
    2.ribbon组建介绍
    ribbon在springcloud中主要做负载均衡的作用.它是基于http协议和tcp协议的客户端负载均衡,使得面向REST请求时变成客户端的负载均衡调用.
    3.feign组建介绍
    feign 组建其实是整合和ribbon的.feign主要是进行远程调用,它通过@FeginClient的注解,进行动态代理(要是某个接口上面标注有这个注解,那么feign会对这个接口进行动态代理)
  • feign的动态代理,会根据你请求的@RequestMapping 和参数,来动态构造你要请求的服务地址,然后根据地址发送请求.
  • 如果服务部署了多台机器,那么feign会通过负载均衡ribbon的轮询机制确实服务机器(ribbon默认采用轮询机制).

4.Hystrix组建
在微服务架构中,一个系统会有多个服务,服务之间的相互调用如果不做任何保护就会导致服务器雪崩问题.那么Hystrix就是用来解决这些问题的.Hystrix是隔离,熔断以及降级的一个框架,

  • 在某个服务挂掉之后,Hystrix会熔断这个服务,直接返回.(降级:在这个服务熔断之后,记录这期间服务请求的信息,以便后期维护).

5.zuul网关
zuul:微服务网关,主要是负责网络路由的.
在微服务的架构中,可能后台会部署几百个服务,所有的服务名称前端不可能全部记住.那么现在就需要网关,前端通过浏览器发送请求,进入到网关zuul,网关会根据请求的一些特征,将请求转发到后端的服务.

  • 网关还可以做统一的服务降级,限流,认证权限安全等等.

springcloud 常见面试问题

1.springcloud 与dubbo的区别

  • 服务调用方式不同,dubbo是采用rpc远程调用,srpingcloud是采用rest api远程调用.
  • 注册中心:dubbo是采用zookeeper,springcloud是采用eureka
  • 服务网关不同:dubbo本身是没有实现的,只是整合了第三方的技术.而springcloud是有一个组建zuul作为路由网关,springcloud还支持断路器,与git完美集成分布式配置文件支持版本控制.

2.微服务之间是如何独立通信的?

  • feign远程调用.优点:没有中间代理件,简单常见.缺点:可用性低,在请求过程中服务端和客户端都必须是可用的.
  • 消息中间件.优点:解耦,提高可用性,可以支持多种相应模式(如:发布/订阅,请求/异步响应等等).缺点:增加系统的复杂度,万一消息中间件挂了,整个服务就挂了.

3.微服务的优缺点?
优点:

  • 每个服务都是高内聚,低耦合,代码通俗易懂
  • 容易与第三方集成
  • 微服务只是业务逻辑的代码,不会和html,css界面组合在一起,一般采用前后端分离的方法开发
  • 可以灵活开发,连接公共数据库/连接独立数据库
    缺点:
  • 运维成本高
  • 数据一致性
  • 性能监控
  • 难度高

4.springcloud如何实现服务注册?

  • 服务发布时,指定对应的服务名,将服务注册到注册中心
  • 注册中心加上@EnableEurekaServer,服务用@EnableEurekaClient标记这个服务,然后通过ribbon和feign进行远程调用和发现.

5.eureka和zookeeper的区别

  • eureka取用cap的ap,而zookeeper选用cp注重一致性(C:一致性.A:可用性.P:分区容错性.)
  • 在服务崩溃时,eureka有自我保护机制,各个节点都是平等关系,在一个节点崩溃时,微服务并不会盲目删除这个节点,而是进入保护状态,此时可以正常注册,也可以提供查询服务,但是不与其他节点同步信息,其他节点可以正常使用.zookeeper分为leader和follower两种角色,采用半数存活的原则,超过一般的节点挂机就会使整个服务崩溃 而且在leader崩溃之后需要重新选举,在此期间服务是不可用的.
  • 35
    点赞
  • 263
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值