一、什么是Nacos,主要用来作什么?
Nacos是一个基于云原生架构的动态服务发现、配置管理和服务治理平台。支持多种编程语言和多种部署方式,并且与Spring Cloud等主流的微服务框架深度集成。
配置管理:可以将应用程序的配置信息存储在Nacos的配置中心,通过Nacos实现动态配置管理和灰度发布,从而实现应用程序的动态调整和部署,
服务发现及注册:可以将服务注册到Nacos注册中心,并通过Nacos实现服务的自动发现和负载均衡,从而实现服务的高可用和弹性伸缩。
服务治理:可以通过Nacos实现服务的健康检査、故障转移、服务限流、熔断降级等治理能力,从而提高服务的可靠性和稳定性。
事件监听和推送:可以通过Nacos实现配置变更、服务注册和注销等事件的监听和推送,从而实现应用程序的自动化部署和管理。
二、哪些服务用到了Nacos?
Spring Cloud Alibaba:Nacos是Spring Cloud Alibaba的核心组件之一,可以和Spring Cloud集成,实现服务发现、负载均衡、配置管理等功能。
Dubbo:Nacos是Dubbo 2.7.x版本的服务注册中心和配置中心,可以通过Nacos实现服务的动态发现和配置2 管理。
3.Kubernetes:Nacos可以作为Kubernetes的服务注册中心和配置管理平台,可以将Kubernetes中的服务注册到Nacos中,并通过Nacos进行服务发现和负载均衡,
Service Mesh:Nacos可以作为Service Mesh的控制面板,实现服务的配置管理、流量控制和熔断降级等功能。
三、Nacos是AP的还是CP的?
Nacos支持AP和CP两种模式,可以根据具体的使用场景进行选择。默认情况下是AP模式,可以通过修改nacos的配置文件来切换AP/CP。
在AP模式下,Nacos保证高可用性和可伸缩性,但不保证强一致性。在CP模式下,Nacos保证强一致性,但可能会降低可用性和可伸缩性,
在实际应用中,具体应该采用哪种模式,需要根据业务的特点和需求来判断。
如果在分布式系统中,某些数据的一致性对业务有非常高的要求,例如金融、支付等场景,那么可以选择使用CP模式。在CP模式下,当发生网络分区或故障时,为了保证数据一致性,Nacos会对服务进行自动隔密和恢复。但是,这会导致部分服务不可用,因此可用性会受到影响。
如果对于某些服务来说,可用性比一致性更加重要,例如网站、在线游戏等场景,