近期交易系统出款交易量猛增,从skywalking监控平台查看程序调用链路(trace),发现在调用外部三方接口的方法会耗时将近一半。鉴于出款交易在业务上是异步处理的,所以,商定考虑将调用外部接口的部分改为异步实现。
异步实现,一种方案是线程池。弊端是,线程池是在应用节点内部,集群部署环境下,并不利于多节点的均衡处理。再者,单节点故障时,消息就会丢失,这个比较要命,还要考虑补偿。
最好的方案是借助消息中间件,我们使用rabbitmq。
zhenghe-channel应用是springboot项目,异步改为使用rabbitmq来处理,就相当于,zhenghe-channel既是生产者,又是消费者。
我们的springboot项目使用rabbitmq,通常是这样子的。一个是RabbitConfig类,通过@Bean注解声明exchange、queue,以及binding。上代码:
标签:异步,调用,springboot,程序处理,rabbitmq,节点,channel From: https://www.cnblogs.com/buguge/p/16726347.html