自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

prestigeding的博客

prestigeding的博客

原创 本博客阅读指南

主要关注Java主流开源中间件,博客从JAVA高端基础入手,从源码的角度分析了Java集合框架、Java并发包(多线程、并发锁),紧接着进入到网络编程专题,开通了源码分析Netty5系列专栏,随后依次开通了源码分析Mycat系列专栏、源码分析RocketMQ专栏、源码分析ElasticJob专栏、...

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

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

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

2018-12-24 14:58:50 8250 68

原创 结合 Sentinel 专栏谈谈我的源码阅读技巧
原力计划

本文行文思路:先抛出源码阅读方法,然后结合Sentinel创作过程谈谈具体是如何运用这些技巧,最后解答几个源码阅读的误区。 Sentinel 系列共包含15篇文章,主要以源码分析为手段,图文并茂的方式对 Sentinel 的架构设计理念、核心实现要点进行了一一剖析,并加以实战分析与思考。 很多朋...

2020-06-01 21:43:15 25 0

原创 Sentinel 系统自适应限流原理剖析与实战指导
原力计划

看到标题中的几个关键字系统自适应限流是不是觉得高大上,这个自适应又是如何实现的呢? 1、Sentinel 系统自适应概述 从官方了解到 Sentienl 系统自适应限流是一个全局的概念,对应用入口流量统一进行统一控制,结合应用的机器负载、CPU 使用率,总体平均响应时间、入口 QPS 和并发线程数...

2020-05-25 21:26:35 181 0

原创 RocketMQ一行代码造成大量消息发送失败
原力计划

1、问题现象 首先接到项目反馈使用 RocketMQ 会出现如下错误: 错误信息关键点:MQBrokerException:CODE:2 DESC:[TIMEOUT_CLEAN_QUEUE]broker busy,start flow control for a while,period in ...

2020-05-18 21:01:58 12316 22

原创 Sentinel Dubbo 适配器看限流与熔断(实战思考篇)
原力计划

本文是源码分析 Sentinel 系列的第十三篇,已经非常详细的介绍了 Sentinel 的架构体系、滑动窗口、调用链上下文、限流、熔断的实现原理,相信各位读者朋友们对Sentinel有一个较为体系化的认知了,这个时候是该开始如何在生产环境进行运用了。 本文将以 Dubbo 服务调用为案例剖析场...

2020-05-11 21:32:31 246 0

原创 源码分析Sentinel专栏

源码分析Sentinel系列是打造的又一重磅专题,详细介绍了限流、熔断的实现原理。 1、Alibaba Sentinel 限流与熔断初探(技巧篇) 2、源码分析 Sentinel 之 Dubbo 适配原理 3、源码分析 Alibaba sentinel 滑动窗口实现原理(文末附原理图) 4、寻找一...

2020-05-08 20:53:13 392 0

原创 Sentinel 集群限流设计原理
原力计划

本节目录1、集群限流使用场景2、集群限流与单机限流的异同思考3、探究集群限流实现原理3.1 ClusterBuilderSlot 详解3.2 集群限流模式实现原理3.2.1 DefaultClusterTokenClient 详解3.2.2 DefaultTokenService 详解4、总结 1...

2020-05-04 14:23:23 907 0

原创 Sentienl 动态数据源架构设计理念与改造实践
原力计划

在介绍集群限流之前需要首先掌握动态数据源的配置方式,本文将根据 Sentinel 官方提供的代码提出整体架构思路,并最终给出实践指导。 温馨提示:本文主要分为动态数据源架构设计理念、从官方示例寻找改造思路、基于SpringBoot改造方案三个部分来详细剖析 Sentienl 动态数据源的改造方案...

2020-04-26 09:05:23 336 0

原创 源码分析 Sentinel DegradeSlot 熔断实现原理
原力计划

详细剖析了Sentinel DegradeSlot 熔断的实现原理,提供了三中熔断策略:DEGRADE_GRADE_RT(基于响应时间)、DEGRADE_GRADE_EXCEPTION_RATIO(异常数比例)、DEGRADE_GRADE_EXCEPTION_COUNT(异常数量)。

2020-04-12 16:11:41 448 0

原创 Sentienl 流控效果之匀速排队与预热实现原理与实战建议
原力计划

本文详细介绍了匀速排队 RateLimiterController 与 预热 WarmUpController 实现原理,并且在文章末尾对 WarmUpController 的实战使用提出了建议。

2020-04-06 23:07:18 352 0

原创 10年IT老兵给职场新人的一些建议(文末有福利)

一名普通二类本科程序员的10年IT从业经验总结,结合自身每一段经历所做过的弯路以及遇到职业瓶颈之后的迷茫、破局逆袭之路,给各位初入职场不久的新人一些中坑建议,值得借鉴。

2020-04-02 09:27:10 879 2

原创 源码分析RateLimiter SmoothWarmingUp 实现原理(文末附流程图)
原力计划

本文详细了介绍了RateLimiter SmoothWarmingUp预热机制的实现原理,对其算法图进行详细的阐述,绝非是对注释进行的英文翻译,特别是解释了预热算法中coldFactor的含义。

2020-03-29 16:06:32 506 0

原创 源码分析 RateLimiter SmoothBursty 实现原理(文末附流程图)
原力计划

本文以源码手段详细介绍了guava框架RateLimiter SmoothBursty 的实现原理,文末详给出其流程图与实现思路。

2020-03-22 14:53:35 301 0

原创 Sentinel FlowSlot 限流实现原理(文末附流程图与总结)
原力计划

Sentinel 触发限流的实现类为 FlowSlot。我们再来简单思考一下,要实现触发限流,至少需要完成如下几件事情: 收集实时调用信息。 设置触发限流规则 根据限流规则与调用信息来决定是否对请求进行限流等。 如何收集实时调用信息在前面的文章中已详细介绍,请带着上述问题开始本节的探讨。 本节...

2020-03-15 19:43:59 319 0

原创 RocketMQ msgId与offsetMsgId释疑(实战篇)

消息发送、消息消费、RocketMQ queryMsgById命令以及rocketmq-console等使用场景中究竟是用的msgId还是offsetMsgId。

2020-03-08 20:43:03 1450 0

原创 源码分析 Sentinel 实时数据采集实现原理

本篇将重点关注 Sentienl 实时数据收集,即 Sentienl 具体是如何收集调用信息,以此来判断是否需要触发限流或熔断。 本节目录1、源码分析 StatisticSlot1.1 StatisticSlot entry 详解1.2 StatisticSlot exit 详解2、Sentien...

2020-01-19 21:41:58 3317 0

原创 Sentinel 调用上下文环境实现原理

用源码与图解的方式详细探究 Sentinel 调用上下文环境是如何管理的。 本节将详细介绍 Sentienl 的上下文环境管理机制。 1、Sentinel Context 调用上下文环境管理 我们从 sentinel-apache-dubbo-adapter 模块的 SentinelDubboP...

2020-01-12 13:32:55 2831 3

原创 寻找一把进入 Alibaba Sentinel 的钥匙(文末附流程图)

经过前面几篇文章的铺垫,我们正式来探讨 Sentinel 的 entry 方法的实现流程。即探究进入 Alibaba Sentinel 核心的一把钥匙。 本节目录1、SphU.entry 流程分析2、Sentienl ProcessorSlot 处理链2.1 SlotChainBuilder 类...

2020-01-05 17:19:00 859 2

原创 源码分析 Alibaba sentinel 滑动窗口实现原理(文末附原理图)

以源码为手段一步一步探究 Alibaba Sentienl 滑动窗口的实现原理,同时也是监控指标采集常用设计方法,如果对源码不感兴趣,可以直接跳文末,用一张图揭示了滑动窗口的工作原理。源码分析sentienl 专栏第三篇。

2019-12-29 15:30:55 1459 1

原创 源码分析 Sentinel 之 Dubbo 适配原理

Alibaba Sentienl Dubbo 适配原理分析,重点复习了 Dubbo 的扩展机制 Filter。

2019-12-22 17:07:29 835 0

原创 Alibaba Sentinel 限流与熔断初探(技巧篇)

温馨提示:源码分析 Alibaba Sentinel 专栏开始连载,本文展示如何学习一个全新的技术的方法。该专栏基于 1.7.0 版本。 在学习一个新技术或新框架时,建议先查看其官方文档, Sentinel 官方文档链接如下:官方文档,以获得对其形成一个整体的认识。 本节目录1、Sentinel...

2019-12-15 15:56:35 3556 1

原创 源码分析Kafka 消息拉取流程

本节重点讨论 Kafka 的消息拉起流程。 本节目录1、KafkaConsumer poll 详解1.1 KafkaConsumer updateAssignmentMetadataIfNeeded 详解1.1.1 ConsumerCoordinator#poll1.1.2 updateFetch...

2019-12-08 20:42:20 443 0

原创 踩坑记:rocketmq-console 消费TPS为0,但消息积压数却在降低是个什么“鬼”

本节目录1、背景2、问题分析2.1 rocketmq-console 数据获获取逻辑探讨2.2 rocketmq 消费TPS统计实现原理2.2.1 消费TPS计算逻辑2.2.2 如何采集消费TPS原始数据3、问题解答 1、背景 上周六的19:00,接到项目反馈,他们的项目从昨天的23:00就停止消...

2019-12-02 21:31:26 1051 0

原创 源码分析Java并发(JUC框架)专栏

java多线程是JAVA高阶编程最需掌握的基本功,本系列从源码的角度对JUC(java 并发工具包)进行详细剖析,一起探讨java多线程并发相关知识。 1、java并发锁ReentrantLock源码分析一 可重入支持中断锁的实现原理 2、java并发锁机制-ReentrantLock Condt...

2019-11-25 21:57:37 1657 0

原创 初始 Kafka Consumer 消费者

温馨提示:整个 Kafka 专栏基于 kafka-2.2.1 版本。 1、KafkaConsumer 概述 根据 KafkaConsumer 类上的注释上来看 KafkaConsumer 具有如下特征: 在 Kafka 中 KafkaConsumer 是线程不安全的。 2.2.1 版本的...

2019-11-24 19:10:07 713 0

原创 KafkaProducer Sender 线程详解(含详细的执行流程图)

温馨提示:本文基于 Kafka 2.2.1 版本。 上文 《源码分析 Kafka 消息发送流程》 已经详细介绍了 KafkaProducer send 方法的流程,该方法只是将消息追加到 KafKaProducer 的缓存中,并未真正的向 broker 发送消息,本文将来探讨 Kafka 的 S...

2019-11-17 19:03:19 742 0

原创 源码分析 Kafka 消息发送流程(文末附流程图)

温馨提示:本文基于 Kafka 2.2.1 版本。本文主要是以源码的手段一步一步探究消息发送流程,如果对源码不感兴趣,可以直接跳到文末查看消息发送流程图与消息发送本地缓存存储结构。 从上文 初识 Kafka Producer 生产者,可以通过 KafkaProducer 的 send 方法发送消...

2019-11-10 16:20:56 581 0

原创 初识 Kafka Producer 生产者

温馨提示:整个 Kafka Client 专栏基于 kafka-2.3.0 版本。 本节目录1、KafkaProducer 概述2、KafkaProducer 类图3、KafkaProducer 简单示例 1、KafkaProducer 概述 根据 KafkaProducer 类上的注释上来看 ...

2019-11-03 18:07:59 305 0

原创 一次 RocketMQ 进程自动退出排查经验分享(实战篇)

1、背景 公司一个 RocketMQ 集群由4主4从组成,突然其中3台服务器“竟然”在同一时间下线,其监控显示如下: 依次查看三台机器的监控图形,时间戳几乎完美“吻合”,不可思议吧。 2、故障分析 出现问题,先二话不说,马上重启各服务器,尽快恢复集群,降低对业务的影响,接下来开始对日志进行分析。...

2019-10-27 09:58:04 1324 6

原创 再谈 RocketMQ broker busy(实战篇)

本文将在 RocketMQ 消息发送system busy、broker busy原因分析与解决方案 的基础上,结合生产上的日志尝试再次理解 broker busy 以及探讨解决方案。 首先,broker busy 相关的日志关键字如下: [REJECTREQUEST]system busy t...

2019-10-24 09:04:28 626 0

原创 源码阅读技巧篇:RocketMQ DLedger 多副本即主从切换专栏回顾

源码阅读技巧篇,以笔者从零开始学习 rocketmq dledger 多副本即主从切换为例,展示笔者的阅读源码的方法。

2019-10-20 22:04:02 339 0

原创 Elasticsearch Query DSL之Compound queries(复合查询)

本章开始将介绍Elasticsearch DSL查询语法的复合查询。 复合查询将其他复合查询或叶子查询进行包装,组合它们的结果和分数,以此改变它们的行为,或从查询字句切换到过滤上下文模式。 主要的复合查询包括如下: constant_score query bool query dis_max ...

2019-10-14 21:47:16 212 0

原创 RocketMQ 升级到主从切换(DLedger、多副本)实战

本文主要介绍如何将 RocketMQ 集群从原先的主从同步升级到主从切换。 本文首先先介绍与 DLedger 多副本即 RocketMQ 主从切换相关的核心配置属性,然后尝试搭建一个DLedger 集群,从原先的 RocketMQ 集群平滑升级到 DLedger 集群的示例,并简单测试一下主从切换...

2019-10-13 16:12:04 528 4

原创 Elasticsearch Query DSL之Term level queries

term_level查询操作的是存储在反向索引(倒排索引)中的准确词根,这些查询通常用于结构化数据,如数字、日期和枚举,而不是全文字段,无需进行分析(分词),term level查询类似于关系型数据库的(where条件过滤)。其查询模式如下: term query 查找包含指定字段中精确匹配查询...

2019-10-08 20:55:18 321 3

原创 源码分析 RocketMQ DLedger 多副本即主从切换实现原理

DLedger 基于 raft 协议,故天然支持主从切换,即主节点(Leader)发生故障,会重新触发选主,在集群内再选举出新的主节点。 RocketMQ 中主从同步,从节点不仅会从主节点同步数据,也会同步元数据,包含 topic 路由信息、消费进度、延迟队列处理队列、消费组订阅配置等信息。那主从...

2019-10-07 16:08:32 532 3

原创 Elasticsearch Query DSL之全文检索(Full text queries)

本节将详细介绍DSL全文搜索。 全文查询包括如下几种模式: match query 标准的全文检索模式,包含模糊匹配、前缀或近似匹配等。 match_phrase query 与match query类似,但只是用来精确匹配的短语。 match_phrase_prefix query 与matc...

2019-10-07 11:51:21 311 0

原创 Elasticsearch Query DSL概述与查询、过滤上下文

从本节开始,先详细介绍Elasticsearch Query DSL语法,该部分是SearchAPI的核心基础之一。 Elasticsearch提供了一个基于JSON的完整查询DSL(领域特定语言)来定义查询。把查询DSL看作是查询的AST(抽象语法树),由两种类型的子句组成: Leaf que...

2019-10-07 11:11:50 245 0

原创 RocketMQ 整合 DLedger(多副本)即主从切换实现平滑升级的设计技巧

源码分析 RocketMQ DLedger 多副本系列已经进行到第 8 篇了,前面的章节主要是介绍了基于 raft 协议的选主与日志复制,从本篇开始将开始关注如何将 DLedger 应用到 RocketMQ中。 摘要:详细分析了RocketMQ DLedger 多副本(主从切换) 是如何整合到 ...

2019-10-03 15:26:15 1295 0

原创 基于 raft 协议的 RocketMQ DLedger 多副本日志复制设计原理

试图用3张流程图再次揭示 RocketMQ DLedger 多副本即主从切换关于日志复制的实现原理,并思考实现日志复制需要解决的问题。

2019-09-28 19:28:52 631 0

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