消息中间件的简介和使用(AMQP)

MQ (message queue)

mq消息队列就是基础队列的中间件

MQ在消息中间件的应用

在一些需要异步调用的服务,和一些不需要遵守强一致性的服务,可以先将服务存入消息队列中,再异步的调用执行

分类

JMS : 适用于java代码的工程 可以传输多种类型的数据
AMQP : 可以适用任何 数据只能是byte[]类型

RabbitMQ(AMQP)

在这里插入图片描述

Route _key

Exchange会根据Route_可以 进行模式匹配

Exchange

exchange 有5种模式 : Direct , Fanout , Topic , Header
Direct : 只会匹配和route_key名字相同的消息队列 (点对点模式)
Fanout : 会发送给所有消息队列 (广播模式)
Toic : 会根据key 和消息队列名称关键字进行模糊匹配
Header : 根据头 效率很低

进行测试

在这里插入图片描述
创建三种交换机 (head不测试) 创建两个消息队列 全部互相绑定
在fanout交换机中发送消息message
在这里插入图片描述所有消息队列都收到了消息
在这里插入图片描述

创建springboot工程 导入rabbitmq依赖

代码中进行测试direct
绑定路由键
在这里插入图片描述
使用springboot01键 使用rabbitTemplate发送消息
在这里插入图片描述

在这里插入图片描述在这里插入图片描述

可以看到springboot01队列收到消息message
使用rabbitTemplate接受消息
在这里插入图片描述可以看到打印出刚刚发送的消息
在这里插入图片描述取到数据后队列会将消息出队
在这里插入图片描述刚才使用converterAndSend方法默认使用java序列化进行传输 若希望使用json进行传输可以更改默认调用的converter
新建一个类 定义一个bean 使用Jackson2JsonMessageConverter

在这里插入图片描述在rabbitmq的自动配置中会自动导入这个bean 不需要额外配置
这次发送一个map数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到消息是json格式 接受的数据也可以反序列化

使用注解监听消息

创建一个service用来监听消息 打开rabbit注解支持

在这里插入图片描述在这里插入图片描述
启动 用测试代码发送消息 可以接受到消息
在这里插入图片描述
传入message可以获得整个message的信息 这次监听springboot02的消息
在这里插入图片描述收到信息
在这里插入图片描述

使用amqpAdmin代码创建交换机和消息队列

在测试类中注入amqpadmin
在这里插入图片描述在这里插入图片描述
运行后再浏览器端口看到绑定成功在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值