nacos使用

作者: 丶兔小胖 | 来源:发表于2019-11-13 13:45 被阅读0次

    1. 什么是Nacos

    Nacos 支持基于 DNS 和基于 RPC 的服务发现(可以作为springcloud的注册中心)、动态配置服务(可以做配置中心)、动态 DNS 服务。

    官方介绍是这样的:

    Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

    Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

    2. Nacos与Eureka有什么区别

    分布式CAP理论告诉我们,CP 和 AP不可能同时满足。

    相比与Eureka: (1)Nacos具备服务优雅上下线和流量管理(API+后台管理页面),而Eureka的后台页面仅供展示,需要使用api操作上下线且不具备流量管理功能。

    (2)从部署来看,Nacos整合了注册中心、配置中心功能,把原来两套集群整合成一套,简化了部署维护

    (3)从长远来看,Eureka开源工作已停止,后续不再有更新和维护,而Nacos在以后的版本会支SpringCLoud+Kubernetes的组合,填补 2 者的鸿沟,在两套体系下可以采用同一套服务发现和配置管理的解决方案,这将大大的简化使用和维护的成本。同时来说,Nacos 计划实现 Service Mesh,是未来微服务的趋势

    (4)从伸缩性和扩展性来看Nacos支持跨注册中心同步,而Eureka不支持,且在伸缩扩容方面,Nacos比Eureka更(nacos支持大数量级的集群)。

    (5)Nacos具有分组隔离功能,一套Nacos集群可以支撑多项目、多环境。

    阿里nacos异常情况 leader挂了

    1.不影响服务之间互相调用

    2.不影响服务注册

    3.不影响服务正常启动拉取配置文件

    4.选举新leader差不多4,5秒钟

    3. Nacos 与 SpringCloud

    3.1 作为配置中心

    下载nacos-server

    https://github.com/alibaba/nacos/releases

    启动过程参考官方文档:https://nacos.io/zh-cn/docs/quick-start.html

    启动后登录: http://127.0.0.1:8848/nacos/index.html 用户名:nacos 密码:nacos

    image-20191113114308300.png

    集成在spingcloud项目中,引入pom

    <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-actuator</artifactId>
     </dependency>
    ​
    <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
             <version>0.2.2.RELEASE</version>
    </dependency>
    

    bootstrap.yaml如下:

    spring:
      cloud:
        nacos:
          config:
            server-addr: 127.0.0.1:8848
            file-extension: yaml
            shared-dataids: nacos-config.yaml,spm-nacos-config-develop.yaml,spm-nacos-config-prod.yaml
            refreshable-dataids: nacos-config.yaml,spm-nacos-config-develop.yaml,spm-nacos-config-prod.yaml
      application:
        name: spm-nacos-config
      profiles:
        active: prod
    management:
      endpoints:
        web:
          exposure:
            exclude: "*"
    

    在nacos控制台添加一个配置,参考官方文档,然后启动项目
    启动控制会看到:in develop-env enviroment; user name :test; age: 26 已经从nacos拿到了配置

    2019-11-13 11:48:25.608  INFO 32602 --- [           main] c.h.s.config.SpmNacosConfigApplication   : Started SpmNacosConfigApplication in 3.133 seconds (JVM running for 3.72)
    in develop-env enviroment; user name :test; age: 26
    

    nacos支持多环境配置 例如:dev,test,prod

    3.2 作为注册中心
    <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
                <version>0.2.2.RELEASE</version>
     </dependency>
     <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
     </dependency>![image-20191113114308300.png](https://img.haomeiwen.com/i11541995/cc7b771a6c2026dc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    

    启动类添加注解:@EnableDiscoveryClient

    nacos端点:http://127.0.0.1:8082/actuator/nacos-discovery

    启动服务查看nacos控制界面,我本地启动了两个服务

    image-20191113115256071.png

    相关文章

      网友评论

        本文标题:nacos使用

        本文链接:https://www.haomeiwen.com/subject/vbshictx.html