RocketMQ笔记

一、介绍

    RocketMQ是由阿里捐赠给Apache的一款分布式、队列模型的开源消息中间件
    特性:

    1、具有灵活的可扩展性.RocketMQ天然支持集群,其核心四大组件(NameServer,Broker,Producer,Consumer)的每一个都可以在没有单点故障的情况下进行水平扩展
    2、具有海量消息堆积能力.RocketMQ采用零拷贝原理实现了超大量消息的堆积能力,据说单机已经支持亿级消息堆积,而且在堆积了这么多消息后保持写入低延迟
    3、支持顺序消息.RocketMq可以保持消息消费者按照消息的发送顺序对消息进行消费.顺序消息分为全局有序消息和局部有序消息,一般推荐使用局部有序消息,即生产者通过将某一类消息按照顺序发送至同一队列中来实现
    4、支持多种消息过滤方式.消息过滤分为在服务器端过滤和在消费端过滤.在服务器端过滤时可以按照消息消费者的要求进行过滤,优点是减少不必要的消息传输,缺点是增加了消息服务器的负担,实现相对复杂.消费端过滤则完全由具体应用自定义实现,这种方式更加灵活,缺点是很多无用的消息会被传输给消息消费者.
    5、支持事务消息.RocketMQ除支持普通消息,顺序消息外,还支持事务消息,这个特性对于分布式事务来说提供了另一种解决思路
    6、支持回溯消费.回溯消费指的是消费者已经消费成功的消息,由于业务需求需要重新消费.RocketMQ支持按照时间回溯消费,时间维度精确到毫秒,可以向前回溯,也可以向后回溯.

二、应用场景

削峰填谷:
    秒杀、抢红包、企业开门红等大型活动时皆会带来较高的流量脉冲,或因没做相应的保护而导致系统超负荷甚至崩溃,或因限制太过导致请求大量失败而影响用户体验,削峰填谷是解决该问题的最佳方式;
    超高流量脉冲处理能力
    MQ 超高性能的消息处理能力可以承接流量脉冲而不被击垮,在确保系统可用性同时,因快速有效的请求响应而提升用户的体验;

分布式事务消息

三、消息中间件对比

在这里插入图片描述

四、应用

java中应用

1、导入依赖
       <dependency>
            <groupId>org.apache.rocketmq</groupId>
            <artifactId>rocketmq-client</artifactId>
            <version>4.6.1</version>
        </dependency>

2、创建生产者
创建同步消息生产者

public class MQTest {
   
    public static void main(String[] args) throws Exception{
   
        //发送消息步骤
        //1、创建消息生产者producer(DefaultMQProducer),并指定生产者group
        DefaultMQProducer producer = new DefaultMQProducer("test-group");
        //2、指定Nameserver地址
        producer.setNamesrvAddr("127.0.0.1:9876");
        //3、启动producer
        producer.start();
        //4、创建Message对象,指定主体topic、消息体
        Message message = new Message("test-topic","test0tag","你好,MQ".getBytes());
        //5、发送消息【同步消息:阻塞线程】
        SendResult send = producer.send(message);
        System.out.println(send);
        //6、关闭生产者producer
        producer.shutdown();
    }
}

创建异步消息生产者

public class MQTest2 {
   
    public static 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,我可以为您提供有关RocketMQ的一些笔记。这是一个开源的分布式消息中间件系统,由阿里巴巴集团开发和维护。RocketMQ具有高可用性、高吞吐量和可伸缩性,适用于构建实时数据处理、大规模消息系统和事件驱动架构等场景。 下面是一些关键点和要点: 1. 架构:RocketMQ采用了主题(Topic)和队列(Queue)的概念。主题是消息的逻辑分类,队列则是主题的物理分区。每个队列都有自己的消费者组来处理消息。 2. 消息模型:RocketMQ支持两种消息模型:发布/订阅模型和点对点模型。在发布/订阅模型中,消息发送到主题,然后订阅者从主题订阅消息。在点对点模型中,消息发送到队列,然后消费者从队列中消费消息。 3. 可靠性:RocketMQ提供了多种机制来确保消息的可靠性传输,包括同步发送、异步发送和定时发送。还支持消息顺序发送和顺序消费。 4. 高可用性:RocketMQ通过主从复制和Broker集群来实现高可用性。每个主题的队列都可以在多个Broker之间进行复制,以实现数据冗余和容错。 5. 扩展性:RocketMQ可以通过添加更多的Broker节点来扩展系统容量和吞吐量。还支持动态扩展和缩减Broker集群。 6. 消息过滤:RocketMQ支持基于Tag或SQL表达式的消息过滤,以便订阅者只接收感兴趣的消息。 这只是RocketMQ的一些基本信息,还有很多其他特性和概念,如事务消息、消息轨迹、延迟消息等。如果您对RocketMQ有进一步的疑问,请随时提问!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值