铜山区建设局局网站周保春,自媒体seo优化,wordpress网站投放广告,企业网站制作要求我们将为你的环境#xff08;CentOS Docker Compose Maven JDK 17#xff09;生成并部署一个基础的 Spring Cloud 微服务系统。整个项目结构将包括以下组件#xff1a;
✅ 项目模块结构#xff08;Spring Cloud Alibaba 示例#xff09;
springcloud-demo/
├── eu…我们将为你的环境CentOS Docker Compose Maven JDK 17生成并部署一个基础的 Spring Cloud 微服务系统。整个项目结构将包括以下组件
✅ 项目模块结构Spring Cloud Alibaba 示例
springcloud-demo/
├── eureka-server/ # 注册中心
├── config-server/ # 配置中心可选
├── gateway/ # 网关服务
├── service-user/ # 用户微服务
├── service-order/ # 订单微服务
└── docker-compose.yml # 一键部署入口一、构建服务模块
我们先从最核心的 eureka-server 开始。以下是所需关键文件
1. eureka-server/pom.xml
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.example/groupIdartifactIdeureka-server/artifactIdversion0.0.1-SNAPSHOT/versionpackagingjar/packagingnameeureka-server/namedescriptionEureka Server for Spring Cloud/descriptionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion3.1.5/versionrelativePath/ !-- lookup parent from repository --/parentpropertiesjava.version17/java.versionspring-cloud.version2022.0.5/spring-cloud.version/propertiesdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-server/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependency/dependenciesdependencyManagementdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring-cloud.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build
/project2. eureka-server/src/main/resources/application.yml
server:port: 8761
eureka:client:register-with-eureka: falsefetch-registry: false 3. EurekaServerApplication.java
package com.example.eureka;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);}
} 4. Dockerfile
FROM openjdk:17
COPY target/*.jar app.jar
ENTRYPOINT [java, -jar, /app.jar] 二、构建其他模块如 gateway、service-user 等 1. gateway/pom.xml
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.example/groupIdartifactIdgateway/artifactIdversion0.0.1-SNAPSHOT/versionnamegateway/namedescriptionSpring Cloud Gateway/descriptionpackagingjar/packagingparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion3.1.5/version/parentpropertiesjava.version17/java.versionspring-cloud.version2022.0.5/spring-cloud.version/propertiesdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-gateway/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-client/artifactId/dependency/dependenciesdependencyManagementdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring-cloud.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build
/project2. gateway/src/main/resources/application.yml
server:port: 8080
spring:cloud:gateway:routes: []
eureka:client:service-url:defaultZone: http://eureka-server:8761/eureka
3. GatewayApplication.java
package com.example.gateway;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplication
public class GatewayApplication {public static void main(String[] args) {SpringApplication.run(GatewayApplication.class, args);}
}
4. Dockerfile
FROM openjdk:17
COPY target/*.jar app.jar
ENTRYPOINT [java, -jar, /app.jar]
可以根据上面结构复用类似配置接入 Eureka并配置简单 REST Controller 注册信息。 三、docker-compose.yml 示例部署所有服务
version: 3.8
services:eureka-server:build: ./eureka-serverports:- 8761:8761gateway:build: ./gatewayports:- 8080:8080depends_on:- eureka-serveruser-service:build: ./service-userports:- 8081:8081depends_on:- eureka-servernetworks:default:name: springcloud-net 四、部署步骤 上传项目至 CentOS如/root/springcloud-demo 构建服务 cd /root/springcloud-demo mvn clean package -DskipTests 进入项目解压目录依次执行以下命令 cd eureka-server mvn clean package -DskipTests cd ../gateway mvn clean package -DskipTests cd ../user-service mvn clean package -DskipTests cd ../order-service mvn clean package -DskipTests cd ../auth-service mvn clean package -DskipTests 构建 启动容器 docker compose up --build -d 访问 Eureka 控制台 http://你的服务器IP:8761 访问 user后台 控制台 http://你的服务器IP:8081/hello