分享一例同一系统里不同服务之间通信的设计方案

优付系统结构如下。一个数据库之上,有商户接口(RestAPI)、运营后台(OMS)、商户门户这3个独立SSM应用,三者有各自不同的功能处理逻辑。

分享一例同一系统里不同服务之间通信的设计方案

现在呢,要做一个补偿工具。当付款单下发因为系统发版等意外导致失败时,要通过这个工具,来人工重发。

工具要做到运用后台(OMS)系统。

但是,付款单下发逻辑在商户接口服务里。

那么,如何实现这个小小的优化需求呢?

方案如下:

  1. 商户接口服务新增一个RestAPI,供OMS调用。这样的话,要做好Rest接口的安全认证,防止误访问。那么,OMS对接就会有这些工作量。

  2. 考虑到是同一个数据库,所以,可以建一个表,OMS保存要补偿的订单。商户接口服务定时轮询这个表进行处理。不足:定时任务,处理时效慢。

  3. 利用消息队列(MQ)。这是最好也是最可靠的方案。OMS作为消息生产者,商户接口服务是消息消费者。保证了处理时效,局域网也不需要考虑接口安全。碰巧RabbitMQ消息中间件当前在系统里有使用,所以接入成本很小。

  4. RPC也是不错的选择,例如dubbo。当前这个系统未有效使用RPC,暂不考虑。

以上每一种方案,幂等是必不可少的。

Original: https://www.cnblogs.com/buguge/p/16417574.html
Author: buguge
Title: 分享一例同一系统里不同服务之间通信的设计方案

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/591626/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球