中央厨房订单管理系统,引入ActiveMQ消息队列,平滑处理高峰订单
中央厨房订单大部分集中在高峰时段,所以设计时重点考虑的问题,是如何平滑处理瞬间的高负载,避免由于高并发量而引起任务堵塞,严重时导致系统雪崩。
一,拓扑图
订单管理系统从客户端或者第三方平台接收订单,处理完成后通知配送员取餐,将订单数据和状态信息显示在后台管理页面中。
二,系统架构
1,集成ActiveMQ消息队列,平滑瞬间高负载
高峰期时,为了及时处理批量到达的订单,系统架构中引入ActiveMQ消息队列,异步处理订单数据,将瞬间高负载平滑,保障运行稳定,架构易扩展。
订单管理服务将收到的订单存到一个池子中,客户端和第三方平台不用阻塞等待处理结果,这样也不占用服务器资源。系统从消息队列中逐个取出订单,处理结束后通知配送员取餐。
2,集成Redis缓存系统,提高订单数据读写效率,并支持故障恢复
订单数据保存到Redis缓存中,和使用内存相比有两个优点:
1)在架构上支持集群扩展,多个服务器节点时,处理业务逻辑读写数据时,通过Redis系统保持一致。
2)在服务重启或者发生故障时,可以恢复当前处理的订单数据。
3,集成WebSocket,实时更新订单数据到后台管理页面,又不增加服务器负载
订单管理系统处理订单,如何更新显示到后台管理页面中?有两个方案可选。
1)定时调用接口,为了及时显示订单状态,定时任务执行频率会设置的比较高。这样就带来两个问题,首先是增加服务器负载,其次是在没有新订单数据时,仍然需要频繁的调用接口。
2)WebSocket推送数据,订单处理服务在收到订单或者订单状态发生变化时,推送数据到后台管理页面,不仅做到了信息实时显示,而且占用服务器资源非常少,在多个管理后台打开页面时,不额外增加服务器负载。
4,系统架构
三,产品原型开发
Java是当前主流开发语言,Spring Boot是常用框架,有非常丰富的组件和易用的功能。
中央厨房订单处理系统基于Java + Spring Boot + ActiveMQ + Redis开发接口服务,基于Ant Design Pro开发后台管理系统,调用REST API和Web Socket服务。
欢迎学习Java软件开发的同学,学习练手,完善功能,提交代码。
1,开发更多的后台管理系统客户端,Android,iOS
2,完善后台管理系统页面:待处理订单、超时订单、待配送订单
3,开发代客录入订单页面
4,开发厨房管理员操作功能:停止接单、食材库存,等等
四,功能组件集成
1,Spring Boot集成ActiveMQ
ActiveMQ是一个非常流行的消息队列服务中间件,基于JMS(Java Message Service)规范,是一个纯Java程序。Spring Boot集成ActiveMQ时非常简单,配置服务器信息后,封装发送和接口功能,易于开发维护。
2,Spring Boot集成Redis
Redis是一个高性能的key-value数据库,相比MySQL以及其他关系型数据库,Redis读写效率更高,常用于搭建缓存系统,提高并发响应速度。
3,Spring Boot集成WebSocket
WebSocket是建立在TCP协议上的全双工通信连接,不同于HTTP只能有客户端发送请求消息,在客户端和后台服务建立WebSocket连接后,双方都可以主动推送消息,占用很少的资源,实现消息实时同步。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
双主master-master复制Err 1677故障分析
一、报错信息 近期项目实施同事对系统升级,对test.test_tab_t1的某个字段进行变更,SQL语句如下: ALTER TABLE TEST.TEST_TAB_T1 MODIFY BXXX VARCHAR(200); 在该项目项目在做系统升级之后,出现MySQL主从同步报错,报错信息如下: mysql>showslavestatus\G Master_Log_File:binlog.000233 Read_Master_Log_Pos:274415020 Relay_Log_File:relay-bin.000253 Relay_Log_Pos:175535154 Relay_Master_Log_File:binlog.000233 Slave_IO_Running:Yes Slave_SQL_Running:No .................: Last_Errno:1677 Last_Error:Column28oftable'test.test_tab_t1'cannotbeconvertedfromtype'varchar(30)(bytes))'totyp...
- 下一篇
阿里云ECS服务器共享标准型s6与突发性能型t5实例区别在哪?如何选择?
阿里云ECS共享标准型s6服务器是阿里云推出的新一代机型,而突发性能t5是上一代机型,二者之间区别还是蛮大的。对于新手来说这些名字并不能理解具体是什么意思及如何选择,本文中详细说说共享标准型s6与突发性能型t5实例的区别。 共享标准型s6规格性能介绍 CPU处理器:Intel Xeon Platinum 8269CY,2.5 GHz主频,睿频3.2 GHz,计算性能稳定,搭配DDR4内存,I/O优化实例。比上一代共享型实例规格族xn4、n4、mn4和e4的整体性能提升20%。阿里云推出这款共享型s6的目的是替换掉上一代共享型xn4、n4、mn4等老机型,同时希望能够提升共享型服务器在用户中的印象。 适用于这些场景:中小型网站和Web应用程序,开发环境、构建服务器、代码存储库、微服务、测试和暂存环境等,轻量级数据库、缓存,轻量级企业应用、综合应用服务。更多信息参考阿里云规格实例 突发性能型t5规格性能介绍 CPU处理器:Intel Xeon E5-2682v4 / Intel Xeon(Skylake) Platinum 8163 / Intel® Xeon® Platinum 8269...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果