<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[中间件兴趣圈]]></title><description><![CDATA[主打成体系剖析java中间件，已发布RocketMQ、Kafka、Dubbo、Sentinel、Canal、ElasticJob、ElasticSearch等15个专栏。]]></description><link>https://blog.youkuaiyun.com/prestigeding</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; prestigeding]]></copyright><item><title><![CDATA[Pulsar消息发送、消费架构概述]]></title><link>https://blog.youkuaiyun.com/prestigeding/article/details/129351733</link><guid>https://blog.youkuaiyun.com/prestigeding/article/details/129351733</guid><author>prestigeding</author><pubDate>Sun, 12 Mar 2023 15:41:32 +0800</pubDate><description><![CDATA[pulsar中文文档、消息发送、消息整体架构]]></description><category></category></item><item><title><![CDATA[RocketMQ ACL架构升级的一些建议与实践]]></title><link>https://blog.youkuaiyun.com/prestigeding/article/details/128990895</link><guid>https://blog.youkuaiyun.com/prestigeding/article/details/128990895</guid><author>prestigeding</author><pubDate>Thu, 16 Feb 2023 22:53:29 +0800</pubDate><description><![CDATA[官方开源版本不支持万亿级消息流程]]></description><category></category></item><item><title><![CDATA[大家心心念念的RocketMQ5.x入门手册来喽]]></title><link>https://blog.youkuaiyun.com/prestigeding/article/details/128995213</link><guid>https://blog.youkuaiyun.com/prestigeding/article/details/128995213</guid><author>prestigeding</author><pubDate>Sun, 12 Feb 2023 15:07:56 +0800</pubDate><description><![CDATA[为了更好的拥抱云原生，RocketMQ5.x架构进行了大的重构，提出了存储与计算分离的设计架构，本文将带领大家快速入门]]></description><category></category></item><item><title><![CDATA[我在《中间件架构与稳定性治理》技术沙龙上的精彩回顾]]></title><link>https://blog.youkuaiyun.com/prestigeding/article/details/127481204</link><guid>https://blog.youkuaiyun.com/prestigeding/article/details/127481204</guid><author>prestigeding</author><pubDate>Mon, 24 Oct 2022 06:00:00 +0800</pubDate><description><![CDATA[我对RocketMQ性能优化的若干实践与思考]]></description><category></category></item><item><title><![CDATA[Kafka生产环境缩容遇到的一个坑]]></title><link>https://blog.youkuaiyun.com/prestigeding/article/details/126905235</link><guid>https://blog.youkuaiyun.com/prestigeding/article/details/126905235</guid><author>prestigeding</author><pubDate>Sat, 24 Sep 2022 20:40:01 +0800</pubDate><description><![CDATA[最近在折腾Kafka日志集群，由于公司部署的应用不断增加，日志采集程序将采集到的日志发送到Kafka集群时出现了较大延迟，总的TPS始终上不去，为了不影响业务团队通过日志排查问题，采取了先解决问题，再排查的做法，对Kafka集群进行扩容，但扩容后尴尬的是新增加的5台机器中，有两台机器的消费发送响应时间比其他机器明显高出不少，为了确保消息服务的稳定性，又临时对集群进行缩容，将这台机器从集群中剔除，**具体的操作就是简单粗暴的使用 kill pid命令**，但意外发生了]]></description><category></category></item><item><title><![CDATA[Kafka消费组无法消费问题排查实战]]></title><link>https://blog.youkuaiyun.com/prestigeding/article/details/126513167</link><guid>https://blog.youkuaiyun.com/prestigeding/article/details/126513167</guid><author>prestigeding</author><pubDate>Wed, 24 Aug 2022 21:35:46 +0800</pubDate><description><![CDATA[kafka集群能发送消息，但无法消费消息，这如何是好呢？]]></description><category></category></item><item><title><![CDATA[生产环境kafka日志集群400W/tps就扛不住了]]></title><link>https://blog.youkuaiyun.com/prestigeding/article/details/124871346</link><guid>https://blog.youkuaiyun.com/prestigeding/article/details/124871346</guid><author>prestigeding</author><pubDate>Thu, 19 May 2022 22:21:26 +0800</pubDate><description><![CDATA[大家好，我是威哥，《RocketMQ技术内幕》作者、RocketMQ社区首席布道师、中通快递基础架构资深架构师，越努力越幸运，唯有坚持不懈，与大家共勉。

最近公司日志Kafka集群出现了性能瓶颈，单节点还没达到60W/tps时消息发送就出现了很大延迟，甚至最高超过了10s，截图说明如下：

虽说使用的机械磁盘，但这点压力对Kafka来说应该是小菜一碟，这引起了我的警觉，需要对其进行一番诊断了。
通过监控平台观察Kafka集群中相关的监控节点，发现cpu使用率才接近20%左右，磁盘IO等待等指标都并未出现.]]></description><category></category></item><item><title><![CDATA[我擦，RocketMQ的tag还有这个“坑”]]></title><link>https://blog.youkuaiyun.com/prestigeding/article/details/123606217</link><guid>https://blog.youkuaiyun.com/prestigeding/article/details/123606217</guid><author>prestigeding</author><pubDate>Mon, 21 Mar 2022 22:19:36 +0800</pubDate><description><![CDATA[RocketMQ提供了基于Tag的消息过滤机制，但在使用过程中有很多朋友或多或少会有一些疑问，我不经意在RocketMQ官方钉钉群，我记得有好多朋友都有问到如下问题：

今天我就与RocketMQ Tag几个值得关注的问题，和大家来做一个分享，看过后的朋友，如果觉得有帮助，期待你的点赞支持。


消费组订阅关系不一致为什么会到来消息丢失？


如果一个tag的消息数量很少，是否会显示很高的延迟？


1、消费组订阅关系不一致导致消息丢失
从消息消费的视角来看消费组是一个基本的物理隔离单位，每一个消费组拥有自]]></description><category></category></item><item><title><![CDATA[Kafka节点万兆网卡打满，揭晓集群安然无恙的秘诀]]></title><link>https://blog.youkuaiyun.com/prestigeding/article/details/123266782</link><guid>https://blog.youkuaiyun.com/prestigeding/article/details/123266782</guid><author>prestigeding</author><pubDate>Fri, 04 Mar 2022 07:00:00 +0800</pubDate><description><![CDATA[想必大家都看过笔者Kafka集群故障的排查经验，并通过优化参数使得Kafka集群应对洪峰流量的能力提升N倍，网卡流量几乎打满，集群写入稳如泰山，无独有偶，菜鸟的一个故障导致集群单个topic从5W/tps直接飙升到50W/tps,但集群稳如狗，相当于做了一次“突然的压测”，让我们一起回顾一下这次惊心动魄的过程吧。
在进入本文的探讨之前，强烈推荐一下笔者最近的得意之作：Kafka集群中大部分消费组无端被重置到最新位点开始消费的故障排查经验：

双十一期间Kafka以这种方式丢消息让我猝不及防
生产故障｜Kaf]]></description><category></category></item><item><title><![CDATA[学习方法｜一把解开Kafka背后机制的“钥匙”]]></title><link>https://blog.youkuaiyun.com/prestigeding/article/details/123054576</link><guid>https://blog.youkuaiyun.com/prestigeding/article/details/123054576</guid><author>prestigeding</author><pubDate>Mon, 21 Feb 2022 19:56:29 +0800</pubDate><description><![CDATA[在Kafka中有一个非常重要的角色：控制器，KafkaController，承担着Kafka核心运作机制，从本文开始将逐步深入Kafka内核，揭晓Kafka内部的运作机制，为更好的运维Kafka储备充足的弹药。
深入探究Kafka内核，我们将如何展开呢？经过笔者初略的浏览了KafkaController类的源码，发现Kafka的控制器严重依赖Zookeeper集群，而基于Zookeeper编程的常规套路：基于事件监听模型：

Zookeeper创建相应的节点
创建Watch，监听节点的新增/修改/删除事件，]]></description><category></category></item><item><title><![CDATA[阿里巴巴集群所有的数据同步任务都是用SQL语句来定义，如何实现？]]></title><link>https://blog.youkuaiyun.com/prestigeding/article/details/122973936</link><guid>https://blog.youkuaiyun.com/prestigeding/article/details/122973936</guid><author>prestigeding</author><pubDate>Thu, 17 Feb 2022 08:00:00 +0800</pubDate><description><![CDATA[手把手教你Oracle增量同步。]]></description><category></category></item><item><title><![CDATA[《重学数据结构与算法》：请手写一个简易的单链表]]></title><link>https://blog.youkuaiyun.com/prestigeding/article/details/122677234</link><guid>https://blog.youkuaiyun.com/prestigeding/article/details/122677234</guid><author>prestigeding</author><pubDate>Tue, 25 Jan 2022 08:00:00 +0800</pubDate><description><![CDATA[我现在有点明白了，在面试过程中面试官有时会让我们手写代码，其实主要是**考验大家的基本功**，更是通过大众都熟悉的领域来考核大家的**体系化思维与应对思路**。]]></description><category></category></item><item><title><![CDATA[生产故障｜Kafka ISR频繁伸缩缩引发性能急剧下降原因分析]]></title><link>https://blog.youkuaiyun.com/prestigeding/article/details/122094581</link><guid>https://blog.youkuaiyun.com/prestigeding/article/details/122094581</guid><author>prestigeding</author><pubDate>Wed, 22 Dec 2021 20:41:12 +0800</pubDate><description><![CDATA[本文是笔者双十一系列第二弹，源于一个双十一期间一个让笔者猝不及防的生产故障，本文将详细剖析Kafka的副本机制，以及ISR频繁变更(扩张与伸缩)为什么会导致集群不可用。
1、Kafka副本机制
Kafka数据组织方式是topic-parition的结构，每一个topic可以设置多个分区，各个分区的数据是topic数据的一部分（数据分片），为了保证单个分区的高可用行，又引入了副本机制，即一个分区的数据会存储多份，避免单点故障.
一个3节点的Broker集群，每一个Toipic的副本因子设置为3，则对于其中一个]]></description><category></category></item><item><title><![CDATA[坚持周更深度原创文章已6年多，我是如何做到的？]]></title><link>https://blog.youkuaiyun.com/prestigeding/article/details/121893223</link><guid>https://blog.youkuaiyun.com/prestigeding/article/details/121893223</guid><author>prestigeding</author><pubDate>Mon, 13 Dec 2021 20:50:52 +0800</pubDate><description><![CDATA[如何利用“零散时间”是破局关键。]]></description><category></category></item><item><title><![CDATA[双十一期间Kafka以这种方式丢消息让我促不及防]]></title><link>https://blog.youkuaiyun.com/prestigeding/article/details/121757043</link><guid>https://blog.youkuaiyun.com/prestigeding/article/details/121757043</guid><author>prestigeding</author><pubDate>Tue, 07 Dec 2021 20:55:39 +0800</pubDate><description><![CDATA[讲真，我今年的双十一有点“背”，负责的Kafka集群出了一些幺蛾子，但正是这些幺蛾子，让我这个双十一过的非常充实，也让我意识到如果不体系化学习Kafka，是无法做到生产集群及时预警，将故障扼杀在摇篮中，因此也下定决心研读kafka的内核。
本文就先来分享一个让我始料未及的故障：Kafka生产环境大面积丢失消息。
首先要阐述的是消息丢失并不是因为断电，而且集群的副本数量为3，消息发送端设置的acks=-1(all)。
这样严苛的设置，那为什么还会出现消息丢失呢？请听笔者慢慢道来。
1、故障现象
故障发生时，接]]></description><category></category></item><item><title><![CDATA[RocketMQ这样做，压测后性能提高30%]]></title><link>https://blog.youkuaiyun.com/prestigeding/article/details/121596680</link><guid>https://blog.youkuaiyun.com/prestigeding/article/details/121596680</guid><author>prestigeding</author><pubDate>Mon, 29 Nov 2021 12:01:31 +0800</pubDate><description><![CDATA[RocketMQ4.9.1版本针对同步复制模型进行了性能优化，压测后提升30%]]></description><category></category></item><item><title><![CDATA[6张图阐述Kafka心跳机制（时间轮算法的具体运用）]]></title><link>https://blog.youkuaiyun.com/prestigeding/article/details/121430539</link><guid>https://blog.youkuaiyun.com/prestigeding/article/details/121430539</guid><author>prestigeding</author><pubDate>Wed, 24 Nov 2021 12:00:30 +0800</pubDate><description><![CDATA[无处不在的时间轮算法]]></description><category></category></item><item><title><![CDATA[零拷贝原理的文章网上满天飞，但你知道如何使用零拷贝吗？]]></title><link>https://blog.youkuaiyun.com/prestigeding/article/details/121195080</link><guid>https://blog.youkuaiyun.com/prestigeding/article/details/121195080</guid><author>prestigeding</author><pubDate>Mon, 08 Nov 2021 08:45:00 +0800</pubDate><description><![CDATA[零拷贝是中间件相关面试中必考题，本文就和大家一起来总结一下NIO拷贝的原理，并结合Netty代码，从代码实现层面近距离观摩如何使用java实现零拷贝。
1、零拷贝实现原理
**“零拷贝”**其实包括两个层面的含义：

拷贝
一份相同的数据从一个地方移动到另外一个地方的过程，叫拷贝。
零
希望在IO读写过程中，CPU控制的数据拷贝到次数为0。

在IO编程领域，当然是拷贝的次数越少越好，逐步优化，将其拷贝次数将为0，最大化的提高性能。
那接下来我们循序渐进来看一下如何减少数据复制。
接下来我们将以Rocket]]></description><category></category></item><item><title><![CDATA[《RocketMQ技术原理：RocketMQ架构设计与实现原理》第二版书籍勘误]]></title><link>https://blog.youkuaiyun.com/prestigeding/article/details/121152700</link><guid>https://blog.youkuaiyun.com/prestigeding/article/details/121152700</guid><author>prestigeding</author><pubDate>Thu, 04 Nov 2021 22:13:08 +0800</pubDate><description><![CDATA[尊敬的各位读者朋友们，谢谢大家对《RocketMQ技术内幕：RocketMQ架构设计与实现原理》第二版本的支持与厚爱，如果发现书中有什么错误的内容，烦请大家在该文章追加您的评论，我会及时与广大读者朋友们进行互动，共同探讨RocketMQ相关技术。
作者也会尽量跟进社区重大更新，对其进行解读，也会在该文中添加动态。
大家也可以加我的微信，给我实时反馈，再次感谢大家的支持与厚爱：

建议格式：姓名 + 内容(建议包含图片与页码)
温馨提示：之所以收集姓名，主要的目的是想在印刷的时候，在致谢名单中加上各位朋友的名]]></description><category></category></item><item><title><![CDATA[7张图揭晓RocketMQ存储设计的奥妙]]></title><link>https://blog.youkuaiyun.com/prestigeding/article/details/121050549</link><guid>https://blog.youkuaiyun.com/prestigeding/article/details/121050549</guid><author>prestigeding</author><pubDate>Mon, 01 Nov 2021 08:30:00 +0800</pubDate><description><![CDATA[本文节选自最新上市《RocketMQ技术内幕》第二版本，一个最大的改变就是在进入源码分析之前，首先通过图文的方式，提炼出RocketMQ的核心工作机制，降低源码阅读的难度，引发思考。]]></description><category></category></item></channel></rss>