nacos

在下编不完 1年前 ⋅ 1105 阅读

Nacos

注册中心对比

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

配置中心对比

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

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

    我有话说: