nacos初探

Posted Abbot的小窝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nacos初探相关的知识,希望对你有一定的参考价值。

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

集成在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>

启动类添加注解:@EnableDiscoveryClient

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

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



以上是关于nacos初探的主要内容,如果未能解决你的问题,请参考以下文章

nacos1.3初探

Nacos 1.2.0 权限控制初探,保障微服务安全及 Nacos 在颜铺科技的落地与实践

初探JSP与LEeclipse

Java面试高Spring Boot+Sentinel+Nacos高并发已撸完

shader开发_4.Surface shader初探

gateway整合nacos配置文件及示例代码