![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
rabbitmq
zxqjava
这个作者很懒,什么都没留下…
展开
-
rabbitmq散装知识
概念 rabbitmq是消息中间件,是基于erlang语言创建的,改语言本身就支持并发 采用AMQP高级消息队列协议,最大的特点就是消费不需要确保提供方存在,实现了服务间的高度解耦 如何确保数据不丢失 数据丢失可能发生在三个地方 - 发送时数据丢失,可能是由于网络等原因 解决方法: 1. 同步。采用事务管理,开启事务,在消息发送的时候,如果mq没有接收到消息则抛出异常,本地捕获异常并重试 channel.txSelect 开启事务 channel.txCommit 提交事务 cha原创 2021-11-27 15:11:37 · 308 阅读 · 0 评论 -
springboot整合rabbitmq---2
在工作模式中,默认是平均分配,轮询需要增加配置 工作模式与一般模式代码相同,不再编写 广播模式:fanout类型,需要绑定交换机 // 生产者 @Test public void testFanout() { rabbitTemplate.convertAndSend("logs","","hello word"); } // 消费者 // 监听队列 @RabbitListener(bindings = {// 绑定 // 对列绑定原创 2021-11-07 17:39:51 · 73 阅读 · 0 评论 -
springboot整合rabbitmq---1
pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org原创 2021-11-07 16:51:11 · 372 阅读 · 0 评论 -
Rabbitmq 主题模型
topic模型 动态订阅模型,可以使用通配符进行绑定 这种模型的RoutingKey一般是由一个或多个单词组成,多个单词之间用"."分割,例如 item.insert 通配符: - * 匹配不多不少恰好一个词 - # 匹配一个或多个词(采用hash策略) 生产者 package com.huixiang.rabbitmq.topics; import com.huixiang.utils.RabbitmqUtils; import com.rabbitmq.client.Channel; import原创 2021-11-07 16:12:52 · 1163 阅读 · 0 评论 -
Rabbitmq 路由模型
routing——订阅模型-direct(直连) 在广播模式中,一条消息,会被所有的消费者消费,但在某些场景下,我们希望不同的消息发送道不同的对列,这时就需要Direct类型的Exchang 模型如下: - 对列与交换机的绑定,不能是任意绑定了,而是要绑定一个RoutingKey(路由Key) - 消息发送方在向交换机发送消息时,必须指定消息的RoutingKey - 交换机不在把消息发送给没一个绑定的对列,而是根据消息的RoutingKey进行判断,只有对列的RoutingKey与消息的RoutingKe原创 2021-11-07 15:47:51 · 832 阅读 · 0 评论 -
Rabbitmq广播模型
发送流程 可以有多个消费者 每个消费者有自己的对列 每个对列都要绑定到Excheang交换机 生产者只能把消息发送到交换机,交换机决定把消息广播到那些对列,生产者无法决定 对列的消费者都能拿到消息,实现一条消息被多个消费者消费 生产者 package com.huixiang.rabbitmq.fanout; import com.huixiang.utils.RabbitmqUtils; import com.rabbitmq.client.Channel; import com.rabbitmq.c原创 2021-11-07 15:15:46 · 859 阅读 · 0 评论 -
RabbitMq工作模式
工作模式,默认平均分配,代码与直连一样 之所以默认平均分配,与消息确认机制有关。如果自动确认设置为true,当某一消费者接收到消息是,会直接给对列确认,对列就会删除数据,若消费者消费到一半宕机了,消息就丢失了。 能者多劳---轮询 轮询方法 package com.huixiang.rabbitmq.work.lunxun; import com.huixiang.utils.RabbitmqUtils; import com.rabbitmq.client.*; import java.io.IO原创 2021-11-07 14:54:47 · 235 阅读 · 0 评论 -
rabbitmq 直连模式
生产者:直连模式 package com.huixiang.rabbitmq.simple; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; import java.io.IOException; import java.util.concurrent.TimeoutException; public clas原创 2021-11-06 16:03:18 · 321 阅读 · 0 评论