nacos概述
文章目录1、nacos2、主流的配置中心3、主流的服务发现4、微服务架构1、nacosnacos 是阿里的开源项目,应用于微服务,微服务是将单体应用拆分成一个个服务节点,nacos主要功能是服务发现和微服务的配置集中管理。nacos的四大功能:服务发现与服务健康检查nacos使服务更容易注册,并通过DNS或HTTP接口发现其他服务,nacos还提供服务的实时健康检查。以防止向不健康的主机或者服务实
1、nacos
nacos 是阿里的开源项目,应用于微服务,微服务是将单体应用拆分成一个个服务节点,nacos主要功能是服务发现和微服务的配置集中管理。
nacos的四大功能:
- 服务发现与服务健康检查
nacos使服务更容易注册,并通过DNS或HTTP接口发现其他服务,nacos还提供服务的实时健康检查。以防止向不健康的主机或者服务实例发送请求。 - 动态配置管理
动态配置服务允许用户在所有环境中以集中和动态的方式管理所有服务的配置。Nacos消除了在更新配置时重新部署应用程序,这是配置的更改更加高效和灵活。 - 动态DNS服务
nacos提供基于DNS协议的服务发现能力,旨在支持异构语言的服务发现,支持将注册在nacos上的服务以域名的方式暴露端点,让应用更方便的查阅和发现。 - 服务和元数据管理
nacos能够让你从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略。
2、主流的配置中心
主流的配置中心有Spring Cloud Config、Apollo(携程)、nacos(阿里)
对比:
对比项目 | Spring Cloud Config | Apollo | Nacos |
---|---|---|---|
配置实时推送 | 支持Spring Cloud Bus | 支持HTTP长轮询1S内 | 支持HTTP长轮询1S内 |
版本管理 | 支持 | 支持 | 支持 |
配置回滚 | 支持 | 支持 | 支持 |
灰度发布 | 支持 | 支持 | 不支持 |
权限管理 | 支持 | 支持 | 不支持 |
多集群 | 支持 | 支持 | 支持 |
多环境 | 支持 | 支持 | 支持 |
监听查询 | 支持 | 支持 | 支持 |
多语言 | 只支持java | 主流语言,提供了OpenAPI | 主流语言,提供了OpenAPI |
配置格式校验 | 不支持 | 支持 | 支持 |
单机读QPS | 7(限流所致) | 9000 | 15000 |
单机写QPS | 5 单机写QPS | 1100 | 1800 |
Apollo支持最好,性能上nacos>Apollo>Spring Cloud Config.
3、主流的服务发现
使用较多的发现中心有:Nacos、Eureka、Consult、Zookeeper
对比项目 | Nacos | Eureka | Consult | Zookeeper |
---|---|---|---|---|
一致性协议 | 支持AP和CP模型 | AP模型 | CP模型 | CP模型 |
健康检查 | TCP/HTTP/MYSQL/Client Bean | Client Bean | TCP/HTTP/gRPC/Cmd | Keep Alived |
负载均衡策略 | 权重/metadata/Selector | Ribbon | Fabio | - |
雪崩保护 | 有 | 有 | 无 | 无 |
自动注销实例 | 支持 | 支持 | 不支持 | 支持 |
访问协议 | HTTP/DNS | HTTP | HTTP/DNS | TCP |
监听支持 | 支持 | 支持 | 支持 | 支持 |
多数据中心 | 支持 | 支持 | 支持 | 不支持 |
跨注册中心同步 | 支持 | 不支持 | 支持 | 不支持 |
SpringCloud集成 | 支持 | 支持 | 支持 | 不支持 |
Dubbo集成 | 支持 | 不支持 | 不支持 | 支持 |
k8s集成 | 支持 | 不支持 | 支持 | 不支持 |
从上面的对比可以知道,Nacos作为服务发现中心具备更多的功能支持,且从长远来看Nacos在以后的版本会支持SpringCloud+K8s的组合,填补两者的鸿沟,在两套体系下可以采用同一套服务发现和配置管理的解决方案,这将大大的简化使用和维护成本。
4、微服务架构
Spring Cloud 是一个较为全面的微服务框架集,集成了如服务发现、配置中心、消息总线、负载均衡、断路器、API网关等功能实现,是一个较为完整的架构方案,而Dubbo只是服务治理与RPC实现方案。SpringCloud 使用Ribbon和Feign来实现RPC调用。由于Feign是基于Http Restful接口的调用,在高并发下的性能不够理想,可以将其RPC方案切换为Dubbo,两者可以无缝集成。
更多推荐
所有评论(0)