MQ消息队列是什么

不区分不同种类的MQ,MQ就是一台服务器。会将生产者Server产生的消息,用一种数据结构,例如树、哈希表。消息队列来进行存储消息。然后消费者Server从消息队列中获取消息。
这里以RocketMQ为例,毕竟是阿里双十一在用的MQ

在这里插入图片描述

1.如何连接MQ Server?

既然MQ是一台服务器,那想要获取到这台Server中消息,肯定要进行通信,这里说一下个人理解。通过ip+tcp协议进行连接,使用RemotingCommand(相当于http一种应用层的协议规则)进行网络通信

2.如果存储不同的消息,例如:支付状态消息、用户修改信息是否成功消息。如何区分呢?

在每次生成一个消息时,都会有一个唯一对应的topic来标识。消费者会根据需要,获取适合自己的topic来消费。

3.不同MQ存在什么区别?

1.持久化地方不同:mq会有消息丢失的问题,所有会有不同的存储方式。
当前业界几款主流的MQ消息队列采用的存储方式主要有以下三种方式:
1)分布式KV存储:比如redis
2)文件系统:比如RocketMQ、Kafka、RabbitMQ
3)关系型数据库DB:比如ActiveMQ、mysql
从存储效率来说, 文件系统 > 分布式KV存储 > 关系型数据库DB

2.功能不同:例如:kafka不支持事务消息,支持消息顺序,不支持定时消息。这些可自行查询相关资料。

4.RockerMQ的好处

1. 解耦、异步、削峰。就不说了。这些是所有mq最重要,也都存在的功能
2. 事务消息
例如:订单系统 订单创建成功后 发送消息–>购物车系统 收到订单创建成功的消息–>操作删除支付过的商品项。
如果这个消息如果是事物消息。mq中的消息会回调,只有获取到了订单操作成功的标识,购物车系统才会获取到消息。成功之前会不断进行消息补偿操作。之前购物车系统是获取不到消息的。
3. 消息顺序
例如:一些游戏平台需要保证优先注册的五百名可以收到5000元奖励,那么要保证消息处理时的五百名一定是实际的顺序.才能做到公平公正.

总结:
1.mq解决数据了过多的相关业务。
2.mq解决实时监控数据的相关业务。
3.mq也是服务调用的一种方式(事件驱动

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值