Spring Cloud Alibaba 服务注册中心Nacos

381 阅读1分钟

一、前言

Nacos可以做服务注册发现和配置中心。

微服务的核心就是服务注册中心,一个服务去调用另一个服务,是怎么去找到另一个服务的?首先所有的服务都需要注册到注册中心,然后服务调用方根据服务名称在注册中心去找另一个服务。注册中心就提供服务注册和服务发现的功能。

服务注册中心历史上有用ZooKeeper、Eureka。但是我们选用Nacos,一是它是阿里出品,二是它经历过阿里项目的历练,三是它除了做服务注册还可以做配置中心,而且它相对来说简单。如果是新项目建议使用Nacos。

Nacos官网:nacos.io/zh-cn/index…

二、下载运行

下载地址:github.com/alibaba/nac…

下载解压后在bin目录下

mac运行

sh startup.sh -m standalone

windows运行

startup.cmd -m standalone

访问路径:http://localhost:8848/nacos 默认账号和密码都是nacos

QQ20210518-234833@2x.png

三、项目代码

3.1 代码结构

QQ20210519-000211@2x.png

  • 说明:这里是多模块项目,一个parent模块,一个consume模块,parent是做包版本号管理。

3.2 Nacos创建命名空间

QQ20210518-235733@2x.png

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后台界面服务管理->服务列表就可以看到注册的服务了

QQ20210519-000628@2x.png

指定端口,运行两个实例

QQ截图20210519094929.png

QQ截图20210519095000.png

QQ截图20210519095726.png

然后在Nacos后台就可以看到两个服务实例数量了。

四、结语

源码地址:github.com/tigerleeli/…

同步微信公众号:小虎哥的技术博客

wx_qrcode_1.jpg