OAP 后端几十个模块怎么拼成一个可运行的整体?SkyWalking 没用 Spring,自己写了一套极简模块框架:ModuleDefine(契约)+ ModuleProvider(实现)+ 标准 Java SPI 发现 + 拓扑排序启动。这篇拆解这套骨架,跟一遍 OAP 的 main 启动流程,最后看 CoreModule 这个"大脑"里装了什么。理解了它,后面所有模块的代码都能对号入座。...
Apache SkyWalking 是国内最成熟的开源 APM 系统。这篇顺着一条 trace 从 Agent 上报到 UI 展示的完整旅程,把 OAP 后端的接收、解析、规则编译、聚合、存储、查询六大层串一遍,建立全局观。读完你能回答:数据从哪来、中间被谁加工、最后落到哪、怎么被查出来。后面 11 篇都是这条链上某一环的放大。...
力扣官方精选 150 题,按 21 个专题整理。每题:思路脉络 + Mermaid 图 + Java 代码 + 复杂度 + 易错点。 ...
敏感词检测https://github.com/houbb/sensitive-word.git汉字转拼音https://github.com/houbb/pinyin中文分词https://github.com/houbb/segment简繁转换https://github.com/houbb/o...
垃圾收集算法标记-清除将存活的对象进行标记,然后清理掉未被标记的对象。不足:标记和清除过程效率都不高;会产生大量不连续的内存碎片,导致无法给大对象分配内存。标记-整理让所有存活的对象都向一端移动,然后直接清理掉端边界以外的内存。复制将内存划分为大小相等的两块,每次只使用其中一块,当这一块内存用完了就...
AC代码class Solution { /** * 因为题目说链表节点值是不重复的,所以可以用HashSet存储数组中元素,便于查询 * flag 变量表示当前元素是否属于某个集合,true: 当前元素属于某个集合(组件), false: 不属于某个集合(组件) * ...
给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包围。...
给你一个 m x n 的矩阵 board ,由若干字符 'X' 和 'O' ,找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充。...
给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。...
给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。 对于给定的输入,保证和为 target 的不同组合数少于 150 个。...