
RabbitMQ
文章平均质量分 90
小孔靠得住
不积跬步无以至千里,不积小流无以江海
展开
-
RabbitMQ-消息队列:Federation Exchange、Federation Queue、Shovel
1、使用 Federation 插件就可以实现容灾2、联邦队列可以在多个 Broker 节点(或者集群)之间为单个队列提供均衡负载的功能。一个联邦队列可以 连接一个或者多个上游队列(upstream queue),并从这些上游队列中获取消息以满足本地消费者消费消息 的需求。 3、Federation 具备的数据转发功能类似,Shovel 够可靠、持续地从一个 Broker 中的队列(作为源端,即 source)拉取数据并转发至另一个 Broker 中的交换器(作为目的端,即 destination)原创 2024-02-29 02:30:00 · 1731 阅读 · 4 评论 -
RabbitMQ-消息队列:镜像队列、Haproxy+Keepalive 实现高可用负载均衡
引入镜像队列(Mirror Queue)的机制,可以将队列镜像到集群中的其他 Broker 节点之上,如果集群中 的一个节点失效了,队列能自动地切换到镜像中的另一个节点上以保证服务的可用性。HAProxy 提供高可用性、负载均衡及基于 TCPHTTP 应用的代理,支持虚拟主机,它是免费、快速并 且可靠的一种解决方案,包括 Twitter,Reddit,StackOverflow,GitHub 在内的多家知名互联网公司在使用。 HAProxy 实现了一种事件驱动、单一进程模型,此模型支持非常大的井发连接数。原创 2024-02-28 02:30:00 · 1482 阅读 · 4 评论 -
RabbitMQ-消息队列:三台虚拟机搭建RabbitMQ集群
单台 RabbitMQ 服务器可以满足每秒 1000 条消息的吞吐量,那么如果应用需要 RabbitMQ 服务满足每秒 10 万条消息的吞 吐量呢?购买昂贵的服务器来增强单机 RabbitMQ 务的性能显得捉襟见肘,搭建一个 RabbitMQ 集群才是 解决实际问题的关键原创 2024-02-26 06:00:00 · 1445 阅读 · 4 评论 -
RabbitMQ-消息队列:优先级队列、惰性队列
队列实现优先级需要做的事情有如下事情:1.队列需要设置为优先级队列2.消息需要设置消息的优先级3.消费者需要等待消息已经发送到队列中才去消费因为,这样才有机会对消息进行排序当消费者由于各种各样的原因 (比如消费者下线、宕机亦或者是由于维护而关闭等) 而致使长时间内不能消费消息造成堆积时,惰性队列就很有必要了。原创 2024-02-25 23:23:07 · 2697 阅读 · 4 评论 -
RabbitMQ-消息队列:发布确认高级
在生产环境中由于一些不明原因,导致 RabbitMQ 重启,在 RabbitMQ 重启期间生产者消息投递失败, 导致消息丢失,需要手动处理和恢复。于是,我们开始思考,如何才能进行 RabbitMQ 的消息可靠投递呢原创 2024-02-23 23:59:04 · 2385 阅读 · 12 评论 -
消息队列-RabbitMQ:死信队列
为了保证订单业务的消息数据不丢失,需要使用到 RabbitMQ 的死信队列机制,当消息消费发生异常时,将消息投入死信队列中。还有比如说:用户在商城下单成功并点击去支付后在指定时间未支付时自动失效。死信的来源:消息 TTL 过期:TTL 是 Time To Live 的缩写,也就是生存时间。队列达到最大长度:队列满了,无法再添加数据到 mq 中。消息被拒绝:(basic.reject 或 basic.nack) 并且 requeue=false。原创 2024-02-22 00:06:40 · 1693 阅读 · 8 评论 -
消息队列-RabbitMQ:延迟队列、rabbitmq 插件方式实现延迟队列、整合SpringBoot
延时队列内部是有序的,最重要的特性就体现在它的延时属性上,延时队列中的元素是希望在指定时间到了以后或之前取出和处理,简单来说,延时队列就是用来存放需要在指定时间被处理的元素的队列。rabbitmq_delayed_message_exchange 插件原创 2024-02-22 00:06:17 · 2679 阅读 · 2 评论 -
消息队列-RabbitMQ:Exchanges、绑定 bindings以及3大常用交换机(Fanout exchange、Direct exchange、Topics exchange)
生产者只能将消息发送到交换机 (exchange),交换机工作的内容非常简单,一方面它接收来自生产者的消息,另一方面将它们推入队列。交换机必须确切知道如何处理收到的消息,是应该把这些消息放到特定队列还是说把他们放到许多队列中还是说应该丢弃它们。这就的由交换机的类型来决定。Exchanges 的类型:直接 (direct)主题 (topic)标题 (headers)(少用)扇出 (fanout)原创 2024-02-21 01:40:59 · 2150 阅读 · 1 评论 -
消息队列-RabbitMQ:发布确认—发布确认逻辑和发布确认的策略
单独发布消息:同步等待确认,简单,但吞吐量非常有限。批量发布消息:批量同步等待确认,简单,合理的吞吐量,一旦出现问题但很难推断出是哪条消息出现了问题。异步处理:最佳性能和资源使用,在出现错误的情况下可以很好地控制,但是实现起来稍微难些。原创 2024-02-20 23:25:13 · 1730 阅读 · 3 评论 -
消息队列-RabbitMQ:workQueues—工作队列、消息应答机制、RabbitMQ 持久化、不公平分发(能者多劳)
1、Work Queues— 工作队列 (又称任务队列) 的主要思想是避免立即执行资源密集型任务,而不得不等待它完成2、消息应答就是:消费者在接收到消息并且处理该消息之后,告诉 rabbitmq 它已经处理了,rabbitmq 可以把该消息删除了3、默认情况下 RabbitMQ 退出或由于某种原因崩溃时,它忽视队列和消息,除非告知它不要这样做。确保消息不会丢失需要做两件事:我们需要将队列和消息都标记为持久化4、不公平分发(能者多劳)原创 2024-02-20 23:10:14 · 1359 阅读 · 1 评论 -
消息队列-RabbitMQ:MQ作用分类、RabbitMQ核心概念及消息生产消费调试
RabbitMQ 的概念RabbitMQ 是一个消息中间件,它接受并转发消息。你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑 RabbitMQ 是 一个快递站,一个快递员帮你传递快件。RabbitMQ 与快递站的主要区别在于,它不处理快件而是接收,存储和转发消息数据。原创 2024-02-19 23:27:19 · 1888 阅读 · 5 评论