文档首页 > > 最佳实践> 构建外卖订单业务应用> 案例概述

案例概述

分享
更新时间: 2019/05/27 GMT+08:00

本手册基于华为云函数工作流服务实践所编写,用于指导您使用函数工作流构建外卖订单业务。

背景信息

  • 外卖配送服务网站。
  • 提供配送员接入、用户下单等功能。
  • 减少运维成本。
  • 业务量小时级变化,稳定处理峰值流量,减少闲时成本。

问题与诉求

  • 现有模式

    采购虚拟机,构建业务处理流程,长期维护。后台流程通过业务代码编排如图1所示。

    图1 当前架构
  • 诉求
    • 流程编排要灵活:通过业务代码编排处理流程难以维护,业务变化时难以修改。
    • 方便错误定位:当业务失败时很难定位,不知道是哪一个步骤出错。
    • 自动扩展:外卖订单每天午餐、晚餐期间峰值明显,而平时订单量很少,导致资源浪费。
    • 减少运维工作及成本:增加了现有运维人员的负担,又不希望增加运维人员。

基于FunctionGraph的方案

方案如图2所示。

图2 serverless方案
  • 全部基于serverless云服务,去除VM,无需运维。
  • 业务流程编排不再由业务代码维护,转而托管到工作流服务。
  • 现有代码经过较少的改动,改写成构建外卖订单的小函数,托管在FunctionGraph函数服务。
  • 如需添加功能,只需要编写独立的小函数,然后在FunctionGraph中将其编排进去即可,简单灵活。
  • 按调用计费,最大程度减少闲置成本自动弹性扩容,适应请求峰值。

外卖订单业务编排的流程定义

流程如图3所示。

图3 外卖订单业务的编排流程

getOrderInfo:获取订单详情。

parseLoc:分析订单地理位置信息。

isInRange:检查订单地理距离是否太远。

getCityVList:获取订单所在地区配送员列表。

hasAvailable:检查是否有可用的配送员。

assgin:实现配送员分配算法,选择实际承接任务的配送员。

dispatch:通知配送员。

inform:通知客户配送分配成功。

informfailed:通知客户配送失败。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区