
rabbitmq
文章平均质量分 78
丰锅神操作
个人博客中的文章绝不删除下线,大家放心收藏。
展开
-
8.rabbitmq-死信交换机和死信队列
前面我们看到,如果使用消息拒绝机制,同时 requeue 参数设置为 false时,消息丢失了,这点作为程序员我们不能忍。所以 RabbitMQ作为一个高级消息中间件,提出了死信交换器的概念,死信,意思就是死了的信息。这种交换器专门处理死了的信息(被拒绝可以重新投递的信息不能算死的)。死信交换器是 RabbitMQ 对 AMQP 规范的一个扩展,往往用在对问题消息的诊断上(主要针对消费者),还有延时队列的功能。消息变成死信一般是以下三种情况:消息被拒绝,并且设置 requeue 参数为 fals转载 2022-01-17 19:50:58 · 305 阅读 · 0 评论 -
7.rabbitmq-消息的拒绝
消息确认可以让 RabbitMQ 知道消费者已经接受并处理完消息。但是如果消息本身或者消息的处理过程出现问题怎么办?需要一种机制,通知RabbitMQ,这个消息,我无法处理,请让别的消费者处理。这里就有两种机制,Reject 和 Nack。rejectreject在拒绝消息时,可以使用requeue标识。1.requeue为true,消息会重新回到队列中,并通过轮循机制推送给消费者(可能是多个)。这里需要注意的是,拒绝这条消息的消费者同样会在再次推送的消费者列表中。这个下面会再演示下。转载 2022-01-17 19:48:53 · 1009 阅读 · 0 评论 -
6.rabbitmq-消息消费时的可靠性保障
既然消息在发布时可以执行一些保证可靠性的机制,那么消费者在消费消息时是否也同样的有类似的机制来通知队列消息的消费成功以否。答案是肯定的。在实际业务场景中,一般消息的业务处理都集中在消费端.所以消费时消息的可靠性尤为重要。我们先了解一下消费者拉取队列的两种方式1. get主动拉取2. consumer接受推送1.Get方式 // 省略获取连接,声明队列,并绑定交换机代码 while (true) { //主动去 "lb-queue" 这个队列拉取..转载 2022-01-17 19:47:19 · 735 阅读 · 0 评论 -
5.rabbitmq-消息发布时的可靠性保障
在 RabbitMQ 在设计的时候,特意让生产者和消费者“脱钩”,也就是消息的发布和消息的消费之间是解耦的。在 RabbitMQ 中,有不同的投递机制(生产者),但是每一种机制都对性能有一定的影响。一般来讲速度快的可靠性低,可靠性好的性能差,具体怎么使用需要根据你的应用程序来定,所以说没有最好的方式,只有最合适的方式。各种可靠性机制对性能的影响接下来我们分别介绍下这几种投递机制1. 无保障模式通过 basicPublish 发布你的消息并使用正确的交换器和路由信息,你...转载 2022-01-17 19:43:20 · 270 阅读 · 0 评论 -
4. rabbitmq-消息详解
消息的属性消息标准化可以减少开发人员重复使用的痛苦,所以 RabbitMQ 对消息进行了如下标准化:按照 AMQP 的协议单个最大的消息大小为 16EB(2 的 64 次方),但是 RabbitMQ 将消息大小限定为 2GB(2 的 31 次方)。在发送消息时,我们还可以对消息的属性做更细微的控制,比如利用reply-to属性构建 Request-Response 模式,消息存活时间当队列消息的 TTL 和消息 TTL 都被设置,时间短的 TTL 设置生效。如果将..转载 2022-01-17 19:34:46 · 957 阅读 · 0 评论 -
3.rabbitmq-队列详解
RabbitMQ 中消费行为主要跟队列有直接关系,有这几种类型。1. 临时队列2. 自动删除队列3. 单消费者队列4. 自动过期队列5. 永久队列接下来我们来详细的介绍下这几种类型的队列。1.临时队列临时队列对应的是没有持久化的队列,存在于内存中。如果rabbitmq服务器重启,那么这些队列就不会存在。//将第二个参数,表示是否是持久化的,设置为非持久化的,那么他就是一条默认队列channel.queueDeclare("temporary-queue", fal转载 2022-01-17 19:27:47 · 2173 阅读 · 0 评论 -
2.rabbitmq-交换机详解
在rabbitmq的消息模型中,消息的生产都是面向交换机的,并会指定一个路由键。由交换机根据路由键去匹配绑定在此交换机的队列上。匹配的规则则是根据交换机的类型来决定如何匹配队列绑定交换机时的绑定键。匹配成功,则交换机会把消息发送到相应队列上。接下来我们介绍下这几种主要的交换机类型。1. direct 直连交换机2. fanout 广播交换机3. topic 主题4. header 这个不咋用,这里暂时就不介绍了,啊哈哈1. Direct路由键完全匹配,消息被投递到对应的队列,转载 2022-01-17 18:28:00 · 180 阅读 · 0 评论 -
rabbitmq
二、工作模型 当producer(consumer)要生产(消费)消息时,需要与服务器建立一个长连接,在RabbitMQ中称为Connection,为解决客户端与服务端所产生频繁连接的问题,由于会大量的消耗服务器内存,这里引入消息通道的概念,在保持长连接的情况下,可以通过建立Channel的方式与服务器通讯,当有请求时就会建立通道,结束则关闭通道。在RabbitMQ中,一般的做法不会让消息直接发送到消息队列中,这里引入了Exchange(交换机)的概念,通过交换机来实现消息更加灵活的分发,交换机没转载 2022-01-17 18:26:04 · 726 阅读 · 0 评论 -
1. rabbitmq的安装及基本概念
转载1. rabbitmq的安装及基本概念 - 简书安装centos看这个老哥的吧,https://www.cnblogs.com/rmxd/p/11583932.html基本概念连接首先作为客户端(无论是生产者还是消费者),你如果要与 RabbitMQ 通讯的话,你们之间必须创建一条 TCP 连接,当然同时建立连接后,客户端还必须发送一条“问候语”让彼此知道我们都是符合AMQP的语言的,比如你跟别人打招呼一般会说“你好!”,你跟国外的美女一般会说“hello!”一样。你们确认好“语转载 2022-01-17 18:24:19 · 125 阅读 · 0 评论