一、前言
Nacos可以做服务注册发现和配置中心。
微服务的核心就是服务注册中心,一个服务去调用另一个服务,是怎么去找到另一个服务的?首先所有的服务都需要注册到注册中心,然后服务调用方根据服务名称在注册中心去找另一个服务。注册中心就提供服务注册和服务发现的功能。
服务注册中心历史上有用ZooKeeper、Eureka。但是我们选用Nacos,一是它是阿里出品,二是它经历过阿里项目的历练,三是它除了做服务注册还可以做配置中心,而且它相对来说简单。如果是新项目建议使用Nacos。
Nacos官网:https://nacos.io/zh-cn/index.html
二、下载运行
下载地址:https://github.com/alibaba/nacos/releases。
下载解压后在bin目录下
mac运行
sh startup.sh -m standalone
windows运行
startup.cmd -m standalone
访问路径:http://localhost:8848/nacos 默认账号和密码都是nacos
三、项目代码
3.1 代码结构
- 说明:这里是多模块项目,一个
parent
模块,一个consume
模块,parent
是做包版本号管理。
3.2 Nacos创建命名空间
3.3 添加依赖
pom.xml添加下面依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
完整pom.xml如下
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.llh</groupId>
<artifactId>parent</artifactId>
<version>1.0.0</version>
<relativePath/>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>consumer</artifactId>
<version>1.0.0</version>
<name>consumer</name>
<description>consumer description</description>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
</dependencies>
</project>
3.4 application.properties
# 应用相关
spring.application.name=consumer
server.port=8888
# nacos服务注册相关
spring.cloud.nacos.discovery.username=nacos
spring.cloud.nacos.discovery.password=nacos
spring.cloud.nacos.discovery.server-addr=http://localhost:8848
spring.cloud.nacos.discovery.namespace=c7f6a654-209e-4cc1-8c1d-1971aca64620
- 说明:这里的
spring.cloud.nacos.discovery.namespace
就是前面创建的命名空间id
3.5 运行
运行consumer模块,然后在Nacos后台界面服务管理
->服务列表
就可以看到注册的服务了
指定端口,运行两个实例
然后在Nacos后台就可以看到两个服务实例数量了。
四、结语
源码地址:https://github.com/tigerleeli/xiaohuge-blog/tree/master/spring-cloud-alibaba-registry
同步微信公众号:小虎哥的技术博客