springboot 整合使用 rabbitmq

配置

依赖

创建 rabbitmq 项目时,选择这个依赖

springboot 整合使用 rabbitmq

或者使用maven

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.amqp</groupId>
            <artifactId>spring-rabbit-test</artifactId>
            <scope>test</scope>
        </dependency>

springboot 配置

spring:
  rabbitmq:
    host: ip
    username: 用户名
    password: 密码

rabbitmq 添加可远程访问的账户

创建新用户

把新用户设置为 administrator

给新用户所有权限


rabbitmqctl add_user 用户名 密码    

rabbitmqctl set_user_tags 用户名 administrator

rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*"

防火墙开启 5672 端口(非云服务器忽略)

发送和接受消息

发送

object 参数为要发送的消息,如果是 javabean 的话需要实现 Serializable 接口,或者使用 json(下面会说)

如果不需要路由键(例如广播),routingKey 参数为 "" 即可

rabbitTemplate.convertAndSend(exchange, routingKey, object);

springboot 整合使用 rabbitmq

接受

就像 queue 数据结构一样,接受数据同时也会弹出数据

该方法返回存储信息的 Message 对象,参数是 queue 名

springboot 整合使用 rabbitmq

信息自动转换为 json

rabbitmq 默认发送序列化后的信息,可以配置自动转换为 json 格式。这样发送和接受的信息看起来会非常直观,JavaBean 也不用再实现序列化接口了。

我们添加配置类即可,注意包名

springboot 整合使用 rabbitmq

效果图

发送:

springboot 整合使用 rabbitmq

接受:

springboot 整合使用 rabbitmq

监听消息

springboot 可以使用注解实现监听消息,每当监听到 queue 中添加了消息时,都会执行备注接的方法取出消息。

在 boot 主程序中打开 Rabbitmq 注解

springboot 整合使用 rabbitmq

编写监听方法

这里演示两种方式,一种直接接收为 JavaBean,一种接收为 Message 对象

springboot 整合使用 rabbitmq

AmqpAdmin 管理组件的使用

创建 exchange

示例:创建 direct 类型的 exchange。其他类型的改下对象前缀即可

springboot 整合使用 rabbitmq


创建 queue

springboot 整合使用 rabbitmq


绑定 binding

springboot 整合使用 rabbitmq

效果图:

springboot 整合使用 rabbitmq
上一篇:TCP三次握手和四次挥手


下一篇:TCP协议概述