RabbitMQ
文章平均质量分 92
RabbitMQ
Fisher3652
这个作者很懒,什么都没留下…
展开
-
如何保证Rabbitmq消息的成功投递
消息发送到 mq 之前先把消息存储到 mysql 中,消息有一个存根避免消息在 mq 中丢失后没地方找这个消息了。表设计有几个关键字段:messageId:流水 ID,用来在消息的生产端和消费端串联使用,根据这个 id 找到消费端和生产端唯一的消息;messageContent:消息内容;count:发送到 broker 的次数,如果超过特定次数就不往 broker 发送;status:消息状态,已确认、未确认、已作废,如果消费端已经确认就需要修改该状态。定时扫描 mysql 中未确认的消息,.原创 2020-11-20 18:44:01 · 358 阅读 · 1 评论 -
RabbitMQ 12:与springboot集成+发送方确认+失败通知+手动应答
生产者:发送方确认,失败通知消费者:手动应答1.创建一个springboot-maven工程,pom.xml引入amqp与web<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:/原创 2020-05-14 23:01:36 · 907 阅读 · 0 评论 -
RabbitMQ 11:原生Java客户端+消息的属性+Request-Response模式
1.创建生产者ReplyToProducerpackage com.rabbit.fisher.setmsg;import com.rabbitmq.client.*;import java.io.IOException;import java.util.UUID;import java.util.concurrent.TimeoutException;/** *消息的...原创 2020-05-07 22:33:29 · 447 阅读 · 0 评论 -
RabbitMQ 10:原生Java客户端+队列的控制
队列的控制临时队列(非持久化的队列)自动删除队列单消费者队列自动过期队列永久队列(持久化的队列)package com.rabbit.fisher.setqueue;import com.rabbitmq.client.*;import java.io.IOException;import java.util.HashMap;import java.util.Map;import...原创 2020-05-07 21:09:37 · 160 阅读 · 0 评论 -
RabbitMQ 9:原生Java客户端+死信交换器DLX
1.创建生产者DlxProducerpackage com.rabbit.fisher.dlx;import com.rabbitmq.client.BuiltinExchangeType;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.clie...原创 2020-05-05 22:55:49 · 161 阅读 · 0 评论 -
RabbitMQ 8:原生Java客户端+消息消费的拒绝(Reject、Nack)
10条消息,2个普通消费者,1个拒绝消费者,消费前消费后,经过轮询消费者A消费了1、4、7、10,消费者B消费了2、5、8,拒绝消费者消费了3、6、93、6、9被拒绝之后,返回队列中重新投递3进入消费者B,6进入拒绝消费者,9进入消费者A;然后6再次被拒绝,进入队列再次重新投递,进入消费者B上代码1.创建生产者RejectProducer,生产10条消息pa...原创 2020-05-05 15:04:40 · 424 阅读 · 0 评论 -
RabbitMQ 7:原生Java客户端+消息应答手动确认+QoS预取+批量确认
1.创建生产者QosProducerpackage com.rabbit.fisher.qos;import com.rabbitmq.client.BuiltinExchangeType;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client...原创 2020-05-05 13:10:04 · 749 阅读 · 0 评论 -
RabbitMQ 6:原生Java客户端+备用交换器
__如果主交换器无法路由消息,那么消息将被路由到这个新的备用交换器,有备用交换器时,不会发送失败通知__1.创建生产者BackupExchangeProducerpackage com.rabbit.fisher.backupexchange;import com.rabbitmq.client.BuiltinExchangeType;import com.rabbitmq.cli...原创 2020-05-04 22:53:46 · 198 阅读 · 0 评论 -
RabbitMQ 5:原生Java客户端+发送方确认
发送方确认的三种实现方式一、一般确认1.1.创建生产者ProducerConfirm,设置发送方确认模式1.2.创建消费者ProducerConfirmConsumer1.3.先启动消费者1.4.再启动生产者1.5.查看生产者打印,确认成功二、批量确认2.1创建生产者ProducerBatchConfirm,设置批量确认2.2创建消费者ProducerBatchConfirmConsumer2....原创 2020-05-04 20:52:53 · 310 阅读 · 0 评论 -
RabbitMQ 4:原生Java客户端+失败通知
mandatory设置为true,当消息不可路由时,交换器发送失败通知,此过程都发生在生产者端1.创建生产者ProducerMandatory,发送消息时设置mandatory标志为truepackage com.rabbit.fisher.mandatory;import com.rabbitmq.client.*;import java.io.IOException;imp...原创 2020-05-04 17:05:28 · 324 阅读 · 0 评论 -
RabbitMQ 3:原生Java客户端+Topic交换器+消息通信
1.创建生产者TopicProducerpackage com.rabbit.fisher.topic;import com.rabbitmq.client.BuiltinExchangeType;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq....原创 2020-05-04 16:12:34 · 254 阅读 · 0 评论 -
RabbitMQ 2:原生Java客户端+Fanout交换器+消息通信
1.创建生产者FanoutProducerpackage com.rabbit.fisher.fanout;import com.rabbitmq.client.BuiltinExchangeType;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitm...原创 2020-05-03 23:10:21 · 197 阅读 · 0 评论 -
RabbitMQ 1:原生Java客户端+Direct交换器+消息通信
1.maven工程引入amqp-client-5.0.0.jar<dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.0.0</version></depende...原创 2020-05-02 22:33:05 · 438 阅读 · 0 评论 -
centos7+RabbitMQ下载安装+创建虚拟主机与用户
1.使用root用户登录linux2.获取erlang安装包wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm3.使用rpm -Uvh erlang-solutions-1.0-1.noarch.rpm安装,提示需要安装epel-release4.使用yum install epe...原创 2020-05-02 13:34:12 · 732 阅读 · 0 评论