Nacos相关面试题

Nacos中的保护阈值的作用是什么?

假设现在有一个服务,本来有10个实例,但是现在挂掉了8个,剩下两个都是正常实例,此时本来由10个实例处理的流量,就全部交给这连个正常实例来处理了,此时这两个实例很有可能是处理不过来的,最终导致被压垮,为了应对这种情况,Nacos中提供了保护阈值这个功能。我们可以给某个服务设置一个0-1的阈值,比如0.5,那就表示,一旦实例中只剩下一半的健康实例了,比如10个实例,只剩下五个健康实例了,那么消费者在进行服务发送时,则会把该服务的所有实例,也包括不健康的实例都拉取到本地,然后再从所有实例中进行负载均衡,选出一个实例进行调用,在这种情况下,选出来的既可能是一个健康的实例,也可能是挂掉的实例,但是通过这种方式,很好的保护了剩下的健康实例,至少保证了一部分请求能够正常访问。至少保证了一部分的请求能够正常访问,而不至于所有请求都不能正常访问,这就是Nacos中的保护阈值,同时,这个功能在Spring Cloud Tencent中叫作全死全活。

Nacos中的负载均衡是怎么样的

Nacos的负载均衡指的是,在进行服务发现时进行负载均衡,正常情况下,在进行服务发现时,会根据服务名从Nacos中拉取所有的实例信息,但是Nacos中提供了一个功能,就是可以再拉取实例时,可以根据随机策略值拉取到所有实例中的某一个,这就是Nacos的负载均衡。它跟Ribbon的负载均衡策略并不冲突,可以理解为Ribbon的负载均衡是发生在Nacos的负载均衡之后的。

Nacos的就近访问时什么意思

首先,在Nacos中,一个服务可以有多个实例,并且可以给实例设置cluster-name,就是可以再进一步的给所有实例划分集群,那如果现在某个服务A想要调用服务B,那么Nacos会看调用服务A的实例是属于哪个集群的,并且调用服务B时,那就会调用同样集群下的服务B实例。根据cluster-name来判断两个实例是不是同一个集群,这就是Nacos的就近访问。

如何理解Nacos中的命名空间

命名空间,也就是namespace,其实这个概念并不是Nacos中独有的,在Nacos中,不管是配置还是服务,都是属于某一个命名空间的,默认情况下都是属于public这个命名空间的,我们可以再Nacos中新增命名空间,也就相当于开辟了一套存放服务和配置的地方,命名空间之间是独立的,完全不冲突的,所以我们可以利用nacos中的命名空间来实现不同环境、不同租户之间的服务注册和配置。

你可能感兴趣的:(java,开发语言)