springcloudAlibaba面试题及答案
时间: 2023-10-09 08:16:06 浏览: 192
引用:JAVA中常用的synchronized可以解决问题。使用synchronized存在性能问题,现在相当于所有的读写操作都进行了锁定,即“串行化”。引用:细心的同学可能已经发现NacosAutoServiceRegistration的继承的AbstractAutoServiceRegistration类实现了ApplicationListener接口,那么必定在AbstractAutoServiceRegistration类中监听的某个Event(实现方法:onApplicationEvent),源码中发现最终会调用一个register方法,这个方法就是真正向 Nacos Server 注册了当前实例,源码中可以看出最终调用了reqApi方法,向 Nacos Server /nacos/v1/ns/instance 接口发送了一个POST请求,把当前实例注册进去,到这里整个客户端的核心注册流程就分析完了。引用:读写锁是特殊的自旋锁,它把共享资源的访问者分为了读者和写者,读者只对共享资源进行读访问,写者则需要对共享资源进行写操作。同时只允许一个线程对共享资源写或者多个读,但不能同时读又有写。2、Nacos如何支撑阿里巴巴内部上百万服务实例的访问?
Spring Cloud Alibaba 是一个开源的微服务框架,它基于 Spring Cloud 和 Alibaba 的技术栈,提供了一套分布式应用服务解决方案。其中,Nacos 是 Spring Cloud Alibaba 中的一个服务注册与发现组件。Nacos 能够支撑阿里巴巴内部上百万服务实例的访问主要得益于以下几个方面:
1. 强大的服务注册与发现能力:Nacos 提供了服务注册与发现的功能,当服务实例启动时,它会向 Nacos Server 注册自己的信息,包括 IP 地址、端口号等。同时,它也能从 Nacos Server 获取其他服务实例的信息,实现服务之间的通信与调用。
2. 高效的负载均衡策略:Nacos 支持多种负载均衡策略,包括基于权重的负载均衡、基于区域的负载均衡等。这些负载均衡策略可以根据实际情况进行配置,保证服务实例的访问被合理地分配,提高系统的可用性和性能。
3. 弹性扩展:Nacos 提供了自动扩展的功能,可以根据服务实例的负载情况自动进行水平扩展。当服务实例的负载达到一定阈值时,Nacos 会自动添加更多的实例,以应对高并发的请求。
4. 故障恢复与容错:Nacos 支持故障恢复和容错的功能。当某个服务实例发生故障时,Nacos 会自动将该实例从注册中心中剔除,避免其他服务实例访问到不可用的服务。
综上所述,Nacos 在服务注册与发现、负载均衡、弹性扩展以及故障恢复与容错等方面提供了强大的支持,因此能够支撑阿里巴巴内部上百万服务实例的访问。
阅读全文