RocketMQ
文章平均质量分 93
咖喱ABC
互相交流,相互学习
展开
-
RocketMQ(十一)生产案例:为什么基于rocketmq进行订单库数据同步时会消息乱序?+基于延迟消息机制优化大量订单的定时退款扫描问题+订单定时退款场景,分析rocketMQ的延迟消息代码实现
前言:insert into order(num) value 0;update order set num = 100,where orderId = 20;这两条sql要是执行顺序不一致会发生啥问题?下了订单迟迟不支付,堆压一堆未支付的信息在后台线程扫描?会出现什么问题?1.为什么基于rocketmq进行订单库数据同步时会消息乱序?1.1.大数据团队同步订单数据库的技术方案回顾:大数据系统直接跑复杂的大sql在订单系统的数据库上出一些数据报表,是会严重影响订单系统的性能的,所以基于cana原创 2021-04-21 16:55:32 · 540 阅读 · 0 评论 -
RocketMQ(十):rocketMQ的幂等性是什么?解决了什么问题?幂等性的两种解决方案的优势和缺点+rocketmq的死信队列?
前言:(简单聊聊)rocketMq为啥要花这么多精力去学习,可能就和现在比较火的注册中心:nacos一样,可能是一种前景或者是一种趋势罢了,现在技术迭代太快,今天学了hibernate,明天出mybatis,学了mybatis,出来plus,学完spring,出来cloud,总之学就完了,技多不压身,学不等于会,但是学可以扩充自己的思想可以知道更多的解决思路和解决方案,有了解决方案和思路,剩下的就是版本迭代,百度撑腰,各种大佬指点,最后终极版就是成型的“项目”了。瞎扯一下,不喜勿喷;1.上图先?【一原创 2021-04-21 15:30:42 · 1437 阅读 · 0 评论 -
RocketMQ(九):rocketMQ设计的全链路消息零丢失方案?+rocketmq消息中间件事务消息机制的底层实现原理?+half是什么?+half消息是如何对消费者不可见的?
前言:目前rocketmq更新已经更新了11篇博客了,预计接下来的2-3篇是暂时的更新进度了,准备更新一下springboot或者是jvm,mysql相关的专题出来,后续更新完事后,再分享一些实战性的案例出来,方便加深理解,也感谢一路看到这里的同仁;1.屁话不多说,开局一张图(mq事务机制执行流程图)2.分析从producer–>rocketmq–>consumer成功消费要打多少怪兽1.订单系统推送消息到mq的过程是否会发生数据丢失?当然可能会丢失:网络出现抖动,发送消息失败原创 2021-04-21 14:45:33 · 1656 阅读 · 0 评论 -
RocketMQ(八)深入理解一下rocketMQ是如何基于netty扩展出高性能网络通信架构的?rocketMQ基于mmap内存映射实现commitLog磁盘文件的高性能读写?
前言:本章深入理解一下rocketMQ是如何基于netty扩展出高性能网络通信架构的?rocketMQ基于mmap内存映射实现commitLog磁盘文件的高性能读写?1.MQ如何基于netty扩展出高性能网络通信架构的?首先知道三个概念:1.1:Reactor:主要用来接收写入或者是拉取请求;【线程池,默认3个线程】1.2:worker:主要用于处理ssl加密验证,编码解码,连接空闲检查,网络连接管理等等工作;【线程池,默认8个线程】;1.3:sendMessages:业务线程池完成请求的处原创 2021-04-15 14:47:30 · 680 阅读 · 0 评论 -
RocketMq(七):broker是如何将消息读取出来返回给消费机器的呢?消费者是根据什么策略从master或者是slave上拉取消息的呢?commitlog基于os cache+磁盘一起读取机制
前言:继续深入一下mq,这期主要聊一聊消费者如何获取消息,顺带附带一些上章还未讲完的知识点;1.broker是如何将消息读取出来返回给消费机器的呢?涉及两个概念:consumerqueue和commitlog,在上篇文章中,也有讲过,这两个文件,记住是两个文件就完事了,假设一个消费者机器发送拉取请求到broker了,并说:这次要拉取messagequeue0中的消息,如果之前都没拉取过消息,所以就从这个messagequeue0的第一条消息开始拉取,于是broker就会找到messagequeu原创 2021-04-14 21:03:21 · 721 阅读 · 1 评论 -
RocketMq(七):RocketMQ深入理解(producer生产者的工作原理?broker是如何持久化存储消息的?如何消息写入commitLog文件近乎内写性能的?dledger的raft协议)
前言这周更晚了一天,这周的内容可能相对于前些章来说会稍微繁琐一些,但是依然还是干货满满,相信追剧到这里的博友,都是志同道合的老友了,这章主要进阶一波,深入理解一下rocketMQ的一些原理知识,废话不多说,开干!1.首先解答前期铺垫的pull和push两种消费模式的区别之前的章节中有做过一个铺垫,这里就不多提了,简单的来讲,push和pull本质上消费模式是一样的,都是消费者机器主动发送请求到broker机器去拉取一批消息下来,那么对于这两种消费模式,应该选择哪种消费模式呢?区别在哪里的?1.原创 2021-04-14 20:37:31 · 1354 阅读 · 0 评论 -
RocketMQ消息中间件(六下):订单秒杀系统压力过大+再造订单系统专门处理秒杀+MQ中的push+pull的区别
前言吃的苦中苦,也不一定是人上人,但是想要泡洋妞,就得有点洋货,小鸡汤喝一碗,撸起袖子干;链接: rocketMQ(6上)中解决了订单系统的三个问题,那么还剩下一些问题,慢慢来一步步的解决和优化;今天可能引进的知识点比较多,所以可能一口气无法从根本直接打完,首先知道因果,部分底层,才能更加深刻的理解变成自己的解决思路,我们公司也出现过上一章节的大数据团队获取数据的问题【查看报表,引入mq也好,数据分库分表也好,都能得到解决,不影响其他系统,后期如果有时间,做个小分享,可能也会忘记(尽量),其实不关是原创 2021-04-07 16:26:41 · 949 阅读 · 1 评论 -
RocketMQ消息中间件(六上)-订单系统的问题分析解答,MySQL中的binLog日志是什么?和大数据团队数据传输有什么关系呢?
前言在rocketMQ一中,分析了很多图文说明订单系统可能会遇到的一些问题,这次继续来分析和解决这些问题,或者是换句话讲,引入了MQ对叮当系统进行了哪些质一样的改变?一个订单系统中存在的问题:1、下单核心流程环节太多,性能比较差。2、订单退款的流程可能面临退款失败的风险。3、关闭过期订单的时候,存在扫描大量订单数据的问题。4、跟第三方物流系统耦合在一起,性能存在抖动的风险。5、大数据团队要获取订单数据,存在不规范直接查询订单数据库的问题。6、做秒杀活动时候,订单数据库压力比较大。1原创 2021-04-07 15:17:07 · 578 阅读 · 4 评论 -
RocketMQ消息中间件(五下):实战部署之如何对RocketMQ进行可视化的监控和管理?压测前准备:Linux的OS内核参数调整,JVM参数调整以及MQ中间件核心参数调整
前言在进行这篇文章的同仁,建议看之前可以提前看看:RocketMQ消息中间件(五上),上一章(五上)我们部署rocketMQ的集群,也做了简单的代码测试,这章我们主要做一些参数的调优和可视化工具的一些管理;1.对RocketMQ进行可视化的监控和管理首先考虑一个问题? 这些测试性的压测也好,实际上的环境压测也好,最终的cpu使用情况,jvm的GC情况,在哪里看呢?rocketMq大优势可视化的界面管理1.1:在三台nameServer机器中,随便找一台机器,在里面执行命令拉取Rocket原创 2021-03-30 16:36:06 · 590 阅读 · 0 评论 -
RocketMQ消息中间件(五上):实战部署与Linux内核OS调优,JVM调优,MQ调优
前言别看这个标题写的夸张,实际上,跟着步骤仔细一些,稍微懂一些jvm和mq在这里相当于是外行看热闹,内行看笑话了,前面的4章一直和订单系统有关系,理论化的引出来很多东西,要用,首先要部署一个MQ,才行,循循渐进,闲话多了,开战!1.快速部署RocketMQ1.1:首先要弄一台Linux的虚拟机,这个是必备的,用net模式或者是桥接模式都可以,前提是整一台Linux虚拟机,然后安装好一个JDK,配置号JAVA_HOME,这篇文章主要以MQ为主,所以就不过多的啰嗦这个,JDK最好是安装1.8的版本;原创 2021-03-30 15:35:31 · 436 阅读 · 0 评论 -
RocketMQ消息中间件(四):如何设计一套高可用的消息中间件的部署?MQ的核心数据模型:Topic?生产者系统是如何将消息发送给broker的? 消费者是如何拉取消息的?MQ的整体架构四大特征
前言:前三篇文章我们一起分析了一个订单系统中的痛点,不知道到这里的时候,有没有志同道合的猿友已经联想到了一些对应的解决方案,带着问题学习,学以致用,才是最大的进步,目前所在的公司有没有链路能用上MQ消息中间件,为什么使用rocketMQ这个技术,不使用kafka等等其他的消息中间件技术,深思迟疑中,问题中成长,行动中才能生存!1.如何设计一套高可用的消息中间件的部署?1.1:NameServer集群化部署,保证mq整套系统的高可用性,nameServer的设计主要是采用peer-to-peer原创 2021-03-24 17:59:09 · 367 阅读 · 0 评论 -
RocketMQ消息中间件(三):rocketMQ中的broker原理?M-S数据同步方式?MQ使用的是否是读写分离机制?M/S出现宕机后有什么影响?rocketMQ4.5版本后改善了哪些东西?
前言:不断的努力,才能营造更好的未来,先来一波鸡汤灌输一下自己,以便自己的超常发挥,话不多说,鸡汤点到为止,温馨提示:如果没有事情,最晚每周二的晚上更新。1.rocketMQ中的broker原理?看到原理这两个字,基本上都眼睛冒光,头顶冒星星,其实认真点理解,多(bai)看看(du),原理也像是hello world一样简单,我们简单说一下broker原理,这里说实话,我理解的可能没有这么深入,希望能和大家在评论区交流交流!如图所示:其实这个图没有这么复杂,一看基本上就明白了,这个图都是从原创 2021-03-23 20:37:28 · 919 阅读 · 0 评论 -
RocketMQ消息中间件(二):MQ的理论支撑1亿QPS高并发和高可用机制?认识什么是同步机制?异步机制?MQ的好处?MQ的流量削峰?MQ高可用机制: broker主从架构以及多副本策略
前言:上一讲,以图文的方式,我们以一个订单系统举例,讲了很多可能或者是会遇到的问题,这讲我们主要先对MQ有个认识,通俗易懂的了解MQ的作用,为什么使用MQ,使用之后会发生什么?这里给出上一章的一个链接【https://blog.csdn.net/weixin_46950473/article/details/114849418】1.什么是同步机制呢?同步机制比较简单,打个简单的比方生活中的例子,一秒即可就懂了机制了,例如:我现在煮好了饭才能吃饭,不然就只能喝西北风,也就是我必须要完成这件事情,才原创 2021-03-17 18:09:38 · 2115 阅读 · 3 评论 -
RocketMQ消息中间件(一)【铺垫】全图剖析电商网站的订单系统:一个订单系统究竟有多少隐藏问题?一个bug千行泪
前言为了通俗易懂一些,消息中间件,个人的理解,就是一种传递消息的工具,例如qq,其实可以就将qq理解为消息中间件,这样看起来是不是就爽多了,当然,只是个人的理解,要是错了就将错就错,你使用qq发送了一条消息给王老五,那么你就是生产这条消息的人,那么qq就会得到你发送的这条消息,然后将这条消息发送给王老五,那么王老五就收到了你的消息“今天有没有学MQ?”,那么当王老五看到这个消息的时候,实际是是否就是消费了这条消息呢?【个人讨喜见解而已,不喜欢可以喷】电商网站中:一个订单系统引发的问题PS:图可能有原创 2021-03-15 20:40:00 · 646 阅读 · 6 评论