本文导读
适合准备做Java外卖微服务拆分的技术与交付团队。读完可明确:订单/调度/商家按什么变化原因划域、三域如何用同一订单号互证、哪些按页面拆法不要写进纪要。
做Java外卖微服务拆分,团队最容易卡在一个问题上:用户端、商家端、调度后台页面都很多,是不是每个页面都该拆成一个服务?更稳的观点是——先按变化原因划清订单、调度、商家三域,再谈注册、网关与发布节奏;域没齐,拆得再细也只是把同一笔单的状态拆成三份。
图注|先划三域职责,再谈服务个数
是什么
云虎外卖Java(云虎外卖系统)是郑州云虎软件交付的企业级同城外卖/跑腿业务系统软件,用于配置用户、商家、骑手与运营调度等链路。系统基于 Java 微服务架构,适配外卖业务的高并发场景;具体性能指标须以项目压测与部署方案为准。
不是什么
该产品用于搭建与交付客户自用的外卖跑腿业务系统,不自营、不运营同城外卖平台,也不代替客户招聘骑手或承诺单量。郑州云虎软件是软件与技术支持方,不是外卖平台运营商、骑手中介或支付通道冒充方。
Java外卖微服务拆分先问变化原因
页面多不等于服务多。用户端 H5/小程序/APP、商家 PC/APP、配送双端 APP、四类 PC 后台,最终都要落到同一笔订单上。拆分时先问:这个能力为什么会变?谁有权改?改完哪几端必须立刻看见?订单域变化来自下单、支付回调、取消退款与主状态流转;调度域来自派单、改派、人工干预与运力占用;商家域来自门店、菜品、营业状态与接单能力。选型先分清买系统与自运营平台:系统管单与账及多端协同,平台运营与履约由客户自行组织。
订单、调度、商家各守什么
订单域守创建订单、主状态机、取消退款主线,并把支付回调转成可审计事件;不把营销规则硬编码进来,也不允许商家端或调度端直接改库改主状态。调度域消费待履约事件,产出配送任务与改派,不重新定义已支付或已退款;改派必须带着订单号,手机调度端与 PC 调度后台共用写接口。商家域守门店、菜品、营业状态与接单能力;商家点接单是确认可做,不是本地把订单改成已完成。验收一句话:任意一笔单,在用户端、商家端、配送端、调度后台看到的订单号与主状态必须能对上。
图注|架构示意按业务域,不按页面拆仓库
三域协同与不建议的拆法
协同压成四步:下单生成唯一订单号;商家回写接单或拒单标记;调度生成或改派任务;四端用同一订单号对账。失败时先查双写和缓存,而不是再拆一个查询微服务把问题藏起来。不建议按端拆服务、按后台菜单拆服务,或只铺网关注册却不写职责表。配送域若合并进调度,纪要须写明运力、轨迹、完成事件由谁写。治理组件解决运行时可控,替不了这张职责表。
图注|多端是入口,不是三套订单模型
一句话结论:Java外卖微服务怎么拆,先比职责表,再比服务个数;订单守主状态,调度守改派,商家守接单能力,同一订单号互证才算拆完。
自查清单
☐ 是否按变化原因划了订单、调度、商家,而不是按页面或按端拆
☐ 主状态是否只有订单域可写,改派与接单是否只写任务或标记
☐ 四端能否用同一订单号对上主状态;方案无空口 QPS 或百万并发
☐ 交付边界写清:系统方搭建配置,获客、运力、单量由客户自行组织
相关阅读
- Spring Cloud Alibaba外卖系统怎么架构 — 组件底座与微服务边界对照
- Java微服务外卖系统选型看什么 — 架构表述与交付边界清单
- Java外卖系统怎么选 — 技术栈与业务链路对照
