摘要: 引言 上文有提到如果Selector轮询到网络IO事件了,则会调用该Channel对应的ChannelPipeline来依次执行对应的ChannelHandler。 ChannelPipeline和ChannelHandler的关系 那么这里的ChannelPipeline和ChannelHandl 阅读全文
posted @ 2022-03-15 16:25 香芋牛奶面包 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 引言 上一篇文章介绍了 的线程模型及 机制,相信大家对 已经有一个基本的认识。那么本篇文章我会根据Netty提供的 来分析一下 启动流程。 启动流程概览 开始之前,我们先来分析下 服务端的启动流程,下面是一个简单的流程图 启动流程大致分为五步 1. 创建 实例, 是Netty服务端的启动辅助类,其存 阅读全文
posted @ 2020-05-19 19:51 香芋牛奶面包 阅读(387) 评论(0) 推荐(0) 编辑
摘要: 引言 好久没有写博客了,近期准备把 源码啃一遍。在这之前本想直接看源码,但是看到后面发现其实效率不高, 有些概念还是有必要回头再细啃的,特别是其线程模型以及 的概念。 当然在开始之前还是有务必要对 要有清晰准确的认识。 传送门 "" 事件循环机制(EventLoop) Netty线程模型中一个非常重 阅读全文
posted @ 2020-05-19 19:43 香芋牛奶面包 阅读(978) 评论(1) 推荐(0) 编辑
摘要: 引言 在分析Sentinel的上一篇文章中,我们知道了它是基于滑动窗口做的流量统计,那么在当我们能够根据流量统计算法拿到流量的实时数据后,下一步要做的事情自然就是基于这些数据做流控。在介绍 的流控模型之前,我们先来简单看下 Sentinel 后台是如何去定义一个流控规则的 对于上图的配置 把它抽象成 阅读全文
posted @ 2019-11-17 17:38 香芋牛奶面包 阅读(2577) 评论(0) 推荐(1) 编辑
摘要: 写在前面 开发新项目就需要搭建新工程,但是搭建新工程的这个过程是非常繁琐浪费时间的,并且不可避免的需要踩坑。更可怕的是,如果是在一个团队中,每新起一个项目都由不同的开发人员去自定义的搭建工程结构,那么对后续的统一管理,监控,运维简直是灾难。基于以上几点,团队内部其实是非常有必要搭建一个统一的脚手架来 阅读全文
posted @ 2019-11-08 15:50 香芋牛奶面包 阅读(1449) 评论(0) 推荐(0) 编辑
摘要: 引言 在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。今天我们要聊的就是限流(Rate Limit),限流的目的很简单,就是为了保护系统不被瞬时大流量冲垮, 限流这个概念我其实很早之前就有去了解过,不过无奈之前工作所接触业务的并发量实在是谈不上限流。目前公司大促峰值QPS在2w往上,自然 阅读全文
posted @ 2019-10-28 11:28 香芋牛奶面包 阅读(2928) 评论(0) 推荐(2) 编辑
摘要: 前言 的核心功能之一是流量统计,例如我们常用的指标QPS,当前线程数等。上一篇文章中我们已经大致提到了提供数据统计功能的 ,`StatisticSlot Sentinel StatisticSlot`所统计出的数据。 本文所要讨论的重点就是 是如何做的流量统计? 其实在之前介绍常用限流算法 "[常用 阅读全文
posted @ 2019-10-28 10:58 香芋牛奶面包 阅读(2548) 评论(0) 推荐(0) 编辑
摘要: 写在前面 本文继续来分析Sentinel的源码,上篇文章对Sentinel的调用过程做了深入分析,主要涉及到了两个概念:插槽链和Node节点。那么接下来我们就根据插槽链的调用关系来依次分析每个插槽(slot)的源码。 默认插槽链的调用顺序,以及每种类型Node节点的关系都在上面文章开头分析过 "Se 阅读全文
posted @ 2019-10-28 10:56 香芋牛奶面包 阅读(1956) 评论(0) 推荐(0) 编辑
摘要: 引言 作为ali开源的一款轻量级流控框架, 主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助用户保护服务的稳定性 。相比于 ,`Sentinel Sentinel Sentinel API Sentinel`流控的灵活性。 引入 带来的性能损耗非常小。只有在业务单机量级超过25 阅读全文
posted @ 2019-10-28 10:52 香芋牛奶面包 阅读(5199) 评论(0) 推荐(1) 编辑