本文将全面演示如何基于 Spring Cloud Alibaba 和 Nacos 实现微服务核心功能,服务注册发现。
环境准备
- JDK 17+
- Spring Boot 3.2.4
- Spring Cloud 2023.0.1
- Nacos Server 2.3.0 (下载地址)
# 启动Nacos服务器(单机模式) 参数-m model的意思
startup.cmd -m standalone
一、创建项目及模块
1. 创建父工程cloud-demo
项目整体结构如下:model为项目中统一管理的实体类对象与services平级,services为微服务模块的父模块。

📁cloud-demo
├─ 📄pom.xml
├─ 📁model
│ ├─ 📄pom.xml
│ └─ 📁src
│ ├─ 📁test
│ │ └─ 📁java
│ └─ 📁main
│ ├─ 📁resources
│ └─ 📁java
└─ 📁services
├─ 📄pom.xml
├─ 📁service-order
│ ├─ 📄pom.xml
│ └─ 📁src
│ ├─ 📁test
│ │ └─ 📁java
│ └─ 📁main
│ ├─ 📁resources
│ └─ 📁java
└─ 📁service-product
├─ 📄pom.xml
└─ 📁src
├─ 📁test
│ └─ 📁java
└─ 📁main
├─ 📁resources
└─ 📁java二、服务注册与发现
1. 在cloud-demo中的pom.xml中添加配置项和依赖
<packaging>pom</packaging>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>2.在services中的pom.xml中添加配置项和依赖
<packaging>pom</packaging>
<dependencies>
<!--服务配置-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--实体对象-->
<dependency>
<groupId>top.strarry</groupId>
<artifactId>model</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<!--服务发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--远程调用-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>annotationProcessor</scope>
</dependency>
</dependencies>3.在service-order和service-product微服务中添加依赖
<dependencies>
<!--负载均衡-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>4.修改service-order微服务中配置项
spring:
application:
name: service-order
cloud:
nacos:
server-addr: 127.0.0.1:8848
config:
import: nacos:service-order.yaml
server:
port: 80005.修改service-product微服务中配置项
spring:
application:
name: service-product
cloud:
nacos:
server-addr: 127.0.0.1:8848
server:
port: 9000三、启动微服务
1.编写每个微服务的启动类,商品微服务启动类如下:
package top.strarry.product;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class ProductApplication {
public static void main(String[] args) {
SpringApplication.run(ProductApplication.class, args);
}
}2.启动集群:

| 服务名 | 实例数 | 健康实例 | 端口号 |
|---|---|---|---|
| service-order | 2 | 2 | 8000、8001 |
| service-product | 2 | 2 | 9000、9001 |
2. 验证服务注册
访问 Nacos 控制台 http://localhost:8848/nacos,在服务列表中可见注册的服务:

评论