【发布时间】:2021-07-05 14:06:30
【问题描述】:
我正在为 SDE 3-4 的高级设计面试练习。
我为 UberEats 做了这个设计,但我有一些问题。
功能要求是:
- 获取附近餐厅列表
- 从餐厅拿菜
- 根据我们拥有的用户位置 计算附近的餐厅
- 获取订单并将其处理到餐厅
- 可以由第三方付款
- 餐厅的位置和工作时间
- 跟踪订单状态/通知用户
- 推荐系统
- 与餐厅 OMS 集成
- 发货
- 用户对餐厅的反馈
非功能性是:
- 低延迟
- 高可用性
- 高一致性
- 每天 100 万个订单
- 50 万日活
我在下面放了一张我的设计图片。
我的问题是:
我必须指定微服务之间的通信类型?
这是一个很好的细节层次还是我必须更深入?
通知服务部分,我不知道是否正确我在考虑一个消息队列,OMS(订单管理系统)将负责将订单更新放入消息队列。
我做了一些研究,但我对这种类型的设计很迷茫,所以欢迎所有帮助。
【问题讨论】:
-
嗨!欢迎来到 SO。 “SDE III”似乎是亚马逊内部对高级工程师的称呼,是在你面试后协商的。答案,如果有的话,将主要基于意见,但这么多的前期设计无论如何都是不现实的。恐怕 SO 可能不是问这个问题的最佳地点。
标签: architecture load-balancing computer-science