消息队列MQ

简介: 消息队列MQ

MQ消息队列

MQ面试目标

什么是MQ、为什么用MQ
结合实际项目讲自己用过的案例
rabbitmq/rocketmq/activemq/kafka什么区别,分别适用什么场景,怎么结合自己的业务去技术选型

MQ学习笔记

image.png

ActiveMQ在成熟度比较优秀,但是它的性能方面比较欠缺,所以在吞吐量不太高的中小型企业比较受欢欢迎;

Kafka追求高吞吐量,一般应用在大数据,一开始目的用于日志收集和传输,它不支持事务、不追求消息传递的可靠性,所以根据业务需求自行判断是否合适;

RocketMQ纯java开发,起源kafka,并不是复制kafka,基于kafka的缺点方面做了优化,比如可靠性方面,阿里对它的开源版本不支持事务,只有付费云产品才支持事务,它在阿里众多业务场景下经过不断的优化得到了逐步的完善;

RabbitMQ是Erlang语言开发的开源消息队列,基于AMQP协议实现,AMQP协议的特点的可靠性、安全性比较好,基于它的性能和可靠性以及开源社区活跃的结合考量,得到了众多企业的青睐。

AMQP和JMS的本质差别:JMS是基于API层面的限定,而AMQP是定义网络交换的数据格式

image.png

image.png

虚拟主机的作用:类似数据库中的库概念,同一个rabbitmq服务端下可以创建多个虚拟主机,便于供不同场景或不同项目共用同一服务端

提供rabbitmq的连接信息中包括了连接的用户账号和密码,而在服务端可以通过命令方式或者web管理界面中对用户的权限和虚拟主机进行管理,这样就便于程序知道连接至rabbitmq后从哪个虚拟主机中生产和消费消息

据了解可以省略交换机的模式,直接将消息放置于队列queue中

创建消费者demo代码示例(添加AMQP客户端依赖、服务端的虚拟主机/用户的创建/用户权限的设置、代码连接服务端、发布消息):

https://www.bilibili.com/video/BV1dE411K7MG?p=5&spm_id_from=pageDriver

官方示例的几种消费模型

https://www.rabbitmq.com/getstarted.html

image.png

image.png

  • work queues:没有交换机
  • 订阅模式:fanout,有交换机,所有消费者无条件/无过滤的接受广播
  • routing:direct,有交换机,队列绑定路由key,在交换机中根据路由key获取指定消息
  • topic:基于direct的功能,可以使用通配符,简化过滤规则

image.png

集群

主从复制集群:不可靠,从节点只能在队列看到队列信息,无法正常使用队列信息,如果主节点宕机,整个系统不可用

镜像集群:实际上就是rabbitmq提供的策略模式,基于主从设置策略后达到自动/手动同步,实现高可用

学习MQ疑问

怎么改端口?(默认服务端口5672/默认web管理界面端口15672/集群的端口25672)

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
3月前
|
消息中间件 JSON Java
开发者如何使用轻量消息队列MNS
【10月更文挑战第19天】开发者如何使用轻量消息队列MNS
122 6
|
3月前
|
消息中间件 安全 Java
云消息队列RabbitMQ实践解决方案评测
一文带你详细了解云消息队列RabbitMQ实践的解决方案优与劣
99 8
|
2月前
|
消息中间件 存储 Kafka
MQ 消息队列核心原理,12 条最全面总结!
本文总结了消息队列的12个核心原理,涵盖消息顺序性、ACK机制、持久化及高可用性等内容。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
|
3月前
|
消息中间件
解决方案 | 云消息队列RabbitMQ实践获奖名单公布!
云消息队列RabbitMQ实践获奖名单公布!
|
3月前
|
消息中间件 存储 弹性计算
云消息队列RabbitMQ实践
云消息队列RabbitMQ实践
|
3月前
|
消息中间件 存储 监控
解决方案 | 云消息队列RabbitMQ实践
在实际业务中,网站因消息堆积和高流量脉冲导致系统故障。为解决这些问题,云消息队列 RabbitMQ 版提供高性能的消息处理和海量消息堆积能力,确保系统在流量高峰时仍能稳定运行。迁移前需进行技术能力和成本效益评估,包括功能、性能、限制值及费用等方面。迁移步骤包括元数据迁移、创建用户、网络打通和数据迁移。
78 4
|
4月前
|
消息中间件 运维 监控
云消息队列RabbitMQ实践解决方案评测报告
本报告旨在对《云消息队列RabbitMQ实践》解决方案进行综合评测。通过对该方案的原理理解、部署体验、设计验证以及实际应用价值等方面进行全面分析,为用户提供详尽的反馈与建议。
96 16
|
4月前
|
消息中间件 弹性计算 运维
阿里云云消息队列RabbitMQ实践解决方案评测报告
阿里云云消息队列RabbitMQ实践解决方案评测报告
83 9
|
4月前
|
消息中间件 监控 数据处理
解决方案 | 云消息队列RabbitMQ实践
解决方案 | 云消息队列RabbitMQ实践
56 1
|
4月前
|
消息中间件 弹性计算 运维
云消息队列RabbitMQ实践
本评测报告详细分析了阿里云云消息队列 RabbitMQ 版的实践原理、部署体验及核心优势。报告认为其在解决消息积压、脑裂难题及弹性伸缩方面表现优秀,但建议进一步细化架构优化策略和技术细节描述。部署文档详尽,对初学者友好,但仍需加强网络配置和版本兼容性说明。实际部署展示了其高可用性和成本优化能力,适用于高并发消息处理和分布式系统数据同步。为进一步提升方案,建议增加安全性配置指导、性能调优建议及监控告警系统设置。

相关产品

  • 云消息队列 MQ