讨论

AGV调度跟WMS对接到底用中间件还是直连?

a816562
a816562
2026/06/18 10:38

项目上碰到的,仓库那边用的是某国产WMS(就不点名了),我们这边AGV调度系统是自己部署的。WMS那边出了个RESTful接口文档说支持任务下发和状态回传,但字段对得七七八八,订单批次、库位编码、SKU那几列格式全是我们这边得二次转。

现在卡在是让WMS直接调我们调度API,还是中间加个MQ做一层解耦。担心直连的话两边一升级就互相拖累,加中间件又怕延迟高、丢消息现场AGV在那儿空转。有没有踩过这个坑的,订单峰值大概一小时三四百单这种规模,到底哪种方案稳一点?

35 3

全部回复 (3)

小张
小张#1

三百多单一小时不算大,走MQ稳得多,Kafka或者RabbitMQ都行,WMS那边出库任务扔过来,调度消费完回ACK再回写状态,哪边挂了消息也不丢。

2026/06/18 19:20
laohaitao
laohaitao#2

你们WMS字段对不上是WMS的问题还是你解析的问题?把转码那层做成配置化的,别写死代码里。

2026/06/18 19:28
程德发
程德发#3

这规模不上MQ迟早出事,400单/小时看着不大,但AGV任务有重试、有抢占、有一车多任务,直连REST谁先挂都说不清。我们去年做的一个汽配仓跟你差不多,最后还是加的RabbitMQ,跑了一年没出过大乱子。

延迟其实不是问题,本地部署的MQ亚毫秒级,比你WMS那边解析完字段再调过来快得多。真正要防的是消息幂等——同一个任务WMS重发、你这边重复建任务,AGV就在货架之间来回空跑。我们当时是在任务头里加了个业务单据号+行号的MD5,调度侧入库前先查Redis,命中就直接回ACK。

字段对不齐这事别想着让两边改,让WMS厂商动接口比登天还难,老老实实在MQ消费者那层做一层DTO转换,脏数据全挡在调度系统外面。你真要直连,后面WMS升级一改字段你就得半夜爬起来发版。

2026/06/27 08:59