一个高效的全异步中间件架构
系统整体架构为全异步通讯中间件,如图。
通讯网关服务
通讯网关服务负责与外系统进行通讯,提供底层通讯协议的支持,支持目前常用的网络通讯协议,以及不同的网络通讯实现方式。支持的通讯方式包括同步、异步通讯,通讯服务的组织方式可以是单工、双工等。
除此之外,通讯网关服务还提供流量控制、通讯故障自动恢复等功能。
路由桥接服务
路由桥接服务负责报文转换、交易路由等功能。根据报文的流转方向,可以将路由桥接服务分为接收服务和发送服务,其中,
- 接收服务
负责处理从外系统接收的报文,包括外系统发起的来账请求报文及外系统返回的往账应答报文。
- 发送服务
负责处理发往外系统的报文,包括向外系统的发起的往账请求报文及返回给外系统的来账应答报文。
交易处理服务
交易处理服务负责原子交易的管理和处理,一般将业务功能类似的原子交易编译成单独的服务,便于交易的集中管理和均衡处理。
交易处理服务分为框架支撑层和业务实现层,其中,框架支撑层实现了报文环境搭建、交易流程控制、数据库事务管理等功能,为业务层提供开放的开发平台和稳定的运行平台;业务实现层负责交易的具体业务逻辑,如业务检查、登记业务表、费用计算等。
超时控制服务
当交易处理过程中,系统与外系统发生交互时,超时控制服务提供交易的超时控制机制。每个交易报文可以进行独立的超时控制,当交易发生超时,超时控制服务将通知相关交易进行超时处理。
超时控制服务分为超时登记服务、超时解登记服务和超时计时服务三部分。服务内部维护超时任务链表,超时登记服务接收到登记请求后,将超时任务插入到链表;超时解登记服务接收到解登记请求后,将相应的超时任务从链表中删除;超时计时服务负责对链表中的任务进行计时,发现超时的任务后,向相应的服务发送超时通知。
**管理服务
1.通讯网管:支持长连接、短链接、各种通讯消息队列中间件
2.路由桥接:报文转换,报文路由
3.交易处理:分阶段流程处理模块,分阶段的目的是非阻塞及模块复用。
4.其他模块:配合流程异步处理的超时控制模块。
优点:
1.整体异步非阻塞架构,解锁因为外部系统造成的资源占用。
2.除了通讯,所有模块均可通过简单增加进程数,提高处理能力。
3.通讯及报文转换模块公用。
缺点:
1.如何实现高可用部署,目前这种模式,只适合冷备。
2.大报文问题。
3.跨机的超时控制问题(可以通过公共的redis内存数据库管理)。