1、nacos

nacos 是阿里的开源项目,应用于微服务,微服务是将单体应用拆分成一个个服务节点,nacos主要功能是服务发现和微服务的配置集中管理。
nacos的四大功能:

  1. 服务发现与服务健康检查
    nacos使服务更容易注册,并通过DNS或HTTP接口发现其他服务,nacos还提供服务的实时健康检查。以防止向不健康的主机或者服务实例发送请求。
  2. 动态配置管理
    动态配置服务允许用户在所有环境中以集中和动态的方式管理所有服务的配置。Nacos消除了在更新配置时重新部署应用程序,这是配置的更改更加高效和灵活。
  3. 动态DNS服务
    nacos提供基于DNS协议的服务发现能力,旨在支持异构语言的服务发现,支持将注册在nacos上的服务以域名的方式暴露端点,让应用更方便的查阅和发现。
  4. 服务和元数据管理
    nacos能够让你从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略。

2、主流的配置中心

主流的配置中心有Spring Cloud Config、Apollo(携程)、nacos(阿里)
对比:

对比项目Spring Cloud ConfigApolloNacos
配置实时推送支持Spring Cloud Bus支持HTTP长轮询1S内支持HTTP长轮询1S内
版本管理支持支持支持
配置回滚支持支持支持
灰度发布支持支持不支持
权限管理支持支持不支持
多集群支持支持支持
多环境支持支持支持
监听查询支持支持支持
多语言只支持java主流语言,提供了OpenAPI主流语言,提供了OpenAPI
配置格式校验不支持支持支持
单机读QPS7(限流所致)900015000
单机写QPS5 单机写QPS11001800

Apollo支持最好,性能上nacos>Apollo>Spring Cloud Config.

3、主流的服务发现

使用较多的发现中心有:Nacos、Eureka、Consult、Zookeeper

对比项目NacosEurekaConsultZookeeper
一致性协议支持AP和CP模型AP模型CP模型CP模型
健康检查TCP/HTTP/MYSQL/Client BeanClient BeanTCP/HTTP/gRPC/CmdKeep Alived
负载均衡策略权重/metadata/SelectorRibbonFabio-
雪崩保护
自动注销实例支持支持不支持支持
访问协议HTTP/DNSHTTPHTTP/DNSTCP
监听支持支持支持支持支持
多数据中心支持支持支持不支持
跨注册中心同步支持不支持支持不支持
SpringCloud集成支持支持支持不支持
Dubbo集成支持不支持不支持支持
k8s集成支持不支持支持不支持

从上面的对比可以知道,Nacos作为服务发现中心具备更多的功能支持,且从长远来看Nacos在以后的版本会支持SpringCloud+K8s的组合,填补两者的鸿沟,在两套体系下可以采用同一套服务发现和配置管理的解决方案,这将大大的简化使用和维护成本。

4、微服务架构

Spring Cloud 是一个较为全面的微服务框架集,集成了如服务发现、配置中心、消息总线、负载均衡、断路器、API网关等功能实现,是一个较为完整的架构方案,而Dubbo只是服务治理与RPC实现方案。SpringCloud 使用Ribbon和Feign来实现RPC调用。由于Feign是基于Http Restful接口的调用,在高并发下的性能不够理想,可以将其RPC方案切换为Dubbo,两者可以无缝集成。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐