当前位置: 首页 > ds >正文

RabbitMQ入门

RabbitMQ 是一个基于 ​​AMQP 协议​​ 的开源消息队列,用于实现系统间的 ​​异步通信​​、​​解耦​​ 和 ​​流量削峰​​。

同步和异步

什么时候时候用同步调用

下一步的操作必须要依赖上一步的操作执行的结果,比如说扣款,扣完款必须要知道是否扣款成功,没扣款成功肯定是不能走下一步;还有查询,必须要查询到东西才能走下一步。能立刻得到响应结果。需要阻塞等待

同步调用的问题

拓展性差,性能下降,级联失败(链路上一个点掉了,整个链全阻塞)

异步调用

异步调用实际上就是基于消息通知。

消息发送者:投递消息的人,就是原来的调用方

消息代理:管理、暂存、转发消息,你可以把它理解成微信服务器

消息接收者:接收和处理消息的人,就是原来的服务提供方。监听消息代理即可

优点:

缺点:

消息队列无法拿到接收者的消息,接收者执行的怎么样了,完全不知道

不能立刻得到调用结果,时效性差。不确定下游应用是否执行成功。业务安全性依赖于消息代理,如果消息代理挂了,后面业务全都挂

什么时候用异步调用

对后面业务的返回结果不关心,调用链太长的情况


rabbitMQ快速入门

交换机是路由转发消息的,本身没有存储消息的能力

交换机必须和队列有绑定,才能将消息转发至队列,队列存储消息,在适时发送给消费者

怎么实现数据隔离

可以自己定义添加virtualHost。不同的虚拟主机就可以实现数据隔离。

也可以创建不同用户,管理不同的虚拟主机,用户权限也可以自定义,不能操作别人的虚拟主机

所以应该给每一个项目创建一个用户,一个虚拟主机。


java怎么操作rabbitMQ

官方的api太复杂了,我们使用springAMQP(基础抽象)

发消息
引入依赖--编写yml文件(配置rabbitMQ主机、端口、用户名、密码等)--使用RabbitTemplate工具类就可以放松消息--接收消息,在方法上加@RabbitListener(指定队列名),方法参数直接接收。

发送者和消费者都要配置yml文件(配置rabbitMQ主机、端口、用户名、密码等)。

http://www.xdnf.cn/news/12954.html

相关文章:

  • 多线程3(Thread)
  • 平衡二叉树:让搜索效率飞升的树形艺术
  • 初入 python Django 框架总结
  • 大话软工笔记—需求调研的准备
  • Perplexity AI:重塑你的信息探索之旅
  • amd64 -- buildx linux 镜像 Docker docker
  • Spring Boot微服务架构(十四):传统架构与微服务架构的开发成本对比分析
  • 联邦学习的创新方向
  • 双指针详解
  • 一键搭建 WordPress + MySQL + phpMyAdmin 环境(支持 PHP 版本选择 自定义配置)
  • 浮点数运算和精度总结
  • ​​​​​​​6板块公共数据典型应用场景【政务服务|公共安全|公共卫生|环境保护|金融风控|教育科研]
  • 简约商务通用宣传年终总结12套PPT模版分享
  • 服务器 | Centos 9 系统中,如何部署SpringBoot后端项目?
  • 随便刷刷web题
  • 7.Pandas 数据可视化图-2
  • Cilium动手实验室: 精通之旅---12.Cilium Egress Gateway - Lab
  • ABP vNext 与 HDFS 数据湖存储集成
  • epoll+线程池
  • 正点原子[第三期]Arm(iMX6U)Linux移植学习笔记-12.1 Linux内核启动流程简介
  • 第二章 无刷电机硬件控制
  • 31.2linux中Regmap的API驱动icm20608实验(编程)_csdn
  • Prompt Enginering(提示工程)先进技术
  • 基于FPGA的超声波显示水位距离,通过蓝牙传输水位数据到手机,同时支持RAM存储水位数据,读取数据。
  • 关于 ffmpeg设置摄像头报错“Could not set video options” 的解决方法
  • Kubernetes 节点资源驱逐策略详解:evictionHard 与 evictionSoft
  • 附加模块--Qt OpenGL模块功能及架构
  • 利用pandas gradio实现简单的项目子项拆解及排期
  • Fractal Generative Models论文阅读笔记与代码分析
  • 树莓派超全系列教程文档--(57)如何设置 Apache web 服务器