Nacos 支持基于 DNS 和基于 RPC 的服务发现(可以作为springcloud的注册中心)、动态配置服务(可以做配置中心)、动态 DNS 服务。
官方介绍:
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构(例如微服务范式、云原生范式)的服务基础设施。
官方网址:http://nacos.io
![](https://img-blog.csdnimg.cn/img_convert/77f2707c43dde696ed703522e6269009.png)
下载后解压启动 Nacos,详细请看 Nacos安装指南_二后生的博客-CSDN博客
在解压后的bin文件目录下,执行启动nacos命令:startup.cmd -m standalone
nacos本地就启动了
访问本地nacos:http://localhost:8848/nacos/
以下文章中以这三个服务举例:
orderservice(订单服务,端口:8080)
userservice(用户服务,集成了两个端口:8081,8082)
nacos(无需像eureka一样单独搭建服务,解压的文件中包含了客户端和服务端,项目内配置完即可使用,端口:8848)
服务注册
他与eureka不通的是,这里上来就直接服务注册,其实 Nacos 本身就是一个 SprintBoot 项目,这点你从启动的控制台打印就可以看出来,所以就不再需要去额外搭建一个像 Eureka 的注册中心。
1、引入依赖
在 cloud-demo 父工程中引入 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>
然后在 user-service 和 order-service 中的pom文件中引入 nacos-discovery 依赖:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
2、yml配置nacos地址
在 user-service 和 order-service 的 application.yml 中添加 nacos 地址:
spring:
cloud:
nacos:
server-addr: 127.0.0.1:8848
3、项目重新启动后,可以看到三个服务都被注册进了 Nacos
最后测试一下:浏览器访问订单服务:http://localhost:8080/order/101,正常访问,同时负载均衡也正常。