当前位置: 首页 > article >正文

SpringCloud微服务框架搭建指南

SpringCloud微服务框架搭建指南

1. 简介

本文档将指导您如何从零开始搭建一个SpringCloud微服务框架,并实现一个包含服务注册、服务发现、配置中心、API网关和多个业务服务的完整微服务示例。

2. 环境准备

在开始之前,确保您的系统中已安装以下工具:

  • JDK 17+
  • Maven 3.6+
  • IDE(推荐IntelliJ IDEA或Spring Tool Suite)
  • Git(可选,用于版本控制)

3. 项目结构

我们将创建一个包含以下组件的微服务架构:

  1. Eureka服务注册中心 - 服务注册与发现
  2. Config服务配置中心 - 集中管理配置
  3. Gateway网关服务 - 统一的API入口
  4. User服务 - 用户管理微服务
  5. Order服务 - 订单管理微服务

整体项目结构如下:

spring-cloud-demo/
├── eureka-server/       # 服务注册中心
├── config-server/       # 配置中心
├── gateway-service/     # API网关
├── user-service/        # 用户服务
├── order-service/       # 订单服务
└── pom.xml              # 父级POM文件

4. 创建父级项目

首先,我们创建一个父级Maven项目,用于管理所有微服务模块的依赖和版本。

  1. 创建一个名为spring-cloud-demo的文件夹
  2. 在该文件夹中创建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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>spring-cloud-demo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <properties>
        <java.version>17</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring.boot.version>3.2.0</spring.boot.version>
        <spring.cloud.version>2023.0.0</spring.cloud.version>
    </properties>

    <modules>
        <module>eureka-server</module>
        <module>config-server</module>
        <module>gateway-service</module>
        <module>user-service</module>
        <module>order-service</module>
    </modules>

    <dependencyManagement>
        <dependencies>
            <!-- Spring Boot -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring.boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            
            <!-- Spring Cloud -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring.cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring.boot.version}</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.11.0</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

5. 创建Eureka服务注册中心

  1. 在父项目中创建eureka-server文件夹
  2. eureka-server文件夹中创建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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.example</groupId>
        <artifactId>spring-cloud-demo</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <artifactId>eureka-server</artifactId>

    <dependencies>
        <!-- Eureka Server -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
  1. 创建目录结构:
eureka-server/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── example/
│   │   │           └── eurekaserver/
│   │   └── resources/
└── pom.xml
  1. 创建主启动类 src/main/java/com/example/eurekaserver/EurekaServerApplication.java
package com.example.eurekaserver;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
    }
}
  1. 创建配置文件 src/main/resources/application.yml
server:
  port: 8761

spring:
  application:
    name: eureka-server

eureka:
  instance:
    hostname: localhost
  client:
    regis

http://www.kler.cn/a/611254.html

相关文章:

  • 图解AI对话系统架构:一次讲透核心技术
  • 使用 HBuilder 打包 ruoyi-mall-uniapp 并在微信开发者工具中模拟运行的教程
  • SQL Optimization
  • Linux系统perf命令使用介绍,如何用此命令进行程序热点诊断和性能优化
  • rocky linux 与centos系统的区别
  • 机器学习——欧式距离、闵氏距离、马氏距离、曼哈顿距离、切比雪夫距离(自用)
  • 哪个进程通信效率高
  • Vue 中异步数据加载与方法调用顺序问题:`await` 的正确使用
  • golang不使用锁的情况下,对slice执行并发写操作,是否会有并发问题呢?
  • OPPO手机如何实时翻译会议视频?视频翻译轻松应对多语言场景
  • ES 字段的映射定义了字段的类型及其行为
  • 拥抱人工智能大模型时代:大模型会改变我们的生活吗?
  • 接口自动化进阶 —— Pytest全局配置pytest.ini文件详解!
  • 用PostgreSQL玩转俄罗斯方块:当SQL成为游戏引擎
  • 获取表单元素的方式
  • HarmonyOs-ArkUI List组件
  • macos设置docker可以ping通容器
  • 使用逆滤波法、维纳滤波法、约束最小二乘法、Lucy - Richardson算法恢复运动降质图像的Matlab代码
  • 群体智能优化算法-蜻蜓优化算法(Dragonfly Algorithm, DA,含Matlab源代码)
  • RedisTemplate和RedissonClient适用的场景有什么不同