当前位置: 首页 > backend >正文

【面试场景题】外卖点餐系统设计思路

文章目录

  • 需求分析
    • 外卖系统应该包含四个角色平台、商家、骑手、用户:
    • 技术难点:
  • 设计思路
    • 整体架构设计
    • 技术难点解决

需求分析

外卖系统应该包含四个角色平台、商家、骑手、用户:

平台管理:商家管理、用户管理、员工管理、营销管理、财务管理、客服系统
商家管理:入驻、审核、菜品管理、套餐管理、财务管理、员工管理、权限管理、优惠营销管理。
用户管理:查看商家、检索、优惠券、支付、退款、催单。
骑手管理:抢单、派单、配送管理、路径规划、结算、提现。

技术难点:

餐食信息频繁刷新读取、商家排序(按距离、按推荐系数、按好评、按历史偏好)、库存超卖、路径规划、抢单

设计思路

整体架构设计

  1. 按业务域划分,应该要将四个角色的业务划分隔离,后续方便扩展。
  2. 下沉部分通用服务:如短信、素材管理、支付、实名认证等

技术难点解决

  1. 餐食信息在点单高峰期会面临频繁刷新,那么使用缓存存储商家、菜品等基础信息,使用CDN缓存图片、视频等信息。
  2. 商家排序比较复杂的可能是多维度的排序场景,其中距离是实时计算出来的,可以先通过Redis GeoHash圈定一定范围内的店家,然后再使用其他指标进行排序。
  3. 库存超卖:可以通过redis做库存管理、或使用乐观锁管理库存,可参考市面通用库存超卖解决方案。
  4. 路径规划:可以使用第三方,如百度地图等开放能力。
  5. 抢单:与库存超卖类似,一个人抢了之后,另一个人就不能再抢单成功。

参考:
https://baijiahao.baidu.com/s?id=1833895772956860023&wfr=spider&for=pc

http://www.xdnf.cn/news/16264.html

相关文章:

  • Flink 自定义类加载器和子优先类加载策略
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 主页-评论用户时间占比环形饼状图实现
  • 编程语言Java——核心技术篇(三)异常处理详解
  • Springboot+activiti启动时报错XMLException: Error reading XML
  • 深度学习day02--神经网络(前三节)
  • Elasticsearch-8.17.0 centos7安装
  • Ubuntu 环境下创建并启动一个 MediaMTX 的 systemd 服务
  • 栈与队列:数据结构核心解密
  • 链表反转算法详解
  • Fluent自动化仿真(TUI命令脚本教程)
  • springboot(3.4.8)整合mybatis
  • 【图像理解进阶】如何对图像中的小区域进行细粒度的语义分割?
  • WAIC2025预告|英码深元AI一体机将亮相华为昇腾展区,以灵活部署的能力赋能行业智能化转型
  • Nginx简单介绍
  • Java-Properties类和properties文件详解
  • 图论:最小生成树
  • classgraph:Java轻量级类和包扫描器
  • linux C — udp,tcp通信
  • 【Chrome】下载chromedriver的地址
  • 深入解析浏览器存储方案:Cookie、localStorage和sessionStorage特性与应用
  • GPU 服务器ecc报错处理
  • Java排序算法之<冒泡排序>
  • 单片机(STM32-ADC模数转换器)
  • 优思学院|QC七大手法之一的检查表应如何有效使用?
  • CSS 盒子模型学习版的理解
  • 数据结构 二叉树(1)
  • yarn在macOS上的安装与镜像源配置:全方位指南
  • 从 SQL Server 到 KingbaseES V9R4C12,一次“无痛”迁移与深度兼容体验实录
  • Orbbec开发---数据流与数据流操作
  • ZLMediaKit 源代码入门