rabbitmq
文章平均质量分 55
rabbitmq学习
我们很给力
这个作者很懒,什么都没留下…
展开
-
SpringBoot整合RabbitMQ
添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency>添加application配置spring.rabbitmq.port=5672spring.原创 2021-08-04 11:10:13 · 244 阅读 · 1 评论 -
RbbitMQ之RPC实现(八)
RPC是Remote Procedure Call的简称,即远程过程调用。它是一种通过网络从远程计算机上请求服务(接口调用)。使用RabbitMQ如何实现RPC远程调用呢,服务器消费者订阅一个队列,客户端消费者订阅一个队列,客户端发起请求将消息、请求标识、回调队列发送给服务器订阅的队列,服务器收到消息处理数据将处理结果和客户端的请求标识发送给回调队列。RPC服务端 ConnectionFactory factory = new ConnectionFactory();...原创 2021-07-30 16:42:06 · 303 阅读 · 0 评论 -
RabbitMQ优先级队列(七)
优先级队列,顾名思义就是说该队列中的消息有优先级,优先级越高的消息越先被消费。如果当前队列中只有一条消息,那么优先级就没有存在的意义,即消费速度大于生产速度的时候优先级队列就没有存在的价值。 可以通过设置队列的x-max-priority来设置队列的最大优先级(0-255,超过255之后声明队列会报错),然后发送消息的时候通过priority设置消息的优先级,最小优先级为0,最大优先级不能超过队列的最大优先级,否则不生效。 Map<String, ...原创 2021-07-29 17:14:26 · 327 阅读 · 0 评论 -
RabbitMQ死信队列和延迟队列(六)
DLX全称dead-letter-exchange,可以称之为死信交换器。当消息在一个队列中变成死信之后,它能被重新发送到另一个交换器中,这个交换器就是DLX,绑定DLX的队列就称之为死信队列。 消息变成死信一般是由一下集中情况: 1.消息被拒绝之后,并设置requeue为false。 2.消息过期。 3.队列达到最大长度。 DLX也是一个普通交换器,它能在任何队列上被指定,实际就是设置某个队列的属性。...原创 2021-07-29 16:13:50 · 120 阅读 · 0 评论 -
RabbitMQ设置消息和队列过期时间(五)
设置消息过期时间 RabbitMQ设置消息的过期时间有两种方式:在队列设置所有消息的过期时间;发送消息的时候设置单个消息的过期时间,每条消息的TTL可以不同。如果两种方式同时使用则以最小时间为准。通过队列设置TTL 通过队列设置消息TTL的方法时在channel.queueDeclare的时候添加x-message-ttl参数实现,单位毫秒。 Map<String,Object> map = new HashMap<...原创 2021-07-29 14:59:38 · 3273 阅读 · 0 评论 -
RabbitMQ备份交换器(四)
备份交换器,英文名称Alternate Exchange,简称AE,或者更直白的称之为“备胎交换器”。生产者发送消息的时候如果不设置mandatory参数,那么消息在路由失败的时候会被直接丢弃。如果设置了mandatory参数,就需要添加retrurnListener业务逻辑,增加生产者的代码负责度。如果既不想复杂生产代码,又不想消息丢失,那么可以使用备份交换器,可以将路由失败的消息存储在备份交换器队列里面,在需要的时候再去处理。 实例代码: // 声明...原创 2021-07-29 10:23:53 · 165 阅读 · 0 评论 -
RabbitMQ消息发送与消费(三)
发送消息 调用Channel的basicPublish方法来发送消息,basicPublish有多个构造方法,其他构造方法都是由下面构造方法缺省某些参数构成。void basicPublish(String exchange, String routingKey, boolean mandatory, boolean immediate, BasicProperties props, byte[] body) throws IOException; ...原创 2021-07-29 09:53:13 · 862 阅读 · 0 评论 -
RabbitMQ交换器和队列声明以及绑定详解(二)
连接RabbitMQ ConnectionFactory factory = new ConnectionFactory(); factory.setHost("localhost"); factory.setPort(AMQP.PROTOCOL.PORT); factory.setUsername("guest"); factory.setPassword("guest"); Connection conn原创 2021-07-27 17:00:51 · 1406 阅读 · 0 评论 -
RabbitMQ相关概念介绍(一)
RabbitMQ整体上是一个生产者与消费者模型,主要负责接收、存储和转发消息。生产者和消费者Producere:生产者,就是消息投递的一方。生产者创建消息之后发布到RabbitMQ中。消息一般包含2个部分:消息体和标签。消息体一般是一个带有业务逻辑结构的数据,比如一个JSON字符串。消息的标签用来表述这条消息,比如一个交换机的名称和一个一个路由键。Consumer:消费者,就是接收消息的一方。 消费者连接到RabbitMQ...原创 2021-07-27 14:34:29 · 170 阅读 · 0 评论