zhouhn
2026-02-24 58c3ebe6b64d1cdfce35f9f9b7374897ab8fc16c
更新readmie信息
1个文件已修改
387 ■■■■■ 已修改文件
README.md 387 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
README.md
@@ -1,263 +1,150 @@
# XPeng Robotaxi 项目结构分析
# XPeng Robotaxi
## 项目概述
这是一个基于Spring Cloud Alibaba微服务架构的小鹏汽车Robotaxi项目,采用Java 8 + Spring Boot 2.7.7技术栈,实现了分布式、高可用的自动驾驶出租车服务平台。
## 核心技术栈
- **Java版本**: Java 8
- **Spring Boot**: 2.7.7
- **Spring Cloud**: 2021.0.5
- **Spring Cloud Alibaba**: 2021.0.4.0
- **数据库分片**: ShardingSphere 5.5.2
- **连接池**: Druid 1.2.16
- **API文档**: Swagger 3.0.0
- **注册中心/配置中心**: Nacos
- **服务熔断**: Sentinel
- **分布式事务**: Seata
- **ORM框架**: MyBatis Plus 3.5.2
基于 Spring Cloud Alibaba 的 Robotaxi 微服务系统,面向自动驾驶出行场景,包含账户、订单、地图、自动驾驶、远程驾驶等业务域,以及一组对应的 Spring Boot 应用(`xp-robotaxi-*-boot`)用于实际部署。
---
## 项目模块结构
## 一、技术栈概览
### 1. xp-gateway (网关模块)
**端口**: 默认端口
**功能**: API网关服务,负责请求路由、负载均衡、权限校验、限流熔断等
- 统一入口:所有外部请求的统一接入点
- 路由转发:根据路径将请求转发到对应的服务
- 安全控制:身份认证、权限验证
- 流量控制:限流、熔断、降级处理
- 日志记录:请求日志、访问统计
### 2. xp-common (公共基础模块)
#### 2.1 xp-common-core (核心工具模块)
**功能**: 提供项目通用的基础工具类和配置
- 基础实体类和枚举定义
- 工具类集合(JSON处理、字符串处理等)
- 全局异常处理
- 响应结果封装
- 分页工具类
- 地理位置计算工具(集成geodesy库)
#### 2.2 xp-common-security (安全模块)
**功能**: 安全认证和授权相关功能
- 用户认证服务
- JWT Token管理
- 权限注解处理
- 密码加密解密
- Feign客户端安全配置
- 自定义安全配置注解
#### 2.3 xp-common-swagger (API文档模块)
**功能**: Swagger API文档自动生成和配置
- RESTful API文档自动生成
- 接口调试界面
- 文档分组管理
- 自定义文档配置
#### 2.4 xp-common-redis (缓存模块)
**功能**: Redis缓存相关配置和服务
- Redis连接配置
- 缓存注解支持
- 分布式锁实现
- 缓存工具类
#### 2.5 xp-common-log (日志模块)
**功能**: 系统日志记录和管理
- 操作日志记录
- 异常日志收集
- 日志格式化
- 日志存储策略
#### 2.6 xp-common-datascope (数据权限模块)
**功能**: 数据级别的权限控制
- 部门数据权限过滤
- 用户数据隔离
- 动态数据权限配置
#### 2.7 xp-common-seata (分布式事务模块)
**功能**: 分布式事务管理配置
- Seata客户端配置
- 分布式事务注解支持
- 事务协调器集成
### 3. xp-api (接口定义模块)
**功能**: 各服务间的Feign接口定义和DTO传输对象
- 远程服务调用接口定义
- 数据传输对象(DTO)定义
- 接口降级处理工厂
- 服务间通信契约
### 4. xp-modules (通用业务模块)
#### 4.1 xp-modules-file (文件服务模块)
**端口**: 默认端口
**功能**: 文件上传、下载、存储管理服务
- 文件上传下载
- FastDFS分布式文件存储集成
- 文件类型校验
- 文件访问权限控制
#### 4.2 xp-modules-job (定时任务模块)
**端口**: 默认端口
**功能**: 分布式定时任务调度服务
- Quartz定时任务调度
- 任务管理界面
- 任务执行监控
- 分布式任务协调
### 5. xp-service (核心业务服务模块)
#### 5.1 xp-account (账户服务)
**端口**: 6010
**功能**: 用户账户管理核心服务
- 用户注册登录
- 用户信息管理
- 角色权限管理
- 组织架构管理
- 菜单权限配置
- 用户分组管理
#### 5.2 xp-automaticPilot (自动驾驶服务)
**端口**: 默认端口
**功能**: 自动驾驶核心算法和控制服务
- 自动驾驶模式切换
- 路径规划和导航
- 传感器数据处理
- 驾驶行为决策
- 安全监控系统
#### 5.3 xp-itinerary (行程服务)
**端口**: 默认端口
**功能**: 行程管理和调度服务
- 行程创建和管理
- 路线规划
- 实时位置跟踪
- 行程状态监控
- 历史行程查询
#### 5.4 xp-maintenance (运维服务)
**端口**: 默认端口
**功能**: 车辆运维和保险管理服务
- 车辆维护计划
- 故障报修处理
- 保单申请管理
- 维修记录追踪
- 配件库存管理
#### 5.5 xp-map (地图服务)
**端口**: 默认端口
**功能**: 地图数据和位置服务
- 地图数据管理
- POI兴趣点服务
- 地理围栏设置
- 位置信息服务
- 路况信息获取
#### 5.6 xp-operation (运营服务)
**端口**: 6060
**功能**: 平台运营管理服务
- 运营数据分析
- 车辆调度管理
- 司机运营管理
- 价格策略配置
- 优惠活动管理
- 投诉处理系统
#### 5.7 xp-order (订单服务)
**端口**: 默认端口
**功能**: 订单全流程管理服务
- 订单创建和支付
- 订单状态跟踪
- 订单分配调度
- 订单历史查询
- 退款处理流程
#### 5.8 xp-payment (支付服务)
**端口**: 默认端口
**功能**: 支付结算核心服务
- 多种支付方式集成
- 支付流水管理
- 对账结算功能
- 退款处理
- 发票管理
#### 5.9 xp-pushMessage (消息推送服务)
**端口**: 默认端口
**功能**: 消息通知和推送服务
- 站内信通知
- 短信推送
- APP消息推送
- 邮件通知
- 消息模板管理
#### 5.10 xp-remoteDriving (远程驾驶服务)
**端口**: 默认端口
**功能**: 远程遥控驾驶服务
- 远程驾驶控制
- 实时视频传输
- 遥控指令下发
- 紧急接管机制
- 远程协助功能
#### 5.11 xp-vehicleConvoy (车辆车队服务)
**端口**: 默认端口
**功能**: 车队编队和协同管理服务
- 车队组建管理
- 车辆编队控制
- 车辆间通信协调
- 编队路线规划
- 车队状态监控
- Java 8
- Spring Boot 2.7.7
- Spring Cloud 2021.0.5
- Spring Cloud Alibaba 2021.0.4.0
- Nacos(注册中心 / 配置中心)
- Sentinel(流量控制与熔断降级)
- Seata(分布式事务)
- MyBatis-Plus(ORM)
- Druid(数据库连接池)
- Swagger / Springfox(接口文档)
- Redis、MySQL、MongoDB 等
---
## 架构特点
## 二、顶层模块结构
### 微服务架构优势
1. **服务拆分**: 按业务领域垂直拆分,职责单一
2. **独立部署**: 各服务可独立开发、测试、部署
3. **技术多样性**: 不同服务可根据需求选择合适技术栈
4. **容错性**: 单个服务故障不影响整体系统
5. **可扩展性**: 按需对特定服务进行水平扩展
根工程 `robotaxi` 下包含以下子模块:
### 核心组件集成
- **Nacos**: 服务注册发现和配置管理
- **Sentinel**: 流量控制和熔断降级
- **Seata**: 分布式事务解决方案
- **ShardingSphere**: 数据库分片和读写分离
- **Redis**: 分布式缓存和会话共享
- `xp-robotaxi-api`:对外和内部共享的 API、DTO、proto 风格 VO 定义
- `xp-robotaxi-common`:公共能力(日志、权限、安全、数据源、Redis 等)
- 一组 `xp-robotaxi-*-boot`:每个业务域对应的 Spring Boot 应用,可独立部署
### 部署建议
- 网关层建议部署多实例保证高可用
- 核心业务服务按重要程度分级部署
- 数据库采用主从复制和分片策略
- 缓存层配置合理的过期策略
- 监控告警体系完善各服务健康状态
下面重点说明各个 `boot` 模块的功能职责。
---
*文档更新时间: 2026-02-06*
## 三、Boot 应用模块职责
### 1. xp-robotaxi-gateway-boot(网关应用)
- 基于 Spring Cloud Gateway 的统一入口网关
- 负责路由转发、鉴权校验、限流熔断、灰度发布
- 统一接入层日志与基本安全控制
### 2. xp-robotaxi-account-boot(账户中心)
- 账户/用户域的对外应用
- 用户注册登录、账号信息管理、角色与权限管理
- 为管理后台和其他业务服务提供账户相关 REST 接口
### 3. xp-robotaxi-automatic-pilot-boot(自动驾驶业务)
- Robotaxi 自动驾驶业务对外应用
- 负责云端与 XPU 的消息交互(MQTT / Kafka),包括下行指令和上行状态
- 订单与自动驾驶系统联动(创建任务、控制任务、状态应答等)
- 封装自动驾驶相关业务接口,供运营平台和其他服务调用
### 4. xp-robotaxi-itinerary-boot(行程管理)
- 行程生命周期管理应用
- 行程创建、修改、取消
- 行程状态跟踪、历史行程查询
- 与订单、地图等服务协同进行路径规划与调度
### 5. xp-robotaxi-maintenance-boot(运维与车辆维护)
- 车辆运维与保障相关应用
- 车辆维护计划、保养记录、故障报修流程
- 保单管理和维修记录追踪
- 为运营平台提供车辆健康状态和维护数据
### 6. xp-robotaxi-map-boot(地图与位置服务)
- 地图与位置相关应用
- 路线规划、距离与时间预估
- POI 查询、地理围栏管理
- 与自动驾驶、行程、订单等服务协同提供位置能力
### 7. xp-robotaxi-operation-boot(运营管理)
- 平台运营域应用
- 车辆调度策略、运营数据统计与报表
- 价格策略配置、优惠活动管理
- 支持运营后台对 Robotaxi 业务进行集中管理
### 8. xp-robotaxi-order-boot(订单服务)
- 订单全生命周期管理应用
- 下单、改派、取消、完成等订单流程
- 订单状态机与状态变更通知
- 与支付、行程、自动驾驶等服务联动
### 9. xp-robotaxi-payment-boot(支付与结算)
- 支付结算域应用
- 集成微信等第三方支付渠道
- 支付请求、退款、对账、结算与发票管理
- 对订单服务提供支付能力,对财务提供对账数据
### 10. xp-robotaxi-push-message-boot(消息推送)
- 消息通知与推送应用
- 支持短信、APP 推送、邮件、站内信等多种渠道
- 提供统一消息模板与发送接口
- 与订单、行程、运营等服务集成,实现业务事件触达用户
### 11. xp-robotaxi-remote-driving-boot(远程驾驶)
- 云代驾 / 远程驾驶应用
- 远程控制指令下发、实时状态回传
- 支持紧急接管、远程辅助等场景
- 与自动驾驶、行程、车辆状态服务协同
### 12. xp-robotaxi-vehicle-convoy-boot(车队管理)
- 车队及编队管理应用
- 车队组建与成员管理
- 编队行驶控制与协同调度
- 提供面向车队运营场景的接口能力
### 13. xp-robotaxi-job-boot(定时任务)
- 统一定时任务调度应用
- 基于 Quartz,对多业务域的定时任务进行集中管理
- 任务配置、执行监控、失败重试等
### 14. xp-robotaxi-file-boot(文件服务)
- 文件上传/下载/存储应用
- 支持对象存储或分布式文件系统接入
- 提供统一的文件访问域名与权限控制能力
---
## 四、基础能力模块概览
虽然具体代码在 `xp-robotaxi-common` 与 `xp-robotaxi-api` 中,这里简要说明它们的角色,方便理解整体结构:
- `xp-robotaxi-common`:日志、安全、数据源、Redis、数据权限、分布式事务等通用能力
- `xp-robotaxi-api`:对各个 boot 应用暴露的统一 API/DTO/VO 定义,是服务间通信的契约层
---
## 五、运行与部署提示(概览)
- 所有 `xp-robotaxi-*-boot` 模块均为独立 Spring Boot 应用,可按需选择部署
- 网关(`xp-robotaxi-gateway-boot`)通常需要多实例部署以保证高可用
- 订单、支付、自动驾驶、运营等核心域建议根据业务量做水平扩展
- Nacos / Sentinel / Seata 等基础组件需先行部署,并在各 boot 应用中配置好连接信息
---
*文档更新时间: 2026-02-06*