![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RocketMQ
RocketMQ实战
四月丶丶
越努力越幸运
展开
-
RocketMQ秒杀设计
1. 需求基于RocketMQ设计秒杀。要求如下秒杀商品,数量100个。秒杀商品不能超卖。抢购链接隐藏Nginx+Redis+RocketMQ+Tomcat+MySQL流程图如下:2.实现代码项目地址:https://gitee.com/rppzpy/rocketmq_homework.git3. nginx配置项目实际端口9099,nginx通过test.rpp.com跳转http配置server { listen 80; server_name原创 2020-11-17 19:16:37 · 759 阅读 · 0 评论 -
RocketMQ集群搭建及配置
1 集群搭建1.1 单Master模式这种方式风险较大,一旦Broker重启或者宕机时,会导致整个服务不可用。不建议线上环境使用,可以用于本地测试。1)启动 NameServer### 首先启动Name Server$ nohup sh mqnamesrv & ### 验证Name Server 是否启动成功$ tail -f ~/logs/rocketmqlogs/namesrv.logThe Name Server boot success...2)启动 Broker原创 2020-11-16 21:46:01 · 927 阅读 · 0 评论 -
RocketMQ 事务消息详解
1. 事务消息简介RocketMQ的事务消息,是指发送消息事件和其他事件需要同时成功或同时失败。比如银行转账, A银行的某账户要转一万元到B银行的某账户。A银行发送“B银行账户增加一万元”这个消息,要和“从A银 行账户扣除一万元”这个操作同时成功或者同时失败。RocketMQ采用两阶段提交的方式实现事务消息,TransactionMQProducer处理上面情况的流程 是,先发一个“准备从B银行账户增加一万元”的消息,发送成功后做从A银行账户扣除一万元的操作,根 据操作结果是否成功,确定之前的“准备从B原创 2020-11-16 17:03:37 · 1056 阅读 · 0 评论 -
RocketMQ 消息过滤
1. 简介RocketMQ分布式消息队列的消息过滤方式有别于其它MQ中间件,是在Consumer端订阅消息时 再做消息过滤的。RocketMQ这么做是在于其Producer端写入消息和Consumer端订阅消息采用分离存储的机制来实 现的,Consumer端订阅消息是需要通过ConsumeQueue这个消息消费的逻辑队列拿到一个索引,然 后再从CommitLog里面读取真正的消息实体内容,所以说到底也是还绕不开其存储结构。其ConsumeQueue的存储结构如下,可以看到其中有8个字节存储的Messa原创 2020-11-16 16:18:09 · 252 阅读 · 0 评论 -
RocketMQ批量消息样例
批量发送消息能显著提高传递小消息的性能。限制是这些批量消息应该有相同的topic,相同的waitStoreMsgOK,而且不能是延时消息。此外,这一批消息的总大小不应超过4MB。1 发送批量消息如果您每次只发送不超过4MB的消息,则很容易使用批处理,样例如下:String topic = "BatchTest";List<Message> messages = new ArrayList<>();messages.add(new Message(topic, "TagA",原创 2020-11-16 16:05:17 · 108 阅读 · 0 评论 -
RocketMQ延时消息样例
1 简介定时消息(延迟队列)是指消息发送到broker后,不会立即被消费,等待特定时间投递给真正的 topic。 broker有配置项messageDelayLevel,默认值为“1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h”,18个level。可以配置自定义messageDelayLevel。注意, messageDelayLevel是broker的属性,不属于某个topic。发消息时,设置delayLevel等级即可: msg.s原创 2020-11-16 15:47:55 · 280 阅读 · 0 评论 -
RocketMQ 发送顺序消息样例
消息有序指的是可以按照消息的发送顺序来消费(FIFO)。RocketMQ可以严格的保证消息有序,可以分为分区有序或者全局有序。顺序消费的原理解析,在默认的情况下消息发送会采取Round Robin轮询方式把消息发送到不同的queue(分区队列);而消费消息的时候从多个queue上拉取消息,这种情况发送和消费是不能保证顺序。但是如果控制发送的顺序消息只依次发送到同一个queue中,消费的时候只从这个queue上依次拉取,则就保证了顺序。当发送和消费参与的queue只有一个,则是全局有序;如果多个queue参原创 2020-11-16 14:50:48 · 191 阅读 · 0 评论 -
RocketMQ消息发送与消费示例
1.1 加入依赖:maven:<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.3.0</version></dependency>gradlecompile 'org.apache.rocketmq:rocketmq-c原创 2020-11-16 11:51:57 · 645 阅读 · 0 评论 -
RocketMQ-Broker配置参数
#接受客户端连接的监听端口,默认10911listenPort=10911#name server服务器地址及端口,可以是多个,分号隔开namesrvAddr=192.168.1.100:9876#当前 broker 监听的 IP,默认值 网卡的 InetAddress brokerIP1=#存在主从 broker 时,如果在 broker 主节点上配置了 brokerIP2 属性,broker 从节点会连接主节点配置的 brokerIP2 进行同步brokerIP2=跟 brokerI原创 2020-11-16 11:25:01 · 1194 阅读 · 0 评论 -
RocketMQ架构设计
架构设计1 技术架构RocketMQ架构上主要分为四部分,如上图所示:Producer:消息发布的角色,支持分布式集群方式部署。Producer通过MQ的负载均衡模块选择相应的Broker集群队列进行消息投递,投递的过程支持快速失败并且低延迟。Consumer:消息消费的角色,支持分布式集群方式部署。支持以push推,pull拉两种模式对消息进行消费。同时也支持集群方式和广播方式的消费,它提供实时消息订阅机制,可以满足大多数用户的需求。NameServer:NameServer是一转载 2020-11-11 16:40:47 · 109 阅读 · 0 评论 -
RocketMQ特性
特性(features)1 订阅与发布消息的发布是指某个生产者向某个topic发送消息;消息的订阅是指某个消费者关注了某个topic中带有某些tag的消息,进而从该topic消费数据。2 消息顺序消息有序指的是一类消息消费时,能按照发送的顺序来消费。例如:一个订单产生了三条消息分别是订单创建、订单付款、订单完成。消费时要按照这个顺序消费才能有意义,但是同时订单之间是可以并行消费的。RocketMQ可以严格的保证消息有序。顺序消息分为全局顺序消息与分区顺序消息,全局顺序是指某个Topic下的所有消转载 2020-11-11 15:52:20 · 100 阅读 · 0 评论 -
RocketMQ基本概念
基本概念1 消息模型(Message Model)RocketMQ主要由 Producer、Broker、Consumer 三部分组成,其中Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息。Broker 在实际部署过程中对应一台服务器,每个 Broker 可以存储多个Topic的消息,每个Topic的消息也可以分片存储于不同的 Broker。Message Queue 用于存储消息的物理地址,每个Topic中的消息地址存储于多个 Message Queue 中转载 2020-11-11 15:49:47 · 82 阅读 · 0 评论 -
RocketMQ 整合 SpringBoot 实战案例
1. MqProducerpublic class MqProducer { private static Logger logger = LoggerFactory.getLogger(MqProducer.class); /** * 分组名称 */ private String groupName; private DefaultMQProducer producer; public MqProducer(String groupN原创 2020-11-11 15:26:45 · 579 阅读 · 0 评论 -
RocketMQ单机环境搭建
1. 下载官网下载地址:http://rocketmq.apache.org/release_notes/#wget方式下载wget https://mirrors.bfsu.edu.cn/apache/rocketmq/4.7.1/rocketmq-all-4.7.1-bin-release.zip此处下载官网zip文件的最新版本,如下2. 上传服务并解压上传scp rocketmq-all-4.7.1-bin-release.zip root@ip:/usr/local/soft原创 2020-11-11 14:40:41 · 148 阅读 · 0 评论