## Docker 容器化部署 ### 新增文件 - Dockerfile: 多阶段构建镜像,支持 Java 21 - docker-compose.yml: 完整服务编排配置 - 基础设施: MySQL 8.0, Redis 7, Nacos 3.0 - 监控: Prometheus, Grafana - 业务服务: Gateway + 9个微服务 - docker/.env: 环境变量配置 - docker/mysql/init/01-init.sql: 数据库初始化脚本 ### Docker 特性 - 多阶段构建优化镜像大小 - 非 root 用户运行服务 - 健康检查配置 - 统一时区设置 (Asia/Shanghai) ## Prometheus + Grafana 监控 ### Prometheus 配置 - docker/prometheus/prometheus.yml: 服务发现配置 - docker/prometheus/rules/alerts.yml: 告警规则 - 服务可用性告警 - JVM 内存告警 - HTTP 请求告警 - 数据库连接池告警 - 系统资源告警 ### Grafana 配置 - docker/grafana/provisioning/: 数据源和Dashboard自动导入 - docker/grafana/dashboards/fund-platform-dashboard.json - 服务概览面板 - JVM 内存监控 - 数据库连接池监控 ### Spring Boot Actuator 集成 - pom.xml: 添加 spring-boot-starter-actuator 和 micrometer-registry-prometheus - application-docker.yml: Prometheus 端点配置 ## 服务端口规划 - Gateway: 8000 - fund-sys: 8100 - fund-cust: 8200 - fund-proj: 8300 - fund-req: 8400 - fund-exp: 8500 - fund-receipt: 8600 - fund-report: 8700 - fund-file: 8800 - Prometheus: 9090 - Grafana: 3000 - Nacos: 8848
107 lines
3.6 KiB
XML
107 lines
3.6 KiB
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">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<!-- 作为整个资金服务平台的父工程(聚合 + 继承) -->
|
|
<parent>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-parent</artifactId>
|
|
<version>3.2.0</version>
|
|
<relativePath/>
|
|
</parent>
|
|
|
|
<groupId>com.fundplatform</groupId>
|
|
<artifactId>fundplatform</artifactId>
|
|
<version>0.0.1-SNAPSHOT</version>
|
|
<packaging>pom</packaging>
|
|
|
|
<name>fundplatform</name>
|
|
<description>Fund Service Platform - Parent</description>
|
|
|
|
<modules>
|
|
<module>fund-common</module>
|
|
<module>fund-gateway</module>
|
|
<module>fund-sys</module>
|
|
<module>fund-cust</module>
|
|
<module>fund-proj</module>
|
|
<module>fund-req</module>
|
|
<module>fund-exp</module>
|
|
<module>fund-receipt</module>
|
|
<module>fund-report</module>
|
|
<module>fund-file</module>
|
|
</modules>
|
|
|
|
<properties>
|
|
<java.version>21</java.version>
|
|
<spring-cloud.version>2023.0.0</spring-cloud.version>
|
|
<spring-cloud-alibaba.version>2023.0.0.0-RC1</spring-cloud-alibaba.version>
|
|
</properties>
|
|
|
|
<dependencyManagement>
|
|
<dependencies>
|
|
<!-- 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>
|
|
<!-- Spring Cloud Alibaba -->
|
|
<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>
|
|
|
|
<!-- 公共依赖 - 所有模块都需要的依赖 -->
|
|
<dependencies>
|
|
<!-- Spring Boot Actuator - 健康检查和监控端点 -->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-actuator</artifactId>
|
|
</dependency>
|
|
|
|
<!-- Micrometer Prometheus - Prometheus 监控指标暴露 -->
|
|
<dependency>
|
|
<groupId>io.micrometer</groupId>
|
|
<artifactId>micrometer-registry-prometheus</artifactId>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<!-- 项目内自定义 Maven 仓库配置,避免依赖外部 settings.xml 中的私服配置 -->
|
|
<repositories>
|
|
<!-- 官方中央仓库 -->
|
|
<repository>
|
|
<id>central</id>
|
|
<url>https://repo1.maven.org/maven2</url>
|
|
<releases>
|
|
<enabled>true</enabled>
|
|
</releases>
|
|
<snapshots>
|
|
<enabled>false</enabled>
|
|
</snapshots>
|
|
</repository>
|
|
</repositories>
|
|
|
|
<pluginRepositories>
|
|
<pluginRepository>
|
|
<id>central</id>
|
|
<url>https://repo1.maven.org/maven2</url>
|
|
<releases>
|
|
<enabled>true</enabled>
|
|
</releases>
|
|
<snapshots>
|
|
<enabled>false</enabled>
|
|
</snapshots>
|
|
</pluginRepository>
|
|
</pluginRepositories>
|
|
|
|
</project>
|