nacos

傻男人 1年前 ⋅ 696 阅读

Nacos

注册中心对比

  • 目前市面上用的比较多的服务发现中心有:Nacos、Eureka、Consul和Zookeeper。
对比项目NacosEurekaConsulZookeeper
一致性协议支持AP和CP模型AP模型CP模型CP模型
健康检查TCP/HTTP/MYSQL/Client BeatClient BeatTCP/HTTP/gRPC/CmdKeep Alive
负载均衡策略权重/metadata/SelectorRibbonFabio-
雪崩保护
自动注销实例支持支持不支持支持
访问协议HTTP/DNSHTTPHTTP/DNSTCP
监听支持支持支持支持支持
多数据中心支持支持支持不支持
跨注册中心同步支持不支持支持不支持
SpringCloud集成支持支持支持不支持
Dubbo集成支持不支持不支持支持
k8s集成支持不支持支持不支持
  • 从上面对比可以了解到,Nacos作为服务发现中心,具备更多的功能支持项,且从长远来看Nacos在以后的版本会 支持SpringCLoud+Kubernetes的组合,填补 2 者的鸿沟,在两套体系下可以采用同一套服务发现和配置管理的解 决方案,这将大大的简化使用和维护的成本。另外,Nacos 计划实现 Service Mesh,也是未来微服务发展的趋势。

配置中心对比

对比项目Spring Cloud ConfigApolloNacos
配置实时推送支持(Spring Cloud Bus)支持(HTTP长轮询1s内)支持(HTTP长轮询1s内)
版本管理支持(Git)支持支持
配置回滚支持(Git)支持支持
灰度发布支持支持不支持
权限管理支持(依赖Git)支持不支持
多集群支持支持支持
多环境支持支持支持
监听查询支持支持支持
多语言只支持Java主流语言,提供了Open API主流语言,提供了Open API
配置格式校验不支持支持支持
单机读(QPS)7(限流所致)900015000
单机写(QPS)5(限流所致)11001800
3节点读(QPS)21(限流所致)2700045000
3节点写(QPS)5(限流所致)33005600

Nacos特性

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

pom包的设置

父工程定义版本号

<dependencyManagement>
    <dependencies>
        <dependency> 
            <groupId>com.alibaba.cloud</groupId> 
            <artifactId>spring‐cloud‐alibaba‐dependencies</artifactId> 
            <version>2.1.0.RELEASE</version> 
            <type>pom</type> 
            <scope>import</scope>
        </dependency> 
    </dependencies> 
</dependencyManagement>

服务发现需在项目中引入

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring‐cloud‐starter‐alibaba‐nacos‐discovery</artifactId>
</dependency>

服务配置需在项目中引入

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring‐cloud‐starter‐alibaba‐nacos‐config</artifactId>
</dependency>

常用nacos的yml配置

1、需将nacos的配置定义在项目的bootstrap.yml文件中 2、配置

nacos.addr: 127.0.0.1:8848

spring:
  cloud:
    nacos:
      discovery:
        server-addr: ${nacos.addr}  #服务发现中心地址
        namespace: f5eec3c1-4f05-40cd-964a-c8d44f342ab4 #指定命名空间的id
      config:
        server-addr: ${nacos.addr}  #配置中心地址
        file-extension: yaml  #指定配置文件的扩展名,配置文件名称根据application.name的名称加扩展名拼装,为nacos-restful-consumer.yaml
        refresh:
          enabled: false   #来关闭动态刷新
        ext-config[0]: #扩展配置 序号需要从0开始
          data-id: ext-config-common01.yaml
          group: COMMON_GROUP
          refresh: true
        ext-config[1]:
          data-id: ext-config-http.yaml
          group: COMMON_GROUP
          refresh: true

全部评论: 0

    我有话说: