Banner

OnlineTaxi网约车调度

2026-09-22

一、部署前置准备

1.1 环境要求

组件版本要求
JDK1.8+
Maven3.6+
MySQL5.7+ / 8.0
Redis5.0+(如项目使用)
Node.js14+(如需前端)

1.2 获取源码

git clone https://github.com/MacroTse/OnlineTaxi.git
cd OnlineTaxi

1.3 创建数据库

根据项目提供的 SQL 文件(通常位于 sql/ 或 doc/ 目录)创建数据库:

CREATE DATABASE onlinetaxi CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

导入 SQL 文件创建表结构和初始数据。

二、启动基础设施服务

2.1 启动 MySQL 和 Redis

确保 MySQL 和 Redis 服务已启动。如果使用 Docker:

docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0
docker run -d --name redis -p 6379:6379 redis:alpine

2.2 启动注册中心(cloud-eureka)

Eureka 是微服务的注册中心,必须最先启动。

进入 cloud-eureka 模块,修改 application.yml 中的端口配置(默认通常为 8761),然后运行主启动类。

启动后访问 http://localhost:8761 确认 Eureka 控制台可访问。

2.3 启动配置中心(cloud-config-server)

配置中心从 Git 仓库或本地读取各服务的配置文件。修改 application.yml 中的 Git 仓库地址或本地配置路径,然后启动。

如果项目使用本地配置,可跳过此步骤,直接在各自服务的 application.yml 中配置。

三、启动能力层服务

能力层服务是核心业务逻辑,需要按依赖关系依次启动。建议顺序:

1. 公共模块(internal-common) :这是所有服务引用的二方库,需要先 mvn install 安装到本地 Maven 仓库。

cd internal-common
mvn clean install -DskipTests

2. 基础服务:service-sms(短信)、service-verification-code(验证码)、service-map(地图)、service-passenger-user(乘客用户)。

3. 核心业务服务:service-order(订单)、service-order-dispatch(派单)、service-valuation(计价)、service-wallet(钱包)、service-payment(支付)。

每个服务修改 application.yml 中的数据库连接、Redis 地址、Eureka 注册地址后启动。

四、启动业务层服务

业务层是面向用户端的 API 接口:

  • api-passenger:乘客端接口
  • api-driver:司机端接口
  • api-listen-order:司机听单

启动前确认 Eureka 中已注册的能力层服务正常运行。

五、启动网关与监控(可选)

5.1 API 网关(cloud-zuul)

网关是系统的统一入口,负责路由转发。修改路由配置,将乘客端、司机端请求转发到对应服务。

5.2 监控组件

  • cloud-hystrix-dashboard:熔断监控仪表盘
  • cloud-admin:健康检查
  • cloud-zipkin-ui:链路追踪

这些组件非必需,但有助于观察服务运行状态。

六、验证部署

  1. 访问 Eureka 控制台 http://localhost:8761,确认所有服务已注册
  2. 通过网关或直接调用各服务接口,验证业务功能
  3. 检查日志确认无连接错误

七、常见问题排查

服务无法注册到 Eureka:检查 Eureka 地址配置是否正确(eureka.client.service-url.defaultZone),确认 Eureka 服务已启动。

数据库连接失败:检查 application.yml 中的 JDBC URL、用户名、密码,确认 MySQL 服务运行中。

端口冲突:每个微服务需要独立端口。如果端口被占用,修改 server.port。

Feign 调用失败:确认被调用服务已在 Eureka 中注册,且服务名配置正确。

其他参考项目

如果你需要更完整的部署文档,以下项目提供了更清晰的快速启动指南:

NeuroRides(Django + PostGIS) :提供完整的 Docker Compose 部署方案,支持 docker-compose up --build 一键启动,包含 Celery 异步任务和 WebSocket 实时追踪。

go-ride(Go + PostgreSQL) :提供 make up 和 make migrate-up 命令,使用 Docker Compose 管理 PostgreSQL,Swagger 文档地址明确。

realtime_dispatch_system:提供 Swagger API 文档、Grafana 监控面板和 Prometheus 指标端点,适合需要监控能力的场景。


14