mq
文章平均质量分 65
记录消息队列内容
那山川
记录学习过程
展开
-
为什么使用MQ
在我们平日里无论是通过各种方式学习MQ最先看到的都是MQ的三大优点:异步、削峰、解耦。那么下面我们进行一下这三点的分析,在面试时可靠性和扩展性往往是我们提出来后去引导面试官问下面的问题。原创 2023-05-30 16:30:36 · 987 阅读 · 0 评论 -
RabbitMQ-09 发布确认
发布确认三种方式:单独发布消息、批量发布消息、异步处理(最优)。单独发布消息:同步等待确认,简单,但吞吐量非常有限。批量发布消息:批量同步等待确认,简单,合理的吞吐量,一旦出现问题但很难推断出是那条消息出现了问题。异步处理:最佳性能和资源使用,在出现错误的情况下可以很好地控制,但是实现起来稍微难些。原创 2022-11-22 17:35:39 · 152 阅读 · 0 评论 -
RabbitMQ-08 不公平分发与预取值
增加预取将提高向消费者传递消息的速度。原创 2022-11-22 11:46:27 · 600 阅读 · 0 评论 -
RabbitMQ-07 持久化
之前我们创建的队列都是非持久化的,rabbitmq如果重启的化,该队列就会被删除掉,如果 要队列实现持久化 需要在声明队列的时候把durable参数设置为持久化下面修改一下持久化参数为true不出所料,果真报错,原因是我们之前已经声明了他是一个不持久化的队列,所以我们需要把他删除掉重新进行一次声明完成操作后进入管理页面看到”D“标识,则证明该队列已经持久化成功,重启后队列依旧存在,例如下方所示,如果重启mq那么队列将只显示name为的队列。原创 2022-11-17 13:55:51 · 699 阅读 · 0 评论 -
RabbitMQ-06 消息应答
消费者完成一个任务可能需要一段时间,如果其中一个消费者处理一个长的任务并仅只完成了部分突然它挂掉了,会发生什么情况。RabbitMQ一旦向消费者传递了一条消息,便立即将该消息标记为删除。在这种情况下,突然有个消费者挂掉了,我们将丢失正在处理的消息。以及后续发送给该消费这的消息,因为它无法接收到。为了保证消息在发送过程中不丢失,rabbitmq引入消息应答机制,消息应答就是:消费者在接收到消息并且处理该消息之后,告诉rabbitmq它已经处理了,rabbitmq可以把该消息删除了。原创 2022-11-17 09:55:29 · 104 阅读 · 0 评论 -
RabbitMQ-05 Work Queues
工作队列(任务队列)的主要思想是避免立即执行资源密集型任务,而不得不等待它完成。我们把任务封装为消息并将其发送到队列。在后台运行的工作进程将弹出任务并最终执行作业。当有多个工作线程时,这些工作线程将一起处理这些任务。我们通过一个简单的demo来看一下多线程下是如何处理这些任务队列的。原创 2022-11-16 11:06:24 · 62 阅读 · 0 评论 -
RabbitMQ-04 Hello,World
首先我们还是先看一下Rabbitmq的工作原理图从图上我们可以看到,无论是生产者还是消费者我们都需要进行connection并且获取相应的channel,所以为了方便,建议把这部分操作抽取成一个工具类RabbitMqUtils。原创 2022-11-15 17:48:53 · 408 阅读 · 0 评论 -
RabbitMQ-03 用户新增
设置用户权限 set_permissions [-p ] 可以看到我们刚才新增的用户admin,记住第一步设置的密码“123”,检查后面的权限是否为administrator。在开始进行代码前,可以进行一次角色新增。添加成功后通过账号密码登录到后台。用户的删除可以直接在后台页面操作。添加用户并设置账号密码。找到自己的sbin目录。原创 2022-11-15 17:06:29 · 582 阅读 · 0 评论 -
RabbitMQ-02 工作原理简介
Binding:在Exchange与Queue之间的虚拟连接,binding中可以包含routing key,Binding信息被保存到exchange中的查询表中,用于message的分发依据。Exchange:消息通过Exchange,根据相应的分发规则,匹配查询表中的routing key,分发消息到Queue中,常用类型(direct,topic,fanout)Channel:轻量级的Connection,极大减少了操作系统建立的Tcp Connection开销。原创 2022-11-15 16:35:48 · 390 阅读 · 0 评论 -
RabbitMQ-01 安装与准备
RabbitMQ是一款使用Erlang语言开发的,实现AMQP(高级消息队列协议)的开源消息中间件。消息队列顾名思义,就是保存消息的一个队列。消息是指两个应用间传递的数据,队列是一种先进先出的数据结构。通常有生产者、消费者这两个角色。生产者只负责发送消息给消息队列,消费者只负责从消息队列中取出数据进行消费。 不引入MQ,系统间进行通讯时耦合性很高,倘若其他系统出现异常、对消息的接收状态发生改变、增加了某个需要进行发送消息的系统等情况我们进行数据发送的系统都要进行适配处理。 但是引原创 2022-07-12 16:54:42 · 235 阅读 · 0 评论