# SpringBootRocketMQ **Repository Path**: soap9299/SpringBootRocketMQ ## Basic Information - **Project Name**: SpringBootRocketMQ - **Description**: SpringBoot整合RocketMQ - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-03-10 - **Last Updated**: 2021-03-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SpringBootRocketMQ SpringBoot整合RocketMQ ---- #### 只需要搭建RocketMQ的服务器即可 在consumer项目中的doc中有提供,按照手册启动即可 ---- ### 生产者 * 发送同步消息:这种可靠性同步地发送方式使用的比较广泛,比如:重要的消息通知,短信通知。 * 发送异步消息:异步消息通常用在对响应时间敏感的业务场景,即发送端不能容忍长时间地等待Broker的响应。 * 单向发送消息:这种方式主要用在不特别关心发送结果的场景,例如日志发送。 ### 消费者 * 负载均衡模式:消费者采用负载均衡方式消费消息,多个消费者共同消费队列消息,每个消费者处理的消息不同 * 广播模式:消费者采用广播的方式消费消息,每个消费者消费的消息都是相同的 ---- ### 顺序消息 消息有序指的是可以按照消息的发送顺序来消费(FIFO)。RocketMQ可以严格的保证消息有序,可以分为分区有序或者全局有序。 顺序消费的原理解析,在默认的情况下消息发送会采取Round Robin轮询方式把消息发送到不同的queue(分区队列);而消费消息的时候从多个queue上拉取消息,这种情况发送和消费是不能保证顺序。但是如果控制发送的顺序消息只依次发送到同一个queue中,消费的时候只从这个queue上依次拉取,则就保证了顺序。当发送和消费参与的queue只有一个,则是全局有序;如果多个queue参与,则为分区有序,即相对每个queue,消息都是有序的。 下面用订单进行分区有序的示例。一个订单的顺序流程是:创建、付款、推送、完成。订单号相同的消息会被先后发送到同一个队列中,消费时,同一个OrderId获取到的肯定是同一个队列。