RabbitMQ
文章平均质量分 90
Java知识库
擅长JVM,Mysql,微服务架构性能调优,Spring Cloud Netfilx等常用框架源码解析Redis,等中间件技术架构设计及领域驱动设计。
展开
-
码住,Java架构师人手一份的RabbitMQ笔记
什么是消息中间件MQ全称为Message Queue,消息队列是应用程序和应用程序之间的通信方法。为什么使用MQ?在项目中,可将一些无需即时返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。RabbitMQ基于erlang开发是采用Erlang语言实现的AMQP协议的消息中间件,最初起源于金融系统,用于在分布式系原创 2023-04-27 16:22:47 · 48 阅读 · 0 评论 -
RocketMQ消息短暂而又精彩的一生
为了更好地理解本文,这里再来总结一下RokcetMQ消息一生的各个环节。消息发送生产者产生消息生产者在发送消息之前会拉取topic的路由信息根据队列选择算法,从topic众多的队列中选择一个队列跟队列所在的Broker机器建立网络连接,将消息发送到Broker上消息存储Broker接收到生产者的消息将消息存到CommitLog中在CosumeQueue中存储这条消息在CommitLog中的位置。原创 2023-01-10 16:32:20 · 424 阅读 · 0 评论 -
终于弄明白了 RocketMQ 的存储模型
Databases are specializing – the “one size fits all” approach no longer applies ------ MongoDB设计哲学RocketMQ 存储模型设计得非常精巧,笔者觉得每种设计都有其底层思考,这里总结了三点 :完美适配消息队列发布订阅模型;数据文件,消费文件,索引文件各司其职 ,同时以数据文件为核心,异步构建消费文件 + 索引文件这种模式非常容易扩展到主从复制的架构;原创 2023-01-03 11:25:15 · 314 阅读 · 0 评论 -
RabbitMQ、RocketMQ、Kafka延迟队列实现
延迟队列在实际项目中有非常多的应用场景,最常见的比如订单未支付,超时取消订单,在创建订单的时候发送一条延迟消息,达到延迟时间之后消费者收到消息,如果订单没有支付的话,那么就取消订单。那么,今天我们需要来谈的问题就是RabbitMQ、RocketMQ、Kafka中分别是怎么实现延时队列的,以及他们对应的实现原理是什么?原创 2022-12-22 09:59:20 · 1243 阅读 · 0 评论 -
Rocket MQ : 拒绝神化零拷贝
内存加持,充分发挥硬件能力文件预热,将中断响应提前到初始化阶段mlock禁止Linux交换内存madvise向操作系统提出内存空间的操作建议或者指示优秀的文件系统设计,尽最大可能保证顺序写将磁盘上的物理文件直接映射到用户态的内存地址中(这种Mmap的方式减少了传统IO将磁盘文件数据在操作系统内核地址空间的缓冲区和用户应用程序地址空间的缓冲区之间来回进行拷贝的性能开销)原创 2022-11-27 15:13:51 · 375 阅读 · 1 评论 -
品RocketMQ 源码,学习并发编程三大神器
1 CountDownLatch 实现网络同步请求CountDownLatch 是一个同步工具类,用来协调多个线程之间的同步,它能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。下图是 CountDownLatch 的核心方法:原创 2022-11-27 09:48:34 · 489 阅读 · 0 评论 -
用了8年MQ,聊聊消息队列的技术选型,哪个最香?
谈起消息队列,内心还是会有些波澜。消息队列,缓存,分库分表是高并发解决方案三剑客,而消息队列是我最喜欢,也是思考最多的技术。我想按照下面的四个阶段分享我与消息队列的故事,同时也是对我技术成长经历的回顾。初识:ActiveMQ进阶:Redis&RabbitMQ升华:MetaQ钟情:RocketMQ2011年初,我在一家互联网彩票公司做研发。我负责的是用户中心系统,提供用户注册,查询,修改等基础功能。用户注册成功之后,需要给用户发送短信。因为原来都是面向过程编程,我就把新增用户模块和发送短信模块都揉在一起了。正原创 2022-11-15 10:20:34 · 286 阅读 · 0 评论