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

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

文章目录

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

需求分析

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

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

技术难点:

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

设计思路

整体架构设计

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

技术难点解决

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

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

http://www.lryc.cn/news/599503.html

相关文章:

  • [MMU]四级页表查找(table walk)的流程
  • SQL性能优化
  • 【LeetCode Solutions】LeetCode 热题 100 题解(16 ~ 20)
  • 系统编程——文件IO
  • SpringBoot整合Fastexcel/EasyExcel导出Excel导出多个图片
  • 面向对象编程实战:Python打造你的数码宠物世界
  • Java NIO FileChannel在大文件传输中的性能优化实践指南
  • 盟接之桥说制造:构建以预防为核心的供应链客诉管理体系
  • GitHub git push 推送大文件
  • 【第四章:大模型(LLM)】01.Embedding is all you need-(6)从 Word2Vec 到推荐/广告系统,再到大语言模型(LLM)
  • Three.js 控制器和交互设计:OrbitControls + Raycaster 实战
  • ✨ 使用 Flask 实现头像文件上传与加载功能
  • Kafka——多线程开发消费者实例
  • MCP工具开发实战:打造智能体的“超能力“
  • 半相合 - 脐血联合移植
  • C++ 常用的数据结构(适配器容量:栈、队列、优先队列)
  • 海云安斩获“智能金融创新应用“标杆案例 彰显AI安全左移技术创新实力
  • 智能网关芯片:物联网连接的核心引擎
  • VR 污水处理技术赋能广州猎德污水处理厂,处理效率显著提升
  • FastDFS如何提供HTTP访问电子影像文件
  • 网络协议,DHCP 协议等。
  • 每日面试题14:CMS与G1垃圾回收器的区别
  • http-proxy-middleware MaxListenersExceededWarning
  • Java 大视界 -- 基于 Java 的大数据分布式存储在工业互联网数据管理与边缘计算协同中的创新实践(364)
  • 零碳园区如何破局?安科瑞EMS3.0以智慧能源管理重构低碳未来
  • 借助Aspose.HTML控件,在 Python 中将 SVG 转换为 PDF
  • Kimi K2 大语言模型技术特性与应用实践分析
  • 酷暑来袭,科技如何让城市清凉又洁净?
  • 冠捷科技 | 内生外化,精准触达,实现数字化转型精准赋能
  • Pytorch混合精度训练最佳实践