RocketMQ
一颗向上的草莓
后台开发者,前端爱好者,个人博客:http://catchu.github.io
展开
-
RocketMQ 持久化
RocketMQ 采用文件系统的方式来存储消息,消息的主要存储文件包括 CommitLog 文件、ConsumeQueue 文件、IndexFile 文件。 CommitLog 是消息存储的物理文件,所有消息主题的消息都存储在 CommitLog 文件中,每个 Broker 上的 CommitLog 被当前机器上的所有 ConsumeQueue 共享。CommitLog 中的文件默认大小为 1G,可以动态配置; 当一个文件写满以后,会生成一个新的 CommitLog 文件。所有的 Topic 数据转载 2020-06-29 11:46:01 · 3212 阅读 · 1 评论 -
rocketmq发送事务消息
现在有一个业务场景为了保证数据一致性,可以使用事务消息。教师节学生给老师送花活动,先校验学生和老师是否是师生关系,再判断学生金币是否够,够则扣减学生金币,同时给老师增加相同的花数,对老师收到的鲜花进行全国排名,排名前十的可以获得平台赠送的实体书籍作为奖励。为了保证数据的一致性和高并发,扣减金币之后发送事务消息。核心代码如下:import com.aliyun.openservices.shade.com.alibaba.rocketmq.common.message.Message;impo原创 2020-06-27 18:42:05 · 606 阅读 · 0 评论 -
Rocketmq笔记
1.基本术语Topic:表示消息的第一级类型,比如测试环境消息、生产环境消息,一条消息必须有一个topicTag:表示消息的第二级类型,比如测试环境消息下的分类,分为货主消息、司机消息,tag非必需,一条消息可以没有tagQueue:一个topic下可以设置多个queue队列,发送消息时需要指定topic,mq 会轮询该topic下所有队列Producer :表示消息队列的生产者,消息队列的本质是publish-subscribe模式,生产者生产消息,消费者消费消息,Producer主要用于生产和转载 2020-06-14 19:22:05 · 493 阅读 · 0 评论 -
RocketMQ的原理与实践
分布式消息系统作为实现分布式系统可扩展、可伸缩性的关键组件,需要具有高吞吐量、高可用等特点。而谈到消息系统的设计,就回避不了两个问题:消息的顺序问题 消息的重复问题RocketMQ作为阿里开源的一款高性能、高吞吐量的消息中间件,它是怎样来解决这两个问题的?RocketMQ 有哪些关键特性?其实现原理是怎样的?关键特性以及其实现原理一、顺序消息消息有序指的是一类消息消费时,能按照发送的顺序来消费。例如:一个订单产生了 3 条消息,分别是订单创建、订单付款、订单完成。消费时,要按照这个原创 2020-06-14 19:08:33 · 233 阅读 · 0 评论 -
如何保证 RocketMQ 不丢失消息
最近看了@JavaGuide发布的一篇『面试官问我如何保证Kafka不丢失消息?我哭了!』,这篇文章承接这个主题,来聊聊如何保证 RocketMQ 不丢失消息。0x00. 消息的发送流程一条消息从生产到被消费,将会经历三个阶段:生产阶段,Producer 新建消息,然后通过网络将消息投递给 MQ Broker 存储阶段,消息将会存储在 Broker 端磁盘中 消息阶段, Consumer 将会从 Broker 拉取消息以上任一阶段都可能会丢失消息,我们只要找到这三个阶段丢失消息原因..原创 2020-06-14 11:30:51 · 388 阅读 · 0 评论 -
RocketMQ消息消费方式 推拉模式
RocketMQ消息消费本质上是基于的拉(pull)模式,consumer主动向消息服务器broker拉取消息。consumer被分为2类:MQPullConsumer和MQPushConsumer,其实本质都是拉模式(pull),即consumer轮询从broker拉取消息。 区别:MQPushConsumer方式,consumer把轮询过程封装了,并注册MessageListener监听器,取到消息后,唤醒MessageListener的consumeMessage()来消费,对用户而言,感觉消原创 2020-06-14 10:36:52 · 2196 阅读 · 1 评论 -
Rocketmq集群consumer消费(同组及不同组)
一机器部署1、机器组成7台机器,均为16G内存每台服务器均有4个CPU,2核2、运行环境配置3、刷盘方式每台机器master机器均采用异步刷盘方式二、同组consumer均衡消费queue1、评测目的测试同一个consumerGroup组的所有consumer均衡消费同一个topic的所有queue。2、评测指标master机器个数topic的队列数consumerGr...原创 2020-06-14 09:53:38 · 15795 阅读 · 5 评论 -
RocketMQ异常:No route info of this topic
一.RocketMQ客户端运行时异常:exception:com.alibaba.rocketmq.client.exception.MQClientException: No route info of this topic, yunlian-truck-websocket-testSee https://github.com/alibaba/RocketMQ/issues/44 for further details.at com.alibaba.rocketmq.client.impl..转载 2020-06-13 22:56:00 · 4279 阅读 · 0 评论 -
Rocketmq重复消费问题
一.背景:背景:测试环境Rocketmq的server端有2台服务器(X.X.X.55和X.X.X.49),在测试同事反馈推送有问题(重复消费)的前一天早上,发现49这台服务器上的mq进程没有了,于是手动重启了49的mq服务(也正是这次重启,误导了问题排查的方向)业务场景:业务端通过Rocketmq生产和消费消息,其中消费的消息会调用极光接口,推送至app端,正常情况下,每生产一条消息,消费者只消费一次,app端只会收到一条推送通知反馈问题:同一条消息,app端收到多条相同的推送通知猜测原因:Ro转载 2020-06-13 22:20:08 · 1582 阅读 · 0 评论 -
分布式事务之如何基于RocketMQ的事务消息特性实现分布式系统的最终一致性
导读在之前的文章中我们介绍了如何基于RocketMQ搭建生产级消息集群,以及2PC、3PC和TCC等与分布式事务相关的基本概念(没有读过的读者详见推荐阅读)。在这篇文章中我们将介绍RocketMQ的事务消息相关的内容,并通过一些实践和大家一起来探索下事务消息如何解决分布式系统中的分布式事务问题。事务消息原理事务消息特性可以看作是两阶段协议的消息实现方式,用以确保在以消息中间件解耦的分布...原创 2019-09-14 17:08:59 · 624 阅读 · 0 评论 -
如何利用rocketMQ解决分布式事务
在rocketMQ中生产者有三种角色 NormalProducer(普通)、OrderProducer(顺序)、TransactionProducer(事务)根据名字大概可以看出各个代表着什么作用,我们这里用 TransactionProducer(事务)来解决问题。先举个列子来说明下我们解决方案的设计方式吧:最经典的莫过于银行转账了,网上到处都有,时序图如下我们的解决方案与这个大...原创 2019-09-14 17:04:54 · 245 阅读 · 0 评论 -
rocketmq详解
原文链接:http://www.cnblogs.com/xiaodf/p/5075167.html参考链接:rocketmq与kafkahttp://blog.csdn.net/chunlongyu/article/category/6638499简介官方简介: RocketMQ是一款分布式、队列模型的消息中间件,具有以下特点: 能够保证严格的消息顺序 ...转载 2019-06-24 15:36:21 · 340 阅读 · 0 评论 -
RocketMQ在我司的使用
1.导入jar包:<dependency> <groupId>com.aliyun.openservices</groupId> <artifactId>ons-client</artifactId> <version>${ali.ons-client.version}</version>...原创 2019-06-19 20:23:31 · 713 阅读 · 0 评论