首页 > 编程语言 >利用rabbitmq异步实现来提升程序处理性能

利用rabbitmq异步实现来提升程序处理性能

时间:2022-09-24 19:44:05浏览次数:46  
标签:异步 调用 springboot 程序处理 rabbitmq 节点 channel

近期交易系统出款交易量猛增,从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

相关文章

  • Python 异步上下文管理器
    1、参考来源https://docs.python.org/zh-cn/3.9/reference/datamodel.html?highlight=aiter#asynchronous-context-managers2、代码示例1#-*-coding:utf-8-*-......
  • Python 异步迭代器
    1、参考来源https://docs.python.org/zh-cn/3.9/reference/datamodel.html?highlight=aiter#asynchronous-iterators2、代码示例:1#-*-coding:utf-8-*-2"""......
  • asyncio与不支持异步的模块结合使用
    1、使用前提将不支持异常的模板与asyncio结合使用【默认是使用线程池+事件循环】2、同时下载3张图片的示例1#-*-coding:utf-8-*-2"""3FileName:te......
  • 前端面试总结05-异步
    1.单线程和异步:(1:JS是单线程语言,只能同时做一件事(2:浏览器和Nodejs已支持JS启动进程,如WebWorker(3:JS和DOM渲染共用同一个线程,因为JS可修改DOM结构2.单线程与异步:(1:遇到等......
  • 服务异步通信-(rabbitmq)高级篇
    服务异步通信-高级篇 0.RabbitMQ的基础知识回顾 消息队列在使用过程中,面临着很多实际问题需要思考:  1.消息可靠性消息从发送,到消费者接收,会经理多个过程:其......
  • vue3 基础-动态组件 & 异步组件
    之前学习的都是父子组件传值的话题,一句话总结就是,常规数据通过属性传,dom结构通过插槽slot来传.而本篇则关注如何通过数据去控制组件的显示问题,如咱经常用到的......
  • 搜狗workflow异步调度框架
    搜狗workflow异步调度框架参考https://www.zhihu.com/column/c_1456603443661643776来源 https://zhuanlan.zhihu.com/p/172485495虽然我更新本博客比较慢,但是github......
  • openstack-rabbitmq
    消息队列:是一种应用程序对应用程序的通信方法,应用程序通过读取和写入队列的消息来通信。消息传递指的是程序之间通过消息中发送的数据进行通信,而不是通过直接的调用彼此来......
  • 同步方法里调用异步方法会卡死
    C#同步方法中调用异步方法 一、结果:关于ThreadPool中的线程调用算法,其实很简单,每个线程都有一个自己的工作队列localqueue,此外线程池中还有一个globalqueue全局工......
  • RabbitMQ+docker安装教程
    安装Rabbitmq1.使用docker查询rabbitmq的镜像dockersearchrabbitmq   2.安装镜像安装name为rabbitmq的这里是直接安装最新的,如果需要安装其他版本在rabbitmq......