6月份的时候,群里有一个小伙伴分享了一道面试题,如下图: 趁着下班的功夫,拆解下这道面试题 可以按顺序添加任意节点形成一个任务链 链表且有序 或者数组(考虑到数组的扩容,直接pass调,用有序链表LinkedList) 添加任意节点(可以指定索引添加) 任务需要按顺序执行,同一个节点可能有多个任务(可以并行执行) 线程池执行 同一个节点的任务,广度优先,可以利用Queue 节点完成可以指定任意个数 Queue需要包装起来 同时需要计数,直接利用CountDownLatch 每个节点都可能失败,失败后可以通过接口进行…

2022/08/25 0条评论 779点热度 0人点赞 阅读全文

昨天刚写了 可编排策略在交易系统的应用,今天小伙伴就给我提了个需求。 背景 最近由于新业务的需要,需要对原有工单的推单逻辑进行变动。我是想着尽可能不对原有逻辑进行改动,毕竟业务还一直在跑,就开启了一个小模块进行代码的组合。 在设计评审中,我一直强调要设计的灵活些。 校验规则一定要原子化,然后可编排在任何一处场景。校验的的入参和出参必须抽取,并标准化。 直接把我昨天写的文章扔过去了。 然后就差一个状态机了,得我就把框架搭起来。 设计 工单的流转完全可以状态驱动,如果发现两个状态都指向了一个处理逻辑,那就说明,你需要加…

2022/08/24 0条评论 676点热度 0人点赞 阅读全文

背景 在2019年的时候,由于组织架构变更,我接手了交易板块。接手后开始找之前的产品、开发沟通了解下这块有什么问题。 综合了下有以下问题: 需求积压严重,开发列了满满一小本子(开发); 需求提出方多,经常功能打架,然后就复制出来了一套(涉及的业务线业比较多)(开发); 需求处理慢(产品); 进入交易系统太慢(1~3秒),好多用户跳出(产品); 生产经常出现各种问题,开发解决速度慢(产品); 产品链路数据无法统计,只能分析出最终结果,具体哪块转化率低,无法统计(产品); 用户转化成本过高(风控); 动一块功能,所有的…

2022/08/24 0条评论 634点热度 0人点赞 阅读全文

[TOC] 基础概念 为什么要区分内核空间和用户空间? 早期是不区分内核和用户的,带来的问题是程序可以访问任意内存空间,如果程序不稳定,容易把系统搞崩溃。 后来按cpu指令的重要程度对指令进行了分级,一共4个级别:Ring0~Ring3,linux只使用了Ring0和Ring3两个级别; 用户态使用Ring3级别运行,只访问用户空间,Ring0运行在内核态,可以访问任何程序空间 内核空间 linux系统内核运行的空间 主要提供进程调度、内存分配、连接硬件资源等 用户空间 提供给应用程序的空间 不具备访问内核空间资源…

2022/08/04 0条评论 784点热度 0人点赞 阅读全文

背景 今天群里有个小伙伴问rehash的事。翻看下源码,解密下rehash。 我们小了解下rehash是什么 rehash有两个目的: (扩容)扩容防止hash冲突后,形成链表带来的性能下降,时间复杂度提升(5倍容量后才扩容); (缩容)大量key被回收后,大量的空闲空间,通过rehash节省空间(1/10以下使用量才缩容); redis为了防止大的dict rehash的时候影响性能,使用了渐进式rehash(并不是一下子执行完,而是通过周期性能任务或访问dict的时候执行搬迁) 我们先把redis的数据结构摆上…

2022/03/27 0条评论 953点热度 1人点赞 阅读全文

aof相关配置 aof-rewrite-incremental-fsync yes # aof 开关,默认是关闭的,改为yes表示开启 appendonly no # aof的文件名,默认 appendfilename "appendonly.aof" # aof刷数据的策略,有no/everysec/aways appendfsync everysec no-appendfsync-on-rewrite no # aof超出配置大小的比例,模式是100%,可以理解为阈值 auto-aof-re…

2022/03/18 0条评论 1052点热度 0人点赞 阅读全文

整理资料时,发现几年前的整理的问题问题排查手册,分享下。 生产问题处理的基本原则: 第一时间恢复业务(重点) 重启解决不了的问题,能回滚就回滚 如果业务不可逆,才是找问题的解决的时候(一旦到了这里,说明,大版本改动,没有做Bplan) 恢复业务后再去分析问题 执行top命令 重点查看 load averag 设 A(0.41近5分钟)B(0.32 近10分钟)C(0.32 近15分钟) 如:0.41 代表近5分钟的load值,第一个0.32 代表近10分钟的load值,第二个0.32代表近15分钟的load值; 假…

2022/02/28 0条评论 905点热度 0人点赞 阅读全文

这篇文章算是对之前系列的增强,将spring启动流程、@Configuration配置加载分析 、feign构建与调用全流程分析、hystrix源码分析 整体用两张图片串联起来。 feign 全流程分析 图片中主要分为以下几步: 从项目启动; refresh刷新上下文 解析 举例feign的装配,也可以看hystrix的装配(feign通过EnableAutoConfiguration自动装配),hystrix装配(用EnableAutoConfiguration和EnableCircuitBreaker),将Fe…

2022/01/14 0条评论 784点热度 0人点赞 阅读全文

在我计算key个value的空间的时候,发现我使用命令获取的和自己算的总是对不上。比如 命令行执行 local:0>set 5ycode yxkong "OK" local:0>OBJECT ENCODING 5ycode "embstr" local:0>DEBUG OBJECT 5ycode "Value at:0x7f9dc6a0e180 refcount:1 encoding:embstr serializedlength:7 lru:14…

2022/01/08 0条评论 994点热度 0人点赞 阅读全文

今天在拿U盘拷贝一个东西,发现了16年的一个工作笔记。我记得我是11月17日入职,入职以后就开始处理各种问题。简单的扫描了一眼,发现了一些问题,当时作为核心开发,视界还是不够宽。 1,一直在处理问题,遇到一个处理一个,并没有沉淀成知识推广出去; 2,缺少培养人的思维; 3,缺少规范流程; 4,当时没有就那些问题进行深入研究; 那个时候是真拼,除了保证自己有很高效率,还处理了这么多组内的问题,不过也是因为那两年的积累,才能在后来形成各种的规范和checklist。 时间 问题 备注 2015/11/18 修改协议空指…

2021/12/30 0条评论 802点热度 0人点赞 阅读全文
123458