摘要: 长度最小的子数组 一开始想的是框定一个区间,然后如果大于等于 target,从区间头弹出一个元素,从尾部append进入一个元素,发现并不能覆盖所有的区间 看了题解以后,可以定尾,然后移动头部进行比较 func minSubArrayLen(target int, nums []int) int { 阅读全文
posted @ 2024-01-28 16:47 Paualf 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 设计: get 如何在缓存中,返回关键字的值 O(1) 的时间复杂度,这里我们比较容易想得到是用map 去存储 put 如果key 已经存在,则变更数据,不存在则写入数据 如果插入关键字数量超过 capacity,则逐出最久未使用的关键字 总结下操作: 获取数据比较简单直接从map中判断存在,如果存 阅读全文
posted @ 2024-01-07 18:11 Paualf 阅读(12) 评论(0) 推荐(0) 编辑
摘要: Algorthim: N皇后: 思路: step: 先放第一排,有n种放置的可能性 然后放第二排,放第二排的时候需要检查是否可以放置,如果不可以放置,则continue func solveNQueens(n int) [][]string { bd := make([][]string,n) fo 阅读全文
posted @ 2023-12-31 17:33 Paualf 阅读(2) 评论(0) 推荐(0) 编辑
摘要: Algthrom: 组合总和: func combinationSum(candidates []int, target int) [][]int { res := make([][]int,0) path := make([]int,0) dfs(candidates,target,0,path, 阅读全文
posted @ 2023-12-23 17:09 Paualf 阅读(2) 评论(0) 推荐(0) 编辑
摘要: ### 降级: 减少工作量,丢弃不重要的请求。 确定具体采用哪个指标作为流量评估和优雅降级的决定性指标: 如 CPU、延迟、队列长度、线程数量、错误等 当服务进入降级时,需要执行什么动作? 流量抛弃或者优雅降级应该在服务的哪一层实现?是否需要在整个服务的每一层都实现,还是可以选择某个高层面的关键节点 阅读全文
posted @ 2023-08-27 14:16 Paualf 阅读(121) 评论(0) 推荐(0) 编辑
摘要: ## 过载保护 ### 令牌桶算法 存放固定容量令牌的桶,按照固定速率往桶里添加令牌 https://pkg.go.dev/golang.org/x/time/rate ### 漏桶算法 作为计量工具(The Leaky Bucket Algorithm as a Meter)时,可以用于流量整形( 阅读全文
posted @ 2023-08-13 17:44 Paualf 阅读(80) 评论(0) 推荐(0) 编辑
摘要: ## 隔离 本质上是对系统和资源进行分割,从而实现当系统故障时能限定传播范围和影响范围,即发生故障后只有出问题的服务不可用,保证其他服务仍然可用。 ### 服务隔离 #### 动静隔离 mysql 表中的bufferpool 频繁过期,隔离动静表。如 稿件的基本信息,作者、封面等和稿件的播放、点赞 阅读全文
posted @ 2023-07-30 16:37 Paualf 阅读(90) 评论(0) 推荐(0) 编辑
摘要: ### 现象 某一个周末我们的服务 oom了,一个比较重要的job 没有跑完,需要重跑,以为是偶然,重跑成功,因为是周末没有去定位原因 又一个工作日,它又oom了,重跑成功,持续观察,job 在oom之前竟然占用了30g左右(这里我们的任务比较大的数据量都在内存中计算,所以这里机器内存量大一点) 应 阅读全文
posted @ 2023-07-23 18:03 Paualf 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 整洁的代码只做好一件事: 每个函数、每个类和每个模块都全身神贯注于一件事。 这里结合自己之前代码设计和处理的时候想一下子把整体都思考完全,无论是思维还是代码设计都不是好的方法。 ### 方法 减少重复代码 提供表达力 提早构建简单抽象 ### 有意义的命名 ### 函数 函数应该做一件事,做好这件事 阅读全文
posted @ 2023-07-02 16:53 Paualf 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 上线上了大半天,原因:因为慢查询了导致跑不出来,后来同事帮忙看了下发现慢查询了,程序hang住了 select * from table where cdate = '2023-02-01' and id > ? order by id limit 500 这条sql线上执行了300ms,一共900 阅读全文
posted @ 2023-02-05 10:53 Paualf 阅读(19) 评论(0) 推荐(0) 编辑