自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

中间件兴趣圈

主打成体系剖析java中间件,已发布RocketMQ、Kafka、Dubbo、Sentinel、Canal、ElasticJob、ElasticSearch等15个专栏。

  • 博客(352)
  • 资源 (5)
  • 收藏
  • 关注

原创 java领域优质电子书收集(持续更新)

最近有很多粉丝朋友问我,说威哥在java领域我应该读哪些书。java是目前应用最火的开发语言(不接受反驳),但其领域非常庞大,要想对每一个领域都精通绝非易事,笔者只能根据我的日常工作,慢慢收集一些优质的电子书,该过程会持续。目前收集的电子书如下:文件目录组织如下:下载方式:关注「中间件兴趣圈」公众号,回复关键字 PDF,即可获取。...

2021-08-01 23:53:34 1082

原创 Java进阶之梯,成长路线与学习资料,助力突破中间件领域

JavaLadder中间件兴趣圈,一定能成为你在java领域的进阶之梯,旨在成体系剖析Java主流中间件,构建互联网分布式架构体系,助力突破大厂,从源码分析、架构设计、线上故障案例剖析、实战等4个维度开展,目前已覆盖Netty、RocketMQ、Dubbo、Sentienl、Kafka、Canal、ElasticSearch、ElasticJob等12个专栏近300篇文章。由于公众号对历史文章不太友好,应粉丝朋友们的要求,我将公众号所有专栏内容同步到csdn仓库,希望对大家阅读带来便利。中间件技术是进

2021-04-28 19:37:24 4712 15

原创 《RocketMQ实战专栏》为什么是你学习RocketMQ的最佳资料

《RocketMQ实战与原理》专栏简介简介RocketMQ业界主流的消息中间件之一,承载公司核心业务消息的流转。对RocketMQ核心原理的理解与最佳实践成了开发与运维同学的必备技能。听很多同学抱怨,在学习中苦于缺少参考资料、遇到问题缺少专家指点、看源码掉入细节耗费大量时间精力、缺乏指引的最佳实践。我们在使用RocketMQ发送时会碰到System busy、Broker busy,导致发送超时。发生这种现象的背后原理是怎样的?我们有什么解决方案?一个消费组订阅多个Tag的情况,多个Tag用||分割

2020-12-31 23:22:52 6114 5

原创 免费专辑

CSDN『唯有坚持不懈』又名『中间件兴趣圈』,旨在成体系剖析互联网JAVA主流中间件,涵盖 RocketMQ、Netty、Elasticjob、Dubbo、Canal、Sentinel、等互联网大厂必备技能,助力职场。1、源码分析RocketMQ专栏(40篇+)2、源码分析Sentinel专栏(12篇+)3、源码分析Dubbo专栏(28篇+)4、源码分析Mybatis专栏5、源码分析Netty专栏(18篇+)6、源码分析JUC专栏7、源码分析Elasticjob专栏8、Elasticsear

2020-11-01 16:11:58 3577 6

原创 本博客阅读指南

主要关注Java主流开源中间件,博客从JAVA高端基础入手,从源码的角度分析了Java集合框架、Java并发包(多线程、并发锁),紧接着进入到网络编程专题,开通了源码分析Netty5系列专栏,随后依次开通了源码分析Mycat系列专栏、源码分析RocketMQ专栏、源码分析ElasticJob专栏、源码分析Dubbo专栏、Elasticsearch使用指南等。后续会持续关注Java端主流框架,诸如Haddoop、Hbase、Sentinel、Fascar、Spring Clould等。

2019-03-23 21:28:43 2784 2

原创 《RocketMQ技术内幕:RocketMQ架构设计与实现原理》书籍勘误表

尊敬的各位读者朋友们,谢谢大家对《RocketMQ技术内幕:RocketMQ架构设计与实现原理》本书的支持与厚爱,如果发现书中有什么错误的内容,烦请大家在该文章追加您的评论,我会及时与广大读者朋友们进行互动,共同探讨RocketMQ相关技术。大家也可以加为微信公众号,给我实时反馈,再次感谢大家的支持与厚爱:...

2018-12-24 14:58:50 16728 75

原创 Pulsar消息发送、消费架构概述

pulsar中文文档、消息发送、消息整体架构

2023-03-12 15:41:32 2580 2

原创 RocketMQ ACL架构升级的一些建议与实践

官方开源版本不支持万亿级消息流程

2023-02-16 22:53:29 601

原创 大家心心念念的RocketMQ5.x入门手册来喽

为了更好的拥抱云原生,RocketMQ5.x架构进行了大的重构,提出了存储与计算分离的设计架构,本文将带领大家快速入门

2023-02-12 15:07:56 1625 2

原创 我在《中间件架构与稳定性治理》技术沙龙上的精彩回顾

我对RocketMQ性能优化的若干实践与思考

2022-10-24 06:00:00 480

原创 Kafka生产环境缩容遇到的一个坑

最近在折腾Kafka日志集群,由于公司部署的应用不断增加,日志采集程序将采集到的日志发送到Kafka集群时出现了较大延迟,总的TPS始终上不去,为了不影响业务团队通过日志排查问题,采取了先解决问题,再排查的做法,对Kafka集群进行扩容,但扩容后尴尬的是新增加的5台机器中,有两台机器的消费发送响应时间比其他机器明显高出不少,为了确保消息服务的稳定性,又临时对集群进行缩容,将这台机器从集群中剔除,**具体的操作就是简单粗暴的使用 kill pid命令**,但意外发生了

2022-09-24 20:40:01 3775 1

原创 Kafka消费组无法消费问题排查实战

kafka集群能发送消息,但无法消费消息,这如何是好呢?

2022-08-24 21:35:46 8556

原创 生产环境kafka日志集群400W/tps就扛不住了

大家好,我是威哥,《RocketMQ技术内幕》作者、RocketMQ社区首席布道师、中通快递基础架构资深架构师,越努力越幸运,唯有坚持不懈,与大家共勉。最近公司日志Kafka集群出现了性能瓶颈,单节点还没达到60W/tps时消息发送就出现了很大延迟,甚至最高超过了10s,截图说明如下:虽说使用的机械磁盘,但这点压力对Kafka来说应该是小菜一碟,这引起了我的警觉,需要对其进行一番诊断了。通过监控平台观察Kafka集群中相关的监控节点,发现cpu使用率才接近20%左右,磁盘IO等待等指标都并未出现.

2022-05-19 22:21:26 1151 4

原创 我擦,RocketMQ的tag还有这个“坑”

RocketMQ提供了基于Tag的消息过滤机制,但在使用过程中有很多朋友或多或少会有一些疑问,我不经意在RocketMQ官方钉钉群,我记得有好多朋友都有问到如下问题:今天我就与RocketMQ Tag几个值得关注的问题,和大家来做一个分享,看过后的朋友,如果觉得有帮助,期待你的点赞支持。消费组订阅关系不一致为什么会到来消息丢失?如果一个tag的消息数量很少,是否会显示很高的延迟?1、消费组订阅关系不一致导致消息丢失从消息消费的视角来看消费组是一个基本的物理隔离单位,每一个消费组拥有自

2022-03-21 22:19:36 2887 1

原创 Kafka节点万兆网卡打满,揭晓集群安然无恙的秘诀

想必大家都看过笔者Kafka集群故障的排查经验,并通过优化参数使得Kafka集群应对洪峰流量的能力提升N倍,网卡流量几乎打满,集群写入稳如泰山,无独有偶,菜鸟的一个故障导致集群单个topic从5W/tps直接飙升到50W/tps,但集群稳如狗,相当于做了一次“突然的压测”,让我们一起回顾一下这次惊心动魄的过程吧。在进入本文的探讨之前,强烈推荐一下笔者最近的得意之作:Kafka集群中大部分消费组无端被重置到最新位点开始消费的故障排查经验:双十一期间Kafka以这种方式丢消息让我猝不及防生产故障|Kaf

2022-03-04 07:00:00 1843

原创 学习方法|一把解开Kafka背后机制的“钥匙”

在Kafka中有一个非常重要的角色:控制器,KafkaController,承担着Kafka核心运作机制,从本文开始将逐步深入Kafka内核,揭晓Kafka内部的运作机制,为更好的运维Kafka储备充足的弹药。深入探究Kafka内核,我们将如何展开呢?经过笔者初略的浏览了KafkaController类的源码,发现Kafka的控制器严重依赖Zookeeper集群,而基于Zookeeper编程的常规套路:基于事件监听模型:Zookeeper创建相应的节点创建Watch,监听节点的新增/修改/删除事件,

2022-02-21 19:56:29 1172

原创 阿里巴巴集群所有的数据同步任务都是用SQL语句来定义,如何实现?

手把手教你Oracle增量同步。

2022-02-17 08:00:00 930

原创 《重学数据结构与算法》:请手写一个简易的单链表

我现在有点明白了,在面试过程中面试官有时会让我们手写代码,其实主要是**考验大家的基本功**,更是通过大众都熟悉的领域来考核大家的**体系化思维与应对思路**。

2022-01-25 08:00:00 457

原创 生产故障|Kafka ISR频繁伸缩缩引发性能急剧下降原因分析

本文是笔者双十一系列第二弹,源于一个双十一期间一个让笔者猝不及防的生产故障,本文将详细剖析Kafka的副本机制,以及ISR频繁变更(扩张与伸缩)为什么会导致集群不可用。1、Kafka副本机制Kafka数据组织方式是topic-parition的结构,每一个topic可以设置多个分区,各个分区的数据是topic数据的一部分(数据分片),为了保证单个分区的高可用行,又引入了副本机制,即一个分区的数据会存储多份,避免单点故障.一个3节点的Broker集群,每一个Toipic的副本因子设置为3,则对于其中一个

2021-12-22 20:41:12 3575 3

原创 坚持周更深度原创文章已6年多,我是如何做到的?

如何利用“零散时间”是破局关键。

2021-12-13 20:50:52 977 2

原创 双十一期间Kafka以这种方式丢消息让我促不及防

讲真,我今年的双十一有点“背”,负责的Kafka集群出了一些幺蛾子,但正是这些幺蛾子,让我这个双十一过的非常充实,也让我意识到如果不体系化学习Kafka,是无法做到生产集群及时预警,将故障扼杀在摇篮中,因此也下定决心研读kafka的内核。本文就先来分享一个让我始料未及的故障:Kafka生产环境大面积丢失消息。首先要阐述的是消息丢失并不是因为断电,而且集群的副本数量为3,消息发送端设置的acks=-1(all)。这样严苛的设置,那为什么还会出现消息丢失呢?请听笔者慢慢道来。1、故障现象故障发生时,接

2021-12-07 20:55:39 2951 2

原创 RocketMQ这样做,压测后性能提高30%

RocketMQ4.9.1版本针对同步复制模型进行了性能优化,压测后提升30%

2021-11-29 12:01:31 28722 21

原创 6张图阐述Kafka心跳机制(时间轮算法的具体运用)

无处不在的时间轮算法

2021-11-24 12:00:30 3086 1

原创 零拷贝原理的文章网上满天飞,但你知道如何使用零拷贝吗?

零拷贝是中间件相关面试中必考题,本文就和大家一起来总结一下NIO拷贝的原理,并结合Netty代码,从代码实现层面近距离观摩如何使用java实现零拷贝。1、零拷贝实现原理**“零拷贝”**其实包括两个层面的含义:拷贝一份相同的数据从一个地方移动到另外一个地方的过程,叫拷贝。零希望在IO读写过程中,CPU控制的数据拷贝到次数为0。在IO编程领域,当然是拷贝的次数越少越好,逐步优化,将其拷贝次数将为0,最大化的提高性能。那接下来我们循序渐进来看一下如何减少数据复制。接下来我们将以Rocket

2021-11-08 08:45:00 4017 2

原创 《RocketMQ技术原理:RocketMQ架构设计与实现原理》第二版书籍勘误

尊敬的各位读者朋友们,谢谢大家对《RocketMQ技术内幕:RocketMQ架构设计与实现原理》第二版本的支持与厚爱,如果发现书中有什么错误的内容,烦请大家在该文章追加您的评论,我会及时与广大读者朋友们进行互动,共同探讨RocketMQ相关技术。作者也会尽量跟进社区重大更新,对其进行解读,也会在该文中添加动态。大家也可以加我的微信,给我实时反馈,再次感谢大家的支持与厚爱:建议格式:姓名 + 内容(建议包含图片与页码)温馨提示:之所以收集姓名,主要的目的是想在印刷的时候,在致谢名单中加上各位朋友的名

2021-11-04 22:13:08 1146 15

原创 7张图揭晓RocketMQ存储设计的奥妙

本文节选自最新上市《RocketMQ技术内幕》第二版本,一个最大的改变就是在进入源码分析之前,首先通过图文的方式,提炼出RocketMQ的核心工作机制,降低源码阅读的难度,引发思考。

2021-11-01 08:30:00 1651 1

原创 《重学Java高并发》Disruptor使用实战

上文已经详细介绍了disruptor,也体会了并发编程的奥妙,接下来将理论结合实战,本文和大家分享一下disruptor的使用,加深对disruptor工具包对理解。1、 disruptor常用类一览disruptor的常用类体系如下图所示:其职责说明如下:RingBuffer环形队列,disruptor中的核心存储类Sequencer序号实现器,维护发送者发送的序号生成逻辑、消费方获取可消费的序号,是无锁化访问的核心实现类,共有两个实现类,MultiProducerSequence

2021-10-26 08:30:00 2113

原创 《重学Java高并发》disruptor是如何做到百万级吞吐?

Disruptor是业界非常出名的单机版高性能队列,官方宣传能达到百万级吞吐,那disruptor是如何做到的呢?其核心秘诀如下:破除伪共享对象池无锁化设计批处理上面这些观点,网上已经提了N遍,没关系,本文将结合代码、图解的方式,与大家一起探究实现原理,希望能给读者朋友们不一样的感悟。提到Disruptor,必然会提到RingBuffer,disruptor环形队列,是整个Disruptor是基座,本文将尝试以RingBuffer为突破口,揭晓disruptor的核心设计理念。disru

2021-10-21 08:30:00 1140 1

原创 《重学Java高并发》disruptor在数据同步场景下的应用实战(技术方案设计实战)

《重学Java高并发》第5篇,该专栏将结合10余年的工作经验,在实践中提炼总结高并发经验,将理论落到实处,不仅助力面试,更是真正提高技能。

2021-10-17 19:38:00 841

原创 《重学Java高并发》线程与线程之间如何协作(父子线程如何优雅交互)

那线程与线程之间如何协作呢?如果子线程出现异常,如何通知主线程呢?

2021-10-08 20:22:32 1280 1

原创 《重学Java高并发》同步转异步编程技巧与实战运用

已发送监控告警信息不同渠道为例,展示同步转异步编程实战。

2021-09-22 12:46:53 1401 3

原创 你真的会打印日志?

打印日志的终极目的是什么?

2021-09-18 22:14:49 2658 3

原创 《重学Java高并发》你管这“破玩意儿”叫锁(没有高并发经验的朋友们看过来,该专栏结合笔者的实战来讲高并发)

《重学Java高并发》专栏结合10余年的工作经验,在实践中提炼总结高并发经验,将理论落到实处,不仅助力面试,更是真正提高技能。

2021-09-13 13:11:39 1495 1

原创 《重学Java高并发》专栏开始连载:你是否懂Java高并发,一测便知(从实际应用场景中提炼多线程,理解多线程,不是面经,更胜面经)

《重学Java高并发》从实际应用场景中提炼多线程,理解多线程,不是面经,更胜面经。关注我,注重修炼内功,助力职场。

2021-09-06 22:24:08 1409 3

原创 莫让“学院派”限制我们的思维:在数组的中间位置删除数据一定比链表慢?

《RocketMQ技术内幕》一书作者,RocketMQ官方社区优秀布道师、CSDN2020博客执之星Top2,与大家一起学习《数据结构与算法》

2021-08-31 23:10:22 1899 12

原创 有幸与美团大佬共同探讨单节点连接数超1.5W的问题

如何锻炼自己的架构设计能力,可以试图将自己面对的业务量扩大一百倍,思考会面临大问题以及如何解决。

2021-08-30 09:08:06 4122 13

原创 ElasticSearch使用指南系列

ElasticSearch使用指南如下:1、ElasticSearch Client详解2、Elasticsearch文档读写模型实现原理3、Elasticsearch Document Index API详解、原理与示例4、Elasticsearch Document Get API详解、原理与示例5、Elasticsearch Document Delete API详解、原理与示例6、Elasticsearch Document Update API详解、原理与示例7、Elasticsea

2021-08-23 23:01:02 643

原创 源码分析Canal专栏

Canal 是阿里开源的基于 MySQL Binlog 数据同步组件,是互联网架构中数据异构的重磅组件,本专栏将从源码的角度探究其实现原理、实现细节,有利于更好的驾驭好Canal。1、数据异构之 Canal 初探(技巧篇)2、一文详解 Canal Instance 设计理念与定制开发思路3、探究 Canal EventParser 的设计与实现奥妙4、Canal 如何实现数据库库事务的一致性5、Canal binlog 日志管理器与GTID简介6、Canal binlog 日志 Dump 流程分

2021-08-23 22:55:12 403

原创 源码分析MyCat专栏

源码分析MyCAT1.6目录1、源码研究mycat之mysql通信协议篇之握手认证协议2、源码分析mycat1.6之mysql通信协议篇之COM_QUERY(SELECT语句报文解析)3、源码分析mycat1.6之mysql通信协议篇之存储过程调用4、源码研读Mycat1.6之网络篇---前端线程模型(应用程序与mycat交互篇)上篇5、源码分析mycat1.6之网络篇---前端线程模型下篇(读写事件篇)6、源码分析mycat1.6之网络篇----前后端连接交互设计(mycat命令处

2021-08-23 22:54:15 403

原创 源码分析Netty4专栏

源码分析Netty4专栏是三年内第二次研究Netty,第一波源码分析是基于netty5,专栏地址:源码分析Netty5,但由于netty5已经被官方废弃,故笔者为了更加应对工作,重新对netty4进行了第二次研究,终于明白了netty nio但精髓。源码分析Netty4专栏,主要将分为通道篇、内存篇、性能优化篇、实战篇。目前已完成通道篇的连载。1、通道篇通道篇,一个显著的特点是带着问题学习Netty,NIO,启发式指引:通道篇的内容已经整理成电子书,可供下载,关注我,私信回复NPDF即可获取。

2021-08-23 22:50:47 536

rocketmqpdf.zip

根据RocketMQ专栏整理的电子书籍,覆盖笔者运维千亿级消息流转的运维经验。

2021-04-28

rocketmq实战与源码分析.zip

由阿里巴巴根据[中间件兴趣圈]RocketMQ专栏文章,整理的两本电子书,总的来看主要从如下三部分进行展开: 1线上故障分析结合笔者日均消息流转千亿级别的消息集群的运维经验、网友的问题提问整理提取的精华。 2 源码分析篇主要是对RocketMQ4.4.0及其后续版本中的新加入的功能进行源码级别的剖析,主要包括ACL、消息轨迹、多副本。 3 认知篇主要展示笔者阅读源码的经验分享,以及如何以布道师的身份参与Apache顶级开源项目的经历。

2021-03-13

Netty实现私有协议,模仿dubbo单一长连接RPC服务调用,心跳检测机制源码

1、客户端与服务端基于单一长连接进行通信,客户端一条连接被多个线程使用。 2、实现私有协议 请求协议 协议头:4字节的请求序列号 2字节的请求类型 2字节数据包长度 数据部分: 服务调用:2字节请求服务名长度 若干字节请求服务名 2字节请求参数长度 若干字节参数 心跳包:数据部分无 响应信息 协议头:4字节的请求序列号 2字节的执行状态码 2字节数据长度 数据部分: 多字节的响应数据信息(data) 3、代码基于Netty5

2017-03-09

Twemproxy 0.4.1

Twemproxy 构建redis集群 twemproxy最新版本 0.4.1

2016-05-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除