业务背景:
随着我们系统协议支付订单量的增加,我们迫切需要提升系统的吞吐量。过去,每接收一笔订单,我们都需要发送一次MQ消息,再由MQ进行消费,然后逐条向第三方渠道发送支付请求。随着订单数量的增加,这种逐条发送的方式导致系统吞吐量较低。同时,第三方渠道在同一时间接收过多请求也容易导致吞吐量下降,甚至出现一些超时问题。
解决方案:
为了应对这一问题,我们引入了第三方渠道的批量支付接口。将之前逐条发送的支付请求参数组装成一批次,并一次性发送给第三方渠道,有效减少了请求次数。具体实现方式如下:
- 利用 Rocket-MQ的批量等待消费方案,当Rocket-MQ队列积累到一定数量时才开始一次性消费整批消息。
- 设置消费者一次性处理的消息数量,确保高效消费。
- 若在30秒内未达到设定的阈值数量,每30秒执行一次消费操作,确保即使数量较少也能及时处理。
通过以上优化措施,我们成功提升了系统的吞吐量,同时有效避免了因请求过多导致的超时问题。