消息队列学习之rocketmq

简介: 【4月更文挑战第1天】消息队列学习之rocketmq
  1. 消息队列使用场景:
  • 异步解耦
    异步解耦是消息队列RocketMQ的主要特点,主要目的是减少请求响应时间和解耦。将比较耗时而且不需要即时(同步)返回结果的操作作为消息放入消息队列。使用消息队列RocketMQ,只要保证消息格式不变,消息的发送方和接收方并不需要彼此联系,也不需要受对方的影响,即实现解耦。
  • 削峰填谷
    在秒杀或团队抢购活动中,由于用户请求量较大,导致流量暴增,秒杀的应用在处理如此大量的访问流量后,下游的通知系统无法承载海量的调用量,甚至会导致系统崩溃等问题而发生漏通知的情况。为解决这些问题,可在应用和下游通知系统之间加入消息队列RocketMQ
  • 消息的顺序收发
    消息队列RocketMQ顺序消息为全局顺序:
    对于指定的一个Topic,所有消息将按照严格的先入先出(FIFO)的顺序,进行顺序发布和顺序消费。
  • 大规模机器的缓存同步
    在某些网页数据实时变化的场景下,缓存技术便无法满足对数据的实时访问需求,多次的查询将会对页面打开速度产生影响。
    使用消息队列RocketMQ的广播消费模式,那么这条消息会被所有节点消费一次,相当于把相关数据信息同步到需要的每台机器上,取代缓存的作用。
    image.png

  • 如上图所示,RocketMQ 主要包含以下四个组件:
    (1)Nameserver: 负责维护集群内所有 Broker 的状态信息,包括 Topic 信息、Broker 节点信息等。
    (2)Broker: 消息存储和消息传递的主要组件,负责接收生产者发送的消息并存储在磁盘上,同时也负责消费者订阅消息并将消息传递给消费者。每个 Broker 都可以存储多个 Topic的消息。
    (3)Producer: 消息的生产者,负责将消息发送到指定的 Topic。
    (4)Consumer: 消息的消费者,负责从指定的 Topic 消费消息。
  • RocketMQ 的消息传递过程大致如下:
    (1)生产者将消息发送到指定的 Topic,消息发送的过程有同步和异步的。
    (2)Broker 接收到消息后,将消息存储到指定的 Topic 中,同时将消息的索引信息写入 CommitLog 文件,以确保消息不会丢失。
    (3)消费者从指定的 Topic 订阅消息,并从 Broker 拉取消息进行消费。
    (4)消费者消费消息成功后,向 Broker 发送确认消息。
    (5)Broker 收到确认消息后,更新当前Consumer的消费进度(CommitLog的offset),保证当前消息不会再次被当前Consumer消费。
相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
2天前
|
消息中间件 分布式计算 监控
Python面试:消息队列(RabbitMQ、Kafka)基础知识与应用
【4月更文挑战第18天】本文探讨了Python面试中RabbitMQ与Kafka的常见问题和易错点,包括两者的基础概念、特性对比、Python客户端使用、消息队列应用场景及消息可靠性保证。重点讲解了消息丢失与重复的避免策略,并提供了实战代码示例,帮助读者提升在分布式系统中使用消息队列的能力。
42 2
|
2天前
|
消息中间件 存储 运维
为什么选择云消息队列 RocketMQ 版
为什么选择云消息队列 RocketMQ 版
5 1
|
2天前
|
消息中间件 存储 运维
深入理解MQ消息队列的高可用与可靠性策略
深入理解MQ消息队列的高可用与可靠性策略
26 3
|
2天前
|
消息中间件 存储 监控
写了10000字:全面学习RocketMQ中间件
以上是 V 哥在授课时整理的全部 RocketMQ 的内容,在学习时重点要理解其中的含义,正所谓知其然知其所以然,希望这篇文章可以帮助兄弟们搞清楚RocketMQ的来龙去脉,必竟这是一个非常常用的分布式应用的中间件,好了,今天的内容就分享到这,我靠!已经 00:36分,建议收藏起来,慢慢消化,创作不易,喜欢请点赞转发。
|
2天前
|
消息中间件 大数据 Java
消息队列 MQ
消息队列 MQ
28 3
|
2天前
|
消息中间件 数据安全/隐私保护
MQTT微消息队列服务器连接报错:Error: Connection refused: Not authorized
使用MQTTX工具进行测试时,通过AccessKey创建了Client ID的用户名和密码。配置了公网接入点及端口1883,但尝试连接时出现错误。已附上工具截图:![](https://ucc.alicdn.com/pic/developer-ecology/3byii5uar64gg_36327474e991439da422f38c450ef153.png)。确认过用户名、密码和Client ID无误,问题仍未解决,期待回复!
|
2天前
|
消息中间件 存储 监控
解析RocketMQ:高性能分布式消息队列的原理与应用
RocketMQ是阿里开源的高性能分布式消息队列,具备低延迟、高吞吐和高可靠性,广泛应用于电商、金融等领域。其核心概念包括Topic、Producer、Consumer、Message和Name Server/Broker。RocketMQ支持异步通信、系统解耦、异步处理和流量削峰。关键特性有分布式架构、顺序消息、高可用性设计和消息事务。提供发布/订阅和点对点模型,以及消息过滤功能。通过集群模式、存储方式、发送和消费方式的选择进行性能优化。RocketMQ易于部署,可与Spring集成,并与Kafka等系统对比各有优势,拥有丰富的生态系统。
168 4
|
2天前
|
消息中间件 存储 负载均衡
消息队列学习之RabbitMQ
【4月更文挑战第3天】消息队列学习之RabbitMQ,一种基于erlang语言开发的流行的开源消息中间件。
21 0
|
2天前
|
消息中间件 网络协议 JavaScript
MQTT常见问题之微消息队列mqtt支持ipv6失败如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
2天前
|
消息中间件 物联网 Java
MQTT常见问题之微消息队列配置失败如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总: