rabbitmq
重生之我是一名程序员
IN IT && WIN IT !
展开
-
rabbitmq 使用SAC队列实现顺序消息
Data//消息id//消息中顺序,1,2,3,4。原创 2024-04-19 10:23:18 · 576 阅读 · 1 评论 -
rabbitmq 多实例消费者,只允许一个实例消费者消费
一般的,在rabbitmq中,如果采用 direct 类型的exchange, 相同队列的多个消费者,消费时通过 轮询的方式,消息一次发送给A,下一条消息就发送给B, 再来一条消息就发送给 A。但是现在的场景就是即使有多个消费者实例,我只想让一个消费者消费,其他消费者作为备选,类型的队列,即在创建队列的时候,增加额外参数。创建好队列之后 ,就可以看见 队列上有一个。标签的就说明是正在消费的客户端。相关 rabbitmq 文档。发现只有一个客户端消费了消息。转载 2023-11-24 09:14:59 · 2198 阅读 · 0 评论 -
rabbitmq 手动 ack(一)
rabbitmq 手动 ackrabbitmq 手动 ack@RabbitListener(bindings = @QueueBinding( exchange = @Exchange(value = "ex.retry.manual"), value = @Queue(value = "q.retry.manual", durable = "true"), key = "manual"), ackMode = "MANUAL")public void manualRetry(原创 2021-11-30 08:42:22 · 1617 阅读 · 0 评论 -
boot-rabbitmq-死信队列(二)
boot-rabbitmq-死信队列(二)@Componentpublic class DeadConsumer { @RabbitListener(bindings = @QueueBinding( exchange = @Exchange(value = "ex.manual.dead"), value = @Queue(value = "q.manual.dead", durable = "true"), key转载 2021-11-30 08:41:39 · 87 阅读 · 0 评论 -
boot - rabbitmq 重试
boot - rabbitmq 重试有些业务场景的下,需要对消息进行重试,在 spring boot , rabbitmq 的重试并不是依赖 rabbitmq实现的,而是通过 spring-retry 工程,通过对异常进行拦截 而进行重试操作配置spring.rabbitmq.addresses=192.xx.xxspring.rabbitmq.port=5672spring.rabbitmq.username=guestspring.rabbitmq.password=guestspri转载 2021-11-30 08:40:23 · 178 阅读 · 0 评论 -
## rabbitmq 序列化反序列化
rabbitmq 序列化反序列化application.propertiesspring.rabbitmq.addresses=172.xxxxspring.rabbitmq.port=5672spring.rabbitmq.username=guestspring.rabbitmq.password=guestspring.rabbitmq.virtual-host=/消息对象@Data@AllArgsConstructor@NoArgsConstructorpublic clas转载 2021-09-28 08:53:18 · 405 阅读 · 0 评论 -
rocketmq-连接rocketmq遇到的异常
连接rocketmq遇到的异常sendDefaultImpl call timeoutorg.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call timeout at org.apache.rocketmq.client.impl.producer.DefaultM...原创 2020-01-18 18:23:25 · 4281 阅读 · 0 评论 -
rocketmq-linux下安装rocketmq
linux下安装rocketmqwindows上安装了rocketmq,但是用java怎么都发不出消息,好吧,放弃了windows平台…下载下载并解压:wget http://mirror.bit.edu.cn/apache/rocketmq/4.6.0/rocketmq-all-4.6.0-bin-release.zip设置环境vi /etc/profileexport RO...转载 2020-01-18 18:14:47 · 605 阅读 · 0 评论 -
rocketmq-window启动rocketmq
window启动rocketmq下载到官网下载最新的压缩包rocketmq-all-4.6.0-bin-release.zip并解压rocketmq启动顺序:先启动namesrv再启动broker进入rocketmq解压路径的bin目录,启动一个cmd窗口启动namesrvstart mqnamesrv.cmd如果看到这样的提示,说明成功了启动brokerstart ...原创 2020-01-18 10:28:57 · 15506 阅读 · 0 评论 -
centos7安装rabbitmq-3.7.17
centos7安装rabbitmq-3.7.17准备访问rabbitmq官网下载页面: https://www.rabbitmq.com/download.html:安装erlang找到安装erlang: https://www.rabbitmq.com/install-rpm.html#install-from-esl-repository:即:https://www.erlang...转载 2019-09-15 17:51:44 · 2603 阅读 · 1 评论 -
rabbitmq消息投递接收流程
rabbitmq消息投递接收流程摘自《rabbitmq实战指南》消息投递消息投递指的是生产发送消息的过程:生产者连接到rabbitmq broker,建立连接(Connection),开启一个信道(Channel)生产者声明一个交换器,设置交换器类型和是否持久化的属性生产者声明一个队列,设置如是否排它,是否持久化和是否自动删除属性生产者通过路由键(RoutingKey)将交换器和队...转载 2019-05-18 09:38:58 · 1805 阅读 · 0 评论 -
rabbitmq概念
rabbitmq基本概念摘自《rabbitmq实战指南》生产者和消费者Producer: 生产者,投递消息的一方Consumer: 消费者,接收消息的一方Broker: 消息中间件的服务节点队列Queue: 队列,是rabbitmq的内部对象,用于存储消息交换器、路由和绑定交换器Exchange: 交换器,生产者将消息发送到Excange,由交换器将消息路由到队列中,如...转载 2019-05-18 09:37:45 · 141 阅读 · 0 评论 -
rabbitmq消费端确认机制
rabbitmq消费端确认机制为了保证消息从队列可靠的到达消费者,rabbitmq提供了消息确认机制(message acknowledgement)。消息确认消费者在订阅队列时,可以指定autoAck参数:当autoAck等于true时,rabbitmq会自动把发送出去的消息置为确认,然后从内存(或者磁盘)中删除,而不管消费者是否真正的消费到了消息当autoAck等于false时,r...转载 2019-05-18 23:02:11 · 1983 阅读 · 0 评论 -
rabbitmq死信队列
rabbitmq死信队列DLX,全称为Dead-Letter-Exchange,可以称为死信交换器。当消息在一个队列串变成死信(dead message)之后,它能被重新发送到另一个交换器中,这个交换器就是DLX,绑定DLX的队列称为死信队列消息就死信队列原因:消息被拒绝(Basic.Reject/Basic.Nack),并且设置requeue为false;消息过期队列达到最大长度...转载 2019-05-18 23:04:47 · 256 阅读 · 0 评论 -
rabbitmq实现延迟队列
rabbitmq实现延迟队列延迟队列串存储的对象是对应的延迟消息。rabbitmq本身没有支持延迟队列的功能,通过DLX(死信队列)+TTL消息模拟延迟队列延迟消息是指消息被发送以后,并不想让消费者立刻拿到消息,而是等待特定时间后,消费者才能拿到消息并消费延迟队列场景订单系统中,如果用户下单30分钟内没有进行支付,就需要自动将这些订单设置为失效支付结果通知,为1分钟,5分钟,10分...转载 2019-05-19 10:45:20 · 894 阅读 · 0 评论 -
rabbitmq优先队列
rabbitmq优先队列优先队列:顾名思义,拥有高优先级的队列具有高的优先权,优先级高的消息具备优先被消费的权力在rabbitmq中,优先队列有两种概念:队列优先级队列中的消息优先级队列优先级可以在声明队列的时候设置x-max-priority参数来定义一个优先队列:Map<String, Object> map = new HashMap<>();...转载 2019-05-19 11:29:43 · 1663 阅读 · 0 评论 -
rabbitmq持久化
rabbitmq持久化持久化是为提高rabbitmq消息的可靠性,防止在异常情况(重启,关闭,宕机)下数据的丢失rabbitmq持久化分为三个部分: 交换器的持久化、队列的持久化和消息的持久化交换器的持久化交换器的持久化是通过声明队列时,将durable参数设置为true实现的。如果交换器不设置持久化,那么rabbitmq服务重启之后,相关的交换器元数据将会丢失,不过消息不会丢失,只是...转载 2019-05-19 12:02:25 · 15570 阅读 · 0 评论 -
rabbitmq的消息模式
rabbitmq的消息模式(message pattern)rabbitmq的消息模型是基于交换器(exchange),队列(queue)和它们之间的绑定(bingdings),有以下几种:For point-to-point communication between the publisher and the broker, you can use a default or a dire...转载 2019-05-19 16:15:54 · 1661 阅读 · 0 评论 -
rabbitmq过期时间
rabbitmq过期时间(TTL)TTL,Time-to-Live。rabbitmq支持对消息和队列设置TTL消息设置TTL消息在队列中的生存时间超过设置的TTL时,就会变成死信队列中设置消息TTL在队列中设置消息的TTL,那么队列中的所有消息都有相同的过期时间,可以通过声明队列的时候设置x-message-ttl参数Map<String, Object> map = ...转载 2019-05-19 16:16:50 · 1251 阅读 · 0 评论 -
rabbitmq生产者消息确认机制
rabbitmq生产者消息确认机制问题描述当生产者发送消息给rabbitmq服务器时,消息是否真正的到达了服务器?为了保证生产者发送的消息能够可靠的发送到服务器(即消息落地),rabbitmq提供了两种方式:通过事务实现通过发送方确认机制(publisher confirm)实现事务机制rabbitmq与事务相关的方法:channel.txSelect(): 将当前信道设置成事...转载 2019-05-19 18:25:39 · 4722 阅读 · 0 评论 -
rabbitmq消费消息的模式
rabbitmq消费消息的模式rabbitmq的消费模式分为两种: 推(Push)模式和拉(Pull)模式。推模式采用Basic.Consume进行消费,而拉模式则是调用Basic.Get模式推模式接收消息一般通过实现Consumer接口或者继承DefaultConsumer接口来实现拉模式通过channel.basicGet方法可以单条的获取消息GetResponse respons...转载 2019-05-18 23:01:26 · 2314 阅读 · 0 评论