SpringCloud神领物流学习笔记:项目概述(一)

发布于:2024-09-18 ⋅ 阅读:(29) ⋅ 点赞:(0)

SpringCloud神领物流学习笔记:项目概述(一)

1、项目介绍

​ 神领物流是一个基于微服务架构体系的【生产级】物流项目系统,接近企业真实场景的项目,,它涵盖了物流领域的各个方面,包括货物信息管理、订单管理、运输管理、仓储管理、人员管理等多个方面。这个系统的设计完全基于微服务架构,每个功能模块都是一个独立的微服务,每个微服务都有自己的数据库和独立的服务接口。这种设计方式使得神领物流系统具有高度的业务完整度、真实度和复杂度,让学生感受到真实企业开发的挑战和难度。通过这个项目,可以学习到微服务架构的实际应用和开发技能。

2、基本业务流程

image-20240910200935069

流程说明:

  • 客户在【神领物流微信小程序】中填写收、发件人地址,以及物品信息,提交订单
  • 下单成功后,【快递员上门取件】,并要求用户进行【在线支付】
  • 快递员取件成功后,会将快件送回到【营业网点】
  • 快件到达营业网点后,司机开始运输,将快件交由【转运中心】进行一系列的转运
  • 最后,快件会到达收件人所在的【营业网点】,再由【快递员】进行【派件】操作
  • 收件人可以进行【签收】或【拒收】操作
3、系统架构

image-20240910201426335

这张架构图分为多个层次和模块:

  1. 平台终端层

    • 包括用户端(小程序)、司机端(APP)、快递员端(APP)和后台管理系统(PC端)。
    • 这些终端用于不同角色的使用和管理。
  2. 统一网关

    • 作为所有终端和后端服务之间的接口,负责请求的路由和安全。
  3. 业务平台

    • 微服务平台

      :包含调度和运输管理。

      • 调度(dispatch):负责智能调度、实时调度任务调整、延时取件任务调整等。
      • 运输(transport):负责路线规划、网点管理、时间/成本优化路线规划等。
      • 运营/任务管理(work):包括运单管理、取件任务管理、派件任务管理等。
    • 微服务体系:提供基础服务、快递微服务、订单微服务等。

  4. 支撑平台

    • 自研组件服务

      • 权限系统:用户管理、组织管理、权限管理。
      • EagleMap:提供路线规划、距离计算、坐标转化等功能。
    • 服务平台

      • 包括阿里云、美团Leaf、Seata、RabbitMQ、xxl-job、skywalking、支付宝、微信等服务,用于支持消息中间件、任务调度、分布式事务、链路追踪等功能。
  5. 数据平台

    • 使用Neo4j、MySQL、MongoDB、Redis、Elasticsearch等数据库和缓存技术,支持数据存储和查询。

整个架构旨在通过不同模块的协同工作,实现高效的物流和运营管理。

4、技术架构

下图展现了神领物流项目使用的主要的技术:

image-20240910201506149

这张技术架构图展示了神领物流项目的主要技术组件和框架,分为多个层次:

  1. 前端技术
    • 使用 ReactVue 作为前端框架,用于构建用户界面。
    • TypeScript 提供了静态类型支持,提高代码的可维护性和可读性。
  2. 后端技术
    • Spring BootSpring Cloud 用于微服务架构,提供服务治理、配置管理等功能。
    • MyBatis 作为持久层框架,简化数据库操作。
    • Redis 用于缓存,提高数据访问速度。
    • RabbitMQ 作为消息中间件,实现异步通信。
    • Elasticsearch 用于全文检索和分析。
  3. 数据库
    • 使用 MySQL 作为主要关系型数据库,存储业务数据。
    • MongoDB 用于存储非结构化数据。
  4. 运维与监控
    • Docker 用于容器化部署,简化应用的分发和管理。
    • Kubernetes 负责容器编排,提供自动化部署、扩展和管理。
    • PrometheusGrafana 用于监控和可视化系统性能。
    • SkyWalking 进行分布式链路追踪,帮助分析和诊断系统性能问题。

这个技术架构结合了前后端、数据库、消息中间件、运维监控等多个方面的技术,旨在构建一个高效、可扩展、可维护的物流系统。