22、Kafka和RocketMQ的消息复制实现的差异点在哪你好,我是李玥。 之前我在《[05 | 如何确保消息不会丢失?]》那节课中讲过,消息队列在收发两端,主要是依靠业务代码,配合请求确认的机制,来保证消息不会丢失的。而在服务端,一般采用持久化和复制的方式来保证不丢消息。 把消息复制到多个节点上,不仅可以...2026-03-01消息队列高手课
21、Kafka Consumer源码分析:消息消费的实现过程你好,我是李玥。 我们在上节课中提到过,用于解决消息队列一些常见问题的知识和原理,最终落地到代码上,都包含在收、发消息这两个流程中。对于消息队列的生产和消费这两个核心流程,在大部分消息队列中,它实现的主要流程都是一样的,所以,通过这两节课的学习之后,...2026-03-01消息队列高手课
20、RocketMQ Producer源码分析:消息生产的实现过程你好,我是李玥。 对于消息队列来说,它最核心的功能就是收发消息。也就是消息生产和消费这两个流程。我们在之前的课程中提到了消息队列一些常见问题,比如,“如何保证消息不会丢失?”“为什么会收到重复消息?”“消费时为什么要先执行消费业务逻辑再确认消费?”,...2026-03-01消息队列高手课
19、数据压缩:时间换空间的游戏你好,我是李玥。 这节课我们一起来聊一聊数据压缩。我在前面文章中提到过,我曾经在一台配置比较高的服务器上,对Kafka做过一个极限的性能压测,想验证一下Kafka到底有多快。我使用的种子消息大小为1KB,只要是并发数量足够多,不开启压缩时,可以打满万...2026-03-01消息队列高手课
18、如何用硬件同步原语(CAS)替代锁你好,我是李玥。上节课,我们一起学习了如何使用锁来保护共享资源,你也了解到,使用锁是有一定性能损失的,并且,如果发生了过多的锁等待,将会非常影响程序的性能。 在一些特定的情况下,我们可以使用硬件同步原语来替代锁,可以保证和锁一样的数据安全性,同时具有...2026-03-01消息队列高手课
17、如何正确使用锁保护共享数据,协调异步线程你好,我是李玥。 在前几天的加餐文章中我讲到,JMQ为了提升整个流程的处理性能,使用了一个“近乎无锁”的设计,这里面其实隐含着两个信息点。第一个是,在消息队列中,“锁”是一个必须要使用的技术。第二个是,使用锁其实会降低系统的性能。 那么,如何正确使用...2026-03-01消息队列高手课