自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (3)
  • 收藏
  • 关注

原创 混沌工程之 ChaosBlade 故障注入百宝箱

Cli 是一个独立的项目,打包编译后生成二进制可执行程序,它主要负责故障指令生成,解析故障注入指令,故障指令分发,以及记录故障的状态。用户可以直接运行它进行各种场景的故障注入以及故障恢复等操作。下面我将通过实际使用案例对 CLI 项目进行详细介绍。ChaosBlade Tool是一个的故障注入工具箱,有CLI项目以及多个故障执行器组件构成,它开箱即用,并提供了多种场景的故障注入能力,其中包括基础资源、Java应用、K8S、Docker、CRI、中间件、云平台、C++等。

2023-12-26 10:07:57 2546 1

原创 混沌工程之ChaosBlade利刃出鞘

ChaosBlade中文名混沌之刃,起初是由阿里巴巴开源的一款遵循混沌工程原理和混沌实验模型的实验注入工具,提供了丰富的故障注入场景。后来在2021年重磅开源混沌工程平台,ChaosBlade-Box是一款面向多集群、多语言、多环境,阿里开源的云原生混沌工程控制台。

2023-12-25 09:50:22 1346

原创 Sentinel Go-揭秘[流量控制]的实现原理

当流控规则中TokenCalculateStrategy设置为WarmUp,则代表使用预热(冷启动)方式计算Token(限流阈值),当系统长期处于低水位的情况下,当流量突然增加时,直接把系统拉升到高水位可能瞬间把系统压垮。通过"冷启动",让通过的流量缓慢增加,在一定时间内逐渐增加到阈值上限,给冷系统一个预热的时间,避免冷系统被压垮。

2023-12-20 11:10:42 1311 1

原创 Sentinel Go-毫秒级统计数据结构揭秘

通过上面的介绍可以了解到在Sentienl-Go中实现底层指标的统计代码量并不多,本质是通过“时间轮”进行指标的数据统计和存储,在时间轮中借鉴slice的底层实现利用unsafe.Pointer和atomic配合对时间轮进行无锁的原子操作,极大的提升了性能张斌斌(Github账号:binbin0325,公众号:柠檬汁Code)Sentinel-Golang Committer 、ChaosBlade Committer 、 Nacos PMC 、Apache Dubbo-Go Committer。

2023-12-19 09:58:02 1495 1

原创 透过JVM-SANDBOX源码,了解字节码增强技术原理

通常情况下自定义类加载器只需要继承 URLClassLoader,重写 findClass 方法即可,当然也可以直接继承 ClassLoader,不过 ClassLoader 只能加载 classpath 下面的类,而 URLClassLoader 可以加载任意路径下的类。URLClassLoader 是 ClassLoader 的子类,它用于从指向 JAR 文件和目录的 URL 的搜索路径加载类和资源。也就是说通过 URLClassLoader 就可以加载指定 jar 中的 class 到内存中。

2023-12-15 10:17:43 1979

原创 Java即时编译(JIT)原理与调优

Just-In-Time (JIT) 编译器是JVM运行时环境的一个重要组件,本文主要介绍了即时编译中的client,server以及分层编译器的原理以及优化手段。通过这些内容有助于对即时编译器加深理解,遇到相关问题时可以有效的分析和排查。在即时编译器中除了经典的client以及server编译器还有新一代的编译器:Graal编译器,它集成了即时编译器和提前编译器的功能感兴趣的可以自行查阅。参考《深入理解Java虚拟机》周志明《JAVA性能权威指南》Scott Oaks。

2023-12-14 10:35:09 3043 1

原创 探索Linux命名空间和控制组:实现资源隔离与管理的双重利器

在 Linux 中,cgroups(Control Groups)是一种用于资源管理和限制进程资源使用的机制。它允许管理员将一组进程组织在一个或多个 cgroups 中,并为每个 cgroup 分配特定的资源限制,如 CPU、内存、磁盘 I/O、网络带宽等。通过 cgroups,可以更好地控制系统中各个进程的资源使用,实现资源隔离和公平共享,防止某些进程占用过多资源导致系统负载过高。在本文中我们深入探讨了Linux命名空间(Namespace)和控制组(Cgroups)这两个关键技术。

2023-12-13 10:06:48 1323 1

原创 同城双活的必修课 - 落地经验与关键挑战解析

同城双活作为一种容灾架构,通过在同一城市建立两个数据中心,以确保在一个数据中心发生故障时,系统能够快速切换到另一个数据中心,从而提高系统的可用性。在部署需要双活的服务时,首先要仔细评估业务的关键性和可用性需求,梳理业务的核心链路是双活的关键抓手,通过将核心链路中的强依赖服务作为重点部署对象,实现最小集的同城双活部署,降低双活成本。除了业务服务双活以外,管控和存储的高可用能力也是故障切换时的关键因素。

2023-12-12 09:44:51 2187

原创 探索容灾架构演进之路-从单点到异地多活

本文简要介绍了几种容灾架构的类型和它们各自的优缺点。容灾架构的选择在于平衡可用性需求和成本之间的关系,并不存在一种完美的架构,而是应该根据业务发展的阶段逐步演进容灾架构,避免陷入过度设计和资源浪费的困境。理性地选择最适合当前业务阶段的架构,并在业务发展中不断进行迭代,是建立强健容灾体系的关键。接下来的问题是如何根据当前架构进行变革和实施。这个过程充满了挑战和困难,需要认真应对。在下一篇文章中,我们将深入探讨同城双活容灾架构在实际落地中所面临的困难和挑战,并提供相应的解决方案。

2023-12-12 09:41:46 1285

空空如也

空空如也

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

TA关注的人

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