SpringBoot整合RabbitMQ


 

springboot整合rabbitmq

eg. order-server作为消息生产者将Order对象推送到rabbitmq上,msg-server监听rabbitmq的order队列,向用户推送订单信息。
 

控制台

添加一个新的exchange
在这里插入图片描述
 

添加一个新的queue
在这里插入图片描述
 

将exchange、queue绑定,可以在exchange中绑定,也可以在queue中绑定,此处以exchange中绑定为例
在这里插入图片描述
routing key:

  • 可以写具体的路由规则,eg. order.abcd
  • 可以用通配符*,eg. order.* ,*中不能含有.,可以是order.xxx
  • 可以使用多级通配符#,eg. order.#,#中可以含有. 可以是order.xxx.xxx.xxx

 

依赖

创建消息生产者、消息消费者时都要勾选 Messaging -> Spring for RabbitMQ,也可以手动添加

<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>

 

生产者 order-server

yml

此处keyi使用默认的虚拟主机,也可以给订单模块新建虚拟主机/order

 

消费者

第一个是并发数(初始化数量),此消费者服务启动时rabbitmq server会创建5个channel来与此消费者通信。一个channel代表一个消费(者)。
第二个是最大并发数(channel最大数量)
第三个是签收(确认)模式,手动签收manual、自动签收auto,一般都是处理完消息手动签收。
第四个用于限流,每次只接收多少条消息,即x条x条地处理

rabitimq支持事务,但不建议使用事务,因为严重影响性能。

有些消息对即时性要求很高,过了一些时间,如果这条消息还积压在queue中,这条消息可能就没有使用价值了,没必要再投递,需要删除这条消息。可以设置消息的有效期,如果指定的时间内没有投递此消息,queue会自动删除此消息,不再投递。

 

实体类
与生产者保持一致

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值