分享一例同一系统里不同服务之间通信的设计方案
2023-09-14 09:06:26 时间
优付系统结构如下。一个数据库之上,有商户接口(RestAPI)、运营后台(OMS)、商户门户这3个独立SSM应用,三者有各自不同的功能处理逻辑。
现在呢,要做一个补偿工具。当付款单下发因为系统发版等意外导致失败时,要通过这个工具,来人工重发。
工具要做到运用后台(OMS)系统。
但是,付款单下发逻辑在商户接口服务里。
那么,如何实现这个小小的优化需求呢?
方案如下:
1. 商户接口服务新增一个RestAPI,供OMS调用。这样的话,要做好Rest接口的安全认证,防止误访问。那么,OMS对接就会有这些工作量。
2. 考虑到是同一个数据库,所以,可以建一个表,OMS保存要补偿的订单。商户接口服务定时轮询这个表进行处理。不足:定时任务,处理时效慢。
3. 利用消息队列(MQ)。这是最好也是最可靠的方案。OMS作为消息生产者,商户接口服务是消息消费者。保证了处理时效,局域网也不需要考虑接口安全。碰巧RabbitMQ消息中间件当前在系统里有使用,所以接入成本很小。
4. RPC也是不错的选择,例如dubbo。当前这个系统未有效使用RPC,暂不考虑。
以上每一种方案,幂等是必不可少的。
相关文章
- 短链系统设计-服务设计
- 工地安全带穿戴监测系统
- 论如何优雅的将自己的服务接入学校的 CAS 统一认证系统
- 大牛带你实时解读微服务架构改造案例:天气预报系统的架构设计
- java date当前时间_JAVA中获取当前系统时间
- 阐述sandwich三明治机器人系统开发应用方案
- PKS系统中的PUSH模块进阶
- SQLServer 错误 41030 无法打开 Windows Server 故障转移群集注册表子项“%.*ls”(错误代码 %d)。 父键为群集根键。 WSFC 服务可能未在运行或是在其当前状态下无法访问,或指定的参数无效。 如果已删除对应的可用性组,则会出现此错误。 有关此错误代码的信息,请参阅 Windows 开发文档中的“系统错误代码”。 故障 处理 修复 支持远程
- 轻松完成Linux系统安装服务(linux安装系统服务)
- Linux下添加系统服务的实用指南(linux添加系统服务)
- 拓展Linux系统实力:字符型驱动编程(linux字符型驱动)
- Linux系统下FTP服务的开通与配置(linuxftp开通)
- 深入Linux系统:探索NASM的魅力(linuxnasm)
- Linux系统:实现完善的日志服务(linux系统日志服务)
- 使用Linux编写系统服务的精妙之处(linux编写系统服务)
- Linux下的娱乐世界:玩转游戏(linux系统玩游戏)
- Ubuntu系统如何重启MySQL服务(ubuntu重启mysql)
- Linux系统中查看已安装服务的方法(linux查看安装的服务)
- 掌握Linux默认服务,更高效使用系统(linux默认服务)
- 轻松打造无盘系统:Linux 无盘服务解析(linux无盘服务)
- 轻松实现!教你在Linux系统中获取主板序列号(linux获取主板序列号)
- 启动Linux ARM系统:一个新的旅程(linuxarm启动)
- 系统Linux下的点菜系统:实现智能餐饮服务(linux点菜)
- 如何在Linux系统中查看运行的服务?(linux下查看服务)
- 如何在 Linux 中删除系统服务(linux删除系统服务)
- 远程控制您的Linux系统,提升您的效率(linux 遥控器)
- 让Redis在系统中自动启动Redis配置为系统服务(redis配置成系统服务)
- 跟后台打印程序系统服务通讯时出现错误解决方法