微服务常见面试题整理

本文梳理了微服务面试中的关键知识点,包括SpringCloud的常用组件如Feign、Eureka和Nacos,详细讨论了Nacos的服务注册表结构、应对高并发策略以及并发读写冲突解决方案。同时对比了Nacos与Eureka的区别,Sentinel与Hystrix的线程隔离策略,以及Sentinel与Gateway的限流机制。
摘要由CSDN通过智能技术生成

目录

SpringCloud的常用组件有哪些:

Nacos的服务注册表结构是怎样的?

Nacos如何支撑数十万服务注册压力?

Nacos如何避免并发读写冲突问题?

Nacos与Eureka的区别有哪些?

Sentinel与Hystix的线程隔离有什么差别

Sentinel的限流与Gateway的限流有什么差别


SpringCloud的常用组件有哪些:

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,常见的springCloud的常用组件如:


服务调用组件:Feign

Feign通过处理注解,将请求模板化,当实际调用的时候,传入参数,根据参数再应用到请求上,进而转化成真正的 Request 请求。通过Feign以及JAVA的动态代理机制,使得Java 开发人员,可以不用通过HTTP框架去封装HTTP请求报文的方式,完成远程服务的HTTP调用。


服务注册组件:eurka,Nacos

服务提供者:提供服务,在启动时,根据服务发布文件中的配置的信息,向注册中心注册自身服务,并向注册中心定期发送心跳汇报

服务消费者:调用服务,在启动时,根据服务引用文件中配置的信息,将注册中心订阅服务,把注册中心返回的服务节点列表缓存在本地内存中,并于服务提供者建立连接

  • 当服务提供者节点发生变更时,注册中心会同步变更。服务消费者感知后会刷新本地缓存的服务节点列表
  • 服务消费者从本地缓存的服务节点列表中,基于负载均衡算法选择服务提供者的一个节点发起调用

负载均衡组件:nginx,Ribbon

俄罗斯人开发的一个高性能的 HTTP和反向代理服务器。由于Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中包括新浪、网易、腾讯、搜狐等企业的一些门户网站等,在3w以上的高并发环境下,ngnix处理能力相当于apache的10倍。


服务保护组件:sentinel

Sentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。


网关组件:gateway,Zuul


服务配置管理组件:Nacos,SpringCloudConfig


Nacos的服务注册表结构是怎样的?

Nacos的服务注册表结构与分级存储模型是分不开的,首先,在nacos的分级存储模型中,在Namespace中以Map结构存储着以name_id为key与其结构下的Map类型的键值Group,在Group中的结构中又存储着同样的servcic,在之后,service同样存储同类型的Cluster,在Cluster的键值对中存储着Set类型的实例。


 Nacos如何支撑数十万服务注册压力?

Nacos内部接收到注册的请求时,不会立即写数据,而是将服务注册的任务放入一个阻塞队列就立即响应给客户端。然后利用线程池读取阻塞队列中的任务,异步来完成实例更新,从而提高并发写能力。


Nacos如何避免并发读写冲突问题?

Nacos在更新实例列表时,会采用CopyOnWrite技术,首先将旧的实例列表拷贝一份,然后更新拷贝的实例列表,再用更新后的实例列表来覆盖旧的实例列表。

这样在更新的过程中,就不会对读实例列表的请求产生影响

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值