rabbitmq
rabbitmq
小白划水
这个作者很懒,什么都没留下…
展开
-
rabbitmq-死信队列(死信交换机)(十)
消息进入死信队列的条件队列消息数量到达限制;比如给队列最大只能存储10条消息,当第11条消息进来的时候存不下了,第11条消息就被称为死信消费者拒接消费消息,basicNack/basicReject,并且不把消息重新放入原目标队列,requeue=false;原队列存在消息过期设置,消息到达超时时间未被消费;队列绑定死信交换机(重点,也就是在正常队列里设置者两个参数)给队列设置参数: x-dead-letter-exchange 和 x-dead-letter-routing-keyxml.原创 2021-11-16 21:52:30 · 468 阅读 · 0 评论 -
rabbitmq-Topics(通配符)模型(五)
Topic类型与Direct相比,都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定Routing key 的时候使用通配符!Routingkey 一般都是有一个或多个单词组成,多个单词之间以”.”分割,例如: item.insert通配符规则:#:匹配一个或多个词*:匹配不多不少恰好1个词举例:item.#:能够匹配item.insert.abc 或者 item.insertitem.*:只能匹配item.inser...原创 2021-11-14 13:41:53 · 598 阅读 · 0 评论 -
rabbitmq-Work模型(二)
简单说就是一个生产者者,多个消费者共同消费消息,比如有10个消息,就会平均分配给每一个消费者,一人5个消息。经典的生产-消费模式生产者public class Provider { public static void main(String[] args) throws IOException, TimeoutException { // 获取连接对象 Connection connection = MQConnection.getConnection(..原创 2021-11-13 23:39:46 · 603 阅读 · 0 评论 -
rabbitmq-Publish/Subscribe(fanout广播)模型(三)
可以有多个消费者每个消费者有自己的queue(队列)每个队列都要绑定到Exchange(交换机)生产者发送的消息,只能发送到交换机交换机把消息发送给绑定过的所有队列队列的消费者都能拿到消息。实现一条消息被多个消费者消费生产者public class Producer { public static void main(String[] args) throws Exception { Connection connection = ConnectionUtil.ge..原创 2021-11-14 12:29:25 · 281 阅读 · 0 评论 -
rabbitmq-消息可靠传递-消息确认机制,针对生产者方向(六)
在使用 RabbitMQ 的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ 为我们提供了两种方式用来控制消息的投递可靠性模式。confirm 确认模式return 退回模式rabbitmq 整个消息投递的路径为:producer—>rabbitmq broker—>exchange—>queue—>consumer消息从 producer 到 exchange 则会返回一个 confirmCallback 。消息从 exchange–&g原创 2021-11-14 22:17:06 · 120 阅读 · 0 评论 -
rabbitmq-基于springboot整合rabbitmq的使用(十二)
啦啦啦啦啦啦原创 2021-11-17 23:07:55 · 782 阅读 · 0 评论 -
rabbitmq-Hello World模型(一)
生产者public class Producer { public static void main(String[] args) throws Exception { //创建连接工厂 ConnectionFactory connectionFactory = new ConnectionFactory(); //主机地址 connectionFactory.setHost("192.168.137.118");原创 2021-11-13 21:13:52 · 501 阅读 · 0 评论 -
rabbitmq-给消息设置过期时间(九)
方式一:通过给队列配置属性设置消息的过期时间 <!--TTL 队列--> <rabbit:queue name="test_queue_ttl" id="test_queue_ttl"> <!--设置queue的参数--> <rabbit:queue-arguments> <!-- 设置x-message-ttl队列的过期时间原创 2021-11-16 20:48:43 · 3075 阅读 · 1 评论 -
rabbitmq-消息可靠传递-消息确认机制,手动确认,针对消费者方向(七)
基于spring整合的rabbitmq <!--定义监听器容器,监听的是test_queue_confirm这个队列 acknowledge="manual":手动签收 --> <rabbit:listener-container connection-factory="connectionFactory" acknowledge="manual"> <rabbit:listener ref="ackListener" queue原创 2021-11-15 21:42:49 · 826 阅读 · 0 评论 -
rabbitmq-延迟队列(十一)
使用场景:比如淘宝下单未支付,过几个小时,就会给你自动取消订单新用户注册成功30分钟后,发送短信问候具体实现操作:在RabbitMQ中并未提供延迟队列功能。但是可以使用:TTL+死信队列 组合实现延迟队列的效果。说白了延迟队列和死信队列没什么区别,就是给正常队列设置消息过期时间,消息到期后,将消息存到死信队列,消费者监听的是死信队列而不再监听正常队列,然后对死信队列里的消息进行具体的业务操作,判断订单是否支付成功,如果成功则不做任何操作,如果没有支付,就取消订单,具体代码就不写了,和死信原创 2021-11-17 21:00:35 · 479 阅读 · 0 评论 -
rabbitmq-Routing(Direct直连)模型(四)
public class Producer { public static void main(String[] args) throws Exception { Connection connection = ConnectionUtil.getConnection(); Channel channel = connection.createChannel(); String exchangeName = "test_direct"; //.原创 2021-11-14 12:44:16 · 604 阅读 · 0 评论 -
rabbitmq-消费端限流,防止消费者垮掉(八)
spring整合mq配置xml<!--prefetch = 1,表示消费端每次从mq拉去一条消息来消费,直到确认消费完毕后,才会继续拉取下一条消息,用此属性来实现限流的效果--><rabbit:listener-container connection-factory="connectionFactory" acknowledge="manual" prefetch="1"> <rabbit:listener ref="ackListener" queue-原创 2021-11-15 22:21:37 · 865 阅读 · 0 评论