消息中间件的选择:RabbitMQ是一个明智的选择

在这里插入图片描述

💗wei_shuo的个人主页

💫wei_shuo的学习社区

🌐Hello World !


MQ(Message Queue)

MQ(消息队列)是一种用于在应用程序之间进行异步通信的技术;允许应用程序通过发送和接收消息来进行解耦和协同工作

消息生产者(Producer):负责创建和发送消息到消息队列中;它将消息发送到指定的队列或主题

消息队列(Message Queue):是消息的缓冲区,用于存储生产者发送的消息;消息队列可以采用不同的模式,如点对点(Point-to-Point)和发布/订阅(Publish/Subscribe)模式

消息消费者(Consumer):负责从消息队列中接收和处理消息;消费者可以订阅一个队列或主题,并从中接收消息

在这里插入图片描述

RabbitMQ

在这里插入图片描述

RabbitMQ是一个开源的消息队列系统,它实现了高级消息队列协议(AMQP)标准;RabbitMQ提供了可靠的消息传递机制,使应用程序能够在分布式系统中进行可靠的异步通信

SpringAMQP

在这里插入图片描述

Spring AMQP是一个基于Spring框架的开源项目,用于简化使用AMQP(高级消息队列协议)的应用程序的开发;它提供了与AMQP兼容的消息传递的抽象和封装,使开发人员能够更轻松地使用消息队列系统,如RabbitMQ

  • 用于异步处理入站消息的侦听器容器
  • 用于发送和接收消息的RabbitTemplate
  • RabbitAdmin用于自动声明队列,交换和绑定
  • 消息(Message):在RabbitMQ中,消息是信息的载体,可以是任何形式的数据。它通常包含一个消息体和一些可选的属性;消息可以由生产者发布到交换机,然后由交换机路由到一个或多个队列中
  • 交换机(Exchange):交换机是消息的分发中心;它接收生产者发布的消息,并根据预定义的路由规则将消息路由到一个或多个队列中;RabbitMQ提供了几种类型的交换机,包括直连交换机(direct)、主题交换机(topic)、扇形交换机(fanout)和标头交换机(headers),以满足不同的消息路由需求
  • 队列(Queue):队列是消息的缓冲区,用于存储交换机发送过来的消息。消费者可以从队列中订阅并获取消息进行处理;RabbitMQ支持多个消费者同时订阅同一个队列,采用竞争消费模式
  • 绑定(Binding):绑定是交换机和队列之间的关联关系。它定义了消息从交换机路由到哪些队列中;绑定通常包括一个交换机名称、一个队列名称和一个路由键(Routing Key);路由键在直连交换机和主题交换机中起到关键作用,用于匹配消息和队列
  • 生产者(Producer):生产者是消息的发送者,它将消息发布到RabbitMQ的交换机中;生产者可以选择指定消息的交换机、路由键和其他属性
  • 消费者(Consumer):消费者是消息的接收者,它从队列中订阅并获取消息进行处理;消费者可以选择指定要消费的队列,并可以设置消息的确认机制、并发控制
  • 虚拟主机(Virtual Host):虚拟主机提供了逻辑上的隔离,允许在同一个RabbitMQ服务器上创建多个独立的消息代理;每个虚拟主机都有自己的交换机、队列和权限控制
  • 持久化(Durability):RabbitMQ支持将交换机和队列设置为持久化,以确保在服务器重启或崩溃后仍然存在;持久化的消息也可以在重启后恢复
  • 消息确认(Message Acknowledgment):消费者可以使用消息确认机制来确保消息被成功处理;一旦消费者确认接收到消息并完成处理,RabbitMQ将从队列中删除该消息;如果消费者在处理消息时发生错误,消息可以重新投递或进入死信队列
  • 高可用性和可扩展性:RabbitMQ支持集群部署,通过在多个节点上复制队列和交换机来提供高可用性和可扩展性;集群中的节点可以相互同步消息和状态,以实现负载均衡和故障转移

🌼 结语:创作不易,如果觉得博主的文章赏心悦目,还请——点赞👍收藏⭐️评论📝


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/46014.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css学习3(三种样式表与样式控制优先级)

1、外部样式表&#xff1a;当样式需要应用于很多页面时&#xff0c;外部样式表将是理想的选择。在使用外部样式表的情况下&#xff0c;你可以通过改变一个文件来改变整个站点的外观。每个页面使用 <link> 标签链接到样式表&#xff0c;也要放到<head>中。 2、外部…

上网课用什么耳机和麦克风,分享几款骨传导耳机上网课用

各位耳机狂热者&#xff0c;咱们都了解传统的蓝牙耳机相对于老式有线耳机来说确实方便得多。但是&#xff0c;也别忘了蓝牙耳机会导致耳道不断堵塞&#xff0c;引发细菌滋生等问题。好在近年来&#xff0c;骨传导耳机如火如荼地走红&#xff0c;解决了这些难题&#xff0c;简直…

学习Vue:过渡与动画效果

在Vue.js中&#xff0c;为了让页面更具有吸引力和交互性&#xff0c;您可以通过过渡和动画效果来提升用户体验。本文将介绍如何利用过渡类名实现动画效果&#xff0c;探讨Vue过渡的不同阶段&#xff0c;以及如何使用第三方动画库&#xff0c;如Animate.css&#xff0c;来实现更…

飞天使-jenkins进行远程linux机器修改某个文件的思路

文章目录 jenkins配置的方式jenkins中执行shell的思路 jenkins配置的方式 jenkins中执行shell的思路 下面的脚本别照抄&#xff0c;只是一个思路 ipall"$ips"# 将文本参数按行输出为变量 while IFS read -r line; doecho "$line" if [[ ! -z $line ]] &…

ubuntu 22.04 LTS 在 llvm release/17.x 分支上编译 cookbook llvm example Chapter 02

不错的资料&#xff1a; LLVMClang编译器链接器--保值【进阶之路二】 - 掘金 —————————————————————————————————————— 下载 llvm-cookbook example: $ git clone https://github.com/elongbug/llvm-cookbook.git 也可以参照llvm-pr…

java 线程池实现多线程处理list数据

newFixedThreadPool线程池实现多线程 List<PackageAgreementEntity> entityList new CopyOnWriteArrayList<>();//多线程 10个线程//int threadNum 10;int listSize 300;List<List<PackageAgreementDto>> splitData Lists.partition(packageAgre…

Vue实现动态遍历生成el-input

实现效果: el-input的label是measureName, el-input绑定的值是formDatat.measureCode 接口返回的数据格式如下 处理过的formData的格式如下

SpringBoot+微信小程序奶茶在线点单小程序系统 附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码 一、项目演示 项目演示地址&#xff1a; 视频地址 二、项目介绍 项目描述&#xff1a;这是一个基于SpringBoot微信小程序框架开发的奶茶在线点单小程序系统。首先&#xff0c;这是一个前后端分离的项目&#xff…

机器学习深度学习——NLP实战(情感分析模型——textCNN实现)

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——NLP实战&#xff08;情感分析模型——RNN实现&#xff09; &#x1f4da;订阅专栏&#xff1a;机器学习…

SpringBoot复习:(56)使用@Transactional注解标记的方法的执行流程

首先&#xff0c;如果在某个类或某个方法被标记为Transactional时&#xff0c;Spring boot底层会在创建这个bean时生成代理对象&#xff08;默认使用cglib) 示例&#xff1a; 当调用studentService的addStudent方法时&#xff0c;会直接跳到CglibAopProxy类去执行intercept方…

【BASH】回顾与知识点梳理(三十)

【BASH】回顾与知识点梳理 三十 三十. 进程的观察30.1 ps &#xff1a;将某个时间点的进程运作情况撷取下来仅观察自己的 bash 相关进程&#xff1a; ps -l观察系统所有进程&#xff1a; ps aux 30.2 top&#xff1a;动态观察进程的变化30.3 pstree 该系列目录 --> 【BASH】…

动态代理的两个使用方式(手动实现+SpringAOP实现)-Demo

一、手动实现 1、具体代码 package com.xch.proxy;/*** 具体业务接口** author XuChenghe* date 2023/8/18 15:09*/ public interface Star {/*** 唱歌方法** param name* return*/String sing(String name);/*** 跳舞方法*/void dance();} package com.xch.proxy;/*** 具体…

jenkins 安装nodejs 14

参考&#xff1a; jenkins容器安装nodejs-前端问答-PHP中文网

VR漫游:720度实景参观,打造魅力生态小区

随着城市的不断发展&#xff0c;小区的建设越发具有生态化、绿色化的特点&#xff0c;人们也会偏向选择更加适合居住的小区。为了让更多的用户体验小区的舒适性&#xff0c;不少地产开发商准备引入VR漫游技术。 VR漫游不仅能够真实地展示现场环境&#xff0c;还可以改变传统网络…

SSR使用HTTPS

1.安装 npm i browser-sync 2. 再angular.json里配置 "serve-ssr": {"builder": "nguniversal/builders:ssr-dev-server","options": {"ssl": true,"sslCert": "./node_modules/browser-sync/certs/server…

【大虾送书第六期】搞懂大模型的智能基因,RLHF系统设计关键问答

目录 ✨1、RLHF是什么&#xff1f; ✨2、RLHF适用于哪些任务&#xff1f; ✨3、RLHF和其他构建奖励模型的方法相比有何优劣&#xff1f; ✨4、什么样的人类反馈才是好的反馈 ✨5、RLHF算法有哪些类别&#xff0c;各有什么优缺点&#xff1f; ✨6、RLHF采用人类反馈会带来哪些局…

Android13新特性之通知权限提升

Android13新特性之通知权限提升 随着移动通信的高速发展&#xff0c;保障通信的安全性变得尤为重要。在Android 13的最新版本中&#xff0c;通知权限的管理得到了进一步加强。为了实现安全的通信和确保用户的隐私&#xff0c;必须正确申请通知权限。本文将详细探讨如何在Andro…

【Axure视频教程】元件边界函数

今天教大家在Axure里如何使用元件边界函数&#xff0c;包括动态获取指定元件的上下左右边界&#xff0c;限制元件移动的边界&#xff0c;以及在中继器尺寸变化后利用元件边界函数推动拉起下方元件。该教程主要讲解并且和或者函数&#xff0c;不包含中继器表格制作的相关内容&am…

人类反馈强化学习RLHF;微软应用商店推出AI摘要功能

&#x1f989; AI新闻 &#x1f680; 微软应用商店推出AI摘要功能&#xff0c;快速总结用户对App的评价 摘要&#xff1a;微软应用商店正式推出了AI摘要功能&#xff0c;该功能能够将数千条在线评论总结成一段精练的文字&#xff0c;为用户选择和下载新应用和游戏提供参考。该…

excel常见的数学函数篇2

一、数学函数 1、ABS(number)&#xff1a;返回数字的绝对值 语法&#xff1a;ABS(数字)&#xff1b;返回数字的绝对值&#xff1b;若引用单元格&#xff0c;把数字换为单元格地址即可 2、INT(number)&#xff1a;向小取整 语法&#xff1a;INT(数字)&#xff1b;若引用单元格…