JAVA中的基础----什么是消息队列MQ,如何使用RabbitMQ来实现AMQP异步调用

本文介绍了消息队列MQ的基本概念及其在业务解耦、异步处理、流量削峰等方面的优势和不足。通过Spring Boot结合RabbitMQ,详细讲解了如何设置RabbitMQ服务,以及开发服务端和客户端,实现AMQP异步调用的过程。
摘要由CSDN通过智能技术生成

本文开始进入正文前,我们需要先弄清楚一些基础知识,须知而后用。

1.消息队列(MQ)是啥?

 1)消息队列是一种跨进程的通信机制,具有单向传递、单向依赖和异步处理的特性,主要解决多个系统间的消息异步、业务解耦、流量削峰等问题。

 2)消息队列从字面上意思是Message+Queue。Message是信息载体,特征是携带的消息通常具有“可消费”性质;Queue是一个单向通道,特征是先进先出。

 举个“快递服务”的例子,理解一下消息队列的概念:

图1:快递服务(理解“消息队列”)

快递服务就是一种消息队列MQ,卖家是生产者,买家是消费者,快递包裹是Message,运输线路是Queue。

快递服务(消息队列)的好处:

1)异步处理。生产者制造的商品,快递不需要实时被签收,消费者可以空闲的时候再取件。

2)业务解耦。生产者只关心自己完成订单,不关心卖给了谁;消费者只关心拿到商品,不关系是谁生产的。

3)流量削峰。当促销季,消费者购买的商品太多,快递服务可以提供的仓储功能,可以起到缓冲效果。

快递服务(消息队列)的不足:

1)可用性降低。快递服务一旦瘫痪,商品消费业务就无法进行。

2)业务复杂化增加。商品消费业务,原本是生产者与消费者两者之间的关系,现在有增加了第三方快递服务公司,完成一个商品消费业务复杂化增加。

3)可能一致性问题。生产者通过快递服务发完货就完成了自身的业务,默认商品消费已经成功,但如果消费者对部分商品不满意,拒绝签收所有物品,那么实际上商品消费失败,生产者和消费者双方的数据就会不一致。

     

2.使用MQ实现异步调用

下文结合Spring Boot,使用Rab

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值