rabbitmq的下载安装使用就不再叙述,直接看我们的demo工程

 我们知道 我们发送一条消息 到rabbitmq 中,首先是交换机接收到消息,然后交换机把消息发送到队列当中去,由消费者消费队列的中的消息

exchange交换机

那么消息队列中的交换机 也有好几种形式  

我们介绍几种常用的形式  

带fanout 结尾的交换机  ,当我们生产者把消息 发到交换机的话,该类型交换机会把消息 一次性发布到 所有跟他绑定的队列中去

 带direct 结尾的交换机   会带有一个key 也就是路由值  由自己设置 然后 与带有相同的key 值的队列绑定,绑定之后,交换机转发消息就只会到绑定的且key相同的队列中去

带topic结尾的交换机,可以在键 中使用通配符的形式来进行  交换机和队列的绑定

 就比如 我们交换机 a.topic  队列 b.queue 然后 绑定的通配符是 *.ab  让我们 发送消息的时候 , 我们使用绑定的key去匹配队列,我们只要是 带.ab 后缀的key的队列 都会被交换机a 发送消息

Queue队列

通过key  或者手动绑定 交换机 来接收 交换机发来的消息,通常命名以queue 结尾

api 我们不使用传统的 @bean注解的方式 来进行消息的接收发送 ,我们直接使用注解方式进行消息的发送 

直接看api

这是生产者

这是消费者

我们直接运行就可以接收到消息 

消息转换

我们看一个现象 使用map集合进行发送消息,并且不去消费

然后 进入我们的mq页面看 我们的消息会乱码

这是因为我们jdk进行消息转换的时候会发生错误,解决这种情况,我们只需要引入一个jackson的依赖,进行消息的转换就可以了

<dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-xml</artifactId>
            <version>2.9.1</version>
        </dependency>

我们在发送消息 jdk是使用字节流的形式转成消息发送给交换机,然后 接收消息的时候 字节序列化成 消息对象接收

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部