注册中心面试题大全
目录
文档索引
面试题汇总
Q:注册中心是什么?为什么需要注册中心?
A:注册中心存储着所有服务实例的信息,实例启动时会将自己注册到注册中心中,方便其他实例通过注册中心获得该实例信息进行调用。
例如A服务调用B服务集群,此时A服务的实例需要知道B集群中有哪些实例是可调用的,就会通过注册中心获得B集群可调用实例信息,然后通过负载均衡策略选择实例调用,不需要在A服务实例中配置B集群的实例信息
注册中心带来的好处:
1、如上例子所示,方便服务的注册和发现,减少了服务的手工信息配置
2、通过注册中心的健康检查,及时过滤不可调用的实例
Q:注册中心是如何实现的?
A:注册中心通常提供有如下功能:服务注册、服务发现、健康检查与服务剔除、服务续约、服务自保、集群一致性
服务注册:服务启动时将自身实例信息发送给注册中心,注册中心将其记录至内存或进行持久化
服务发现:注册中心提供接口给实例调用,通过服务名返回可调用的实例集合
健康检查与服务剔除:注册中心会对实例进行健康检查,对其中不健康的实例进行剔除
服务续约:服务一般通过心跳的方式向注册中心发送,表明自身的健康状态,注册中心接收后对服务实例进行续约
服务自保:注册中心会对不健康的实例进行剔除,但当服务下大量的实例被剔除,超出设定的阈值,注册中心将不再剔除,保证服务有实例可调用
集群一致性:注册中心集群对外一致性分强一致性(CP),最终一致性(AP)
Q:实例如何通过注册中心进行服务发现
A:服务列表的通知方式主要有三种(push、pull、long pull)
push: 注册中心主动推送服务列表数据给客户端
pull:客户端轮询从注册中心获取服务列表数据
long pull:客户端发起请求后,服务端不会立即返回请求结果,而是将请求挂起等待一段时间,如果此段时间内服务端数据变更,立即响应客户端请求,若是一直无变化则等到指定的超时时间后响应请求,客户端重新发起长链接
Q:注册中心如何进行选型?
A:注册中心目前常用的有Spring Cloud Eureka、Zookeeper、Nacos、Consul