在 SpringCloud 系列(一)里面介绍了 Eureka 注册中心主要用来做什么,如何搭建并进行了简单的测试,但是 Eureka 有诸多不便之处,如需要配合 SpringCloud config 来实现,我们还需要再写一个 Module 进行启动等,针对某些不便及技术的延伸,于是阿里巴巴就开发出了 Nacos 这个产品,现在也是 SpringCloud 中的一个重要组件,相比较于 Eureka 的功能更加丰富;当然并不是说 Eureka 现在就没人用了,其实在国外还是有很多使用 Eureka 的,但是在国内,Nacos 的受欢迎度相比较于 Eureka 就高出了不少。关于两者的区别在本篇文章的后面会进行对比。
Nacos: 一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。


Nacos 注册中心

  • ⚽️ Nacos 服务搭建
  • ⚽️⚽️ Nacos 服务注册及发现
  • ⚽️⚽️⚽️ Nacos 注册中心和 Eureka 注册中心的异同


⚽️ Nacos 服务搭建

第一步:下载 nacos 包

下载地址:https://github.com/alibaba/Nacos/releases;

spring cloud nacos设置用户名 springcloud nacos注册中心_服务发现


解压包并进入到 bin 目录下;

spring cloud nacos设置用户名 springcloud nacos注册中心_nacos_02


☞☞第二步:启动 nacos, 指令:sh startup.sh -m standalone,出现如下界面代表启动成功;

spring cloud nacos设置用户名 springcloud nacos注册中心_Cloud_03


☞☞☞第三步:测试:浏览器输入 nacos 地址:http://localhost:8848/nacos/#/login,注意用户名及密码都是 nacos;出现如下界面代表 nacos 启动成功!

spring cloud nacos设置用户名 springcloud nacos注册中心_Cloud_04

⚽️⚽️ Nacos 服务注册及发现

☞第一步:引依赖
在父工程的 pom.xml 中引入 SpringCloudAlibaba 的依赖;

<dependency>
     <groupId>com.alibaba.cloud</groupId>
     <artifactId>spring-cloud-alibaba-dependencies</artifactId>
     <version>2.2.6.RELEASE</version>
     <type>pom</type>
     <scope>import</scope>
</dependency>

在服务消费者(consumer-service)及服务提供者(provider-service)的 pom.xml 中引入 nacos-discovery 依赖;

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

☞☞第二步:配置 nacos 地址
在服务消费者(consumer-service)及服务提供者(provider-service)的 application.yml 中添加 nacos 地址;

spring:
  cloud:
    nacos:
      server-addr: localhost:8848

spring cloud nacos设置用户名 springcloud nacos注册中心_spring_05


☞☞☞第三步:打开 nacos 控制台查看是否已经配置成功;注意刷新!!!

spring cloud nacos设置用户名 springcloud nacos注册中心_nacos_06


到这里,nacos 的搭建就已经结束了!!!

⚽️⚽️⚽️ Nacos 注册中心和 Eureka 注册中心的异同

spring cloud nacos设置用户名 springcloud nacos注册中心_spring_07

共同点:

  • 都支持服务注册及服务的拉取;
  • 都利用心跳方式进行健康检测;

区别:

  • Nacos 支持服务端主动监测提供者的状态,临时实例采用心跳模式,非临时实例则采用主动监测模式;
  • 临时实例健康状况不正常则会被剔除,非临时实例则不会被剔除;
  • Nacos 支持服务列表变更的消息推动模式,服务列表的更新更加及时;
  • Nacos 集群默认采用 AP 方式,当集群中存在非临时实例时,采用 CP 模式; 而 Eureka 采用 AP 方式。