上一篇文章,写了一个小demo, 用于发送和接收消息,下面创建一个工作队列,向多个消费者分发耗时的任务 图是这样子            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-01-12 14:35:51
                            
                                95阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1 什么是RabbitMQRabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。他遵循Mozilla Public License开源协议。采用 Erlang 实现的工业级的消息队列(MQ)服务器。AMQP(高级消息队列协议) 是一个异步消            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-10-22 09:23:31
                            
                                76阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1. 简介 MQ(Message Queue)消息队列,是基础数据结构中“FIFO(先进先出)”的一种数据结构。 一般用来解决应用解耦,异步消息,流量削峰等问题,实现高性能,高可用,可伸缩和最终一致性架构。 应用解耦 MQ相当于一个中介,生产方通过MQ与消费方交互,它将应用程序进行解耦合。 异步消息 ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-09-09 23:28:00
                            
                                102阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            一、 RabbitMQ1. rabbitmq 的使用场景有哪些?①. 跨系统的异步通信,所有需要异步交互的地方都可以使用消息队列。就像我们除了打电话(同步)以外,还需要发短信,发电子邮件(异步)的通讯方式。②. 多个应用之间的耦合,由于消息是平台无关和语言无关的,而且语义上也不再是函数调用,因此更适合作为多个应用之间的松耦合的接口。基于消息队列的耦合,不需要发送方和接收方同时在            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-06-26 14:23:30
                            
                                40阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            过期时间TTL
过期时间TTL表示可以对消息设置预期的时间,在这个时间内都可以被消费者接收获取;
过了之后消息将自动被删除。
RabbitMQ可以对 消息和队列 设置TTL。目前有两种方法可以设置。
第一种方法是通过队列属性设置,队列中所有消息都有相同的过期时间。
第二种方法是对消息进行单独设置,每条消息TTL可以不同。
如果上述两种方法同时使用,则消息的过期时间以两者之间TTL较小的那个数值为准            
                
                    
                        
                                                            
                                                                        
                                                                推荐
                                                                                        原创
                                                                                    
                            2021-09-05 21:21:07
                            
                                10000+阅读
                            
                                                        
                                点赞
                            
                                                                             
                 
                
                             
         
            
            
            
            1 安装RabbitMQRabbitMQ是采用 Erlang 实现的工业级的消息队列(MQ)服务器。安装RabbitMQ前需要安装Erlang环境。然后下载安装RabbitMQ。            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-10-22 09:05:19
                            
                                162阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            过期时间TTL 过期时间TTL表示可以对消息设置预期的时间,在这个时间内都可以被消费者接收获取; 过了之后消息将自动被删除。 RabbitMQ可以对消息和队列设置TTL。目前有两种方法可以设置。 第一种方法是通过队列属性设置,队列中所有消息都有相同的过期时间。 第二种方法是对消息进行单独设置,每条消 ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-09-05 18:57:00
                            
                                739阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            1.简介 为什么要对消费端进行限流? 其实很好理解,比如我们常能接触到的消费场景:春运期间12306火车票的抢购,双11期间的下单等。这些场景都有一个共同点就是都会导致短暂时间内请求数激增,如果我们的Consumer最多只支持每秒1000的QPS,而由于请求的激增导致每秒2000甚至更多的并发,此时 ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-09-12 15:59:00
                            
                                120阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            前两篇文章,是建立一个简单的日志系统,可以广播消息给多个消费者.这篇文章,讲一下路由.只订阅部分消息.举个例子: 日志其中一个队列, 只接受关于某一类的信息Binding            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-01-12 14:36:58
                            
                                85阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            消息可靠投递 confirm 确认模式 1.开启confirm确认模式 2.设置回调函数,当消息发送到exchange后回调confirm方法,在方法中判断ack,如果为true 则发送成功,如果为false则发送失败,需要处理 return 退回模式 1.开启 退回模式 2.设置回调函数,当消息从 ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-08-26 20:21:00
                            
                                264阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            1. 简介 我们在上一篇博文中遗留了一个小问题,就是虽然TTL + DLX能实现延迟队列的功能,但是有两个问题。 首先业务场景为:比如海底捞预约,每个人预约的时间段不一致,有个可能一个小时后,有的可能三个小时等,当快到预约时间点需要给用户进行短信通知。 通过给Queue设置过期时间的方式不现实,因为 ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-09-16 23:34:00
                            
                                189阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            服务异步通信-高级篇 消息队列在使用过程中,面临着很多实际问题需要思考: 1.消息可靠性 消息从发送,到消费者接收,会经理多个            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-07-17 10:22:39
                            
                                0阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            概述 Work Queues,也被称为(Task Queues)任务模型。当消息处理比较耗时的时候,可能生产消息的速度会远远大于消息的消费速度。长此以往,消息就会堆积越来越多,无法及时处理。此时就可以使用 work 模型:让多个消费者绑定到一个队列,共同消费队列中的消息。
                    
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2020-10-29 23:57:00
                            
                                119阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            概述 在上图的模型中,有以下概念 P:生产者,也就是要发送消息的程序 C:消费者,消息的接受者,会一直等待消息的到来 Queue:消息队列,图中蓝色部分 类似一个邮箱,可以缓存消息 生产者向其中投递消息,消费者从其中取出消息 创建生产者生产消息 代码如下: /** * @author: BNTang
                    
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2020-10-07 19:05:00
                            
                                615阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            概述 fanout扇出也称之为广播 在广播模式下,消息发送的流程是这样的,如下所示: 可以有多个消费者。 每个消费者有自己的 queue(队列) 每个队列都要绑定到 Exchange(交换机) 生产者发送的消息,只能发送到交换机,交换机来决定要发给哪个队列,生产者无法决定。 交换机把消息发送给绑定过
                    
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2020-10-31 13:09:00
                            
                                2060阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            上篇文章中,创建一个工作队列,对应的每个任务都交给了一个消费者.那么这一部分,就学习一下,将任务分发给多个消费者.即发布-订阅 场景: 一个发送日志,一个接受者把接收到的数据写            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-01-12 14:34:06
                            
                                124阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            RabbitmqMQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消 息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的            
                
                    
                        
                                                                            
                                                                                        转载
                                                                                            精选
                                                        
                            2015-04-27 13:53:11
                            
                                749阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            对于使用RabbitMQ执行Command的情况,有时候需要有返回值信息。此时相当于client发布一个command后,并侦听返回结果的queue,server接收并处理,将处理结果发布到client侦听的queue中。简单实现如下:1. Client端private static void RPCResponse(){ using (IConnection conn = CreateMQConnection()) { using (IModel ch = conn.CreateModel()) { while (true) ...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-10-22 09:18:44
                            
                                85阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            在这篇文章中,将创建一个工作队列,用于在多个工作者之间分配任务。 工作队列(又称:任务队列)的主要思想是避免立即进行资源密集型的任务,而不得不等待它的完成。相反,我们将任务安排在以后完成。我们将一个任务封装成一个消息,并将其发送到一个队列中。一个在后台运行的工作者进程将取出任务,并最终执行工作。当你 ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-09-09 17:29:00
                            
                                187阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            一、路由模式特点: 队列与交换机的绑定,不能是任意绑定了,而是要指定一个 RoutingKey (路由key) 消息的发送方在 向 Exchange发送消息时,也必须指定消息的 RoutingKey 。 Exchange不再把消息交给每一个绑定的队列,而是根据消息的 Routing Key 进行判断 ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-10-19 14:33:00
                            
                                131阅读
                            
                                                                                    
                                2评论