个人学习

nacos使用

2019-11-13  本文已影响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
上一篇下一篇

猜你喜欢

热点阅读