中央厨房订单管理系统,引入ActiveMQ消息队列,平滑处理高峰订单
中央厨房订单大部分集中在高峰时段,所以设计时重点考虑的问题,是如何平滑处理瞬间的高负载,避免由于高并发量而引起任务堵塞,严重时导致系统雪崩。 一,拓扑图 订单管理系统从客户端或者第三方平台接收订单,处理完成后通知配送员取餐,将订单数据和状态信息显示在后台管理页面中。 二,系统架构 1,集成ActiveMQ消息队列,平滑瞬间高负载 高峰期时,为了及时处理批量到达的订单,系统架构中引入ActiveMQ消息队列,异步处理订单数据,将瞬间高负载平滑,保障运行稳定,架构易扩展。 订单管理服务将收到的订单存到一个池子中,客户端和第三方平台不用阻塞等待处理结果,这样也不占用服务器资源。系统从消息队列中逐个取出订单,处理结束后通知配送员取餐。 2,集成Redis缓存系统,提高订单数据读写效率,并支持故障恢复 订单数据保存到Redis缓存中,和使用内存相比有两个优点: 1)在架构上支持集群扩展,多个服务器节点时,处理业务逻辑读写数据时,通过Redis系统保持一致。 2)在服务重启或者发生故障时,可以恢复当前处理的订单数据。 3,集成WebSocket,实时更新订单数据到后台管理页面,又不增加服务器负载 ...
