《流水型 FO》笔记
数据的分类 状态型数据,需要三地五中心容灾,需要强一致性,事务延迟较高。对状态型数据的操作实际上是对同一行记录进行反复操作。 流水型数据,对历史数据依赖较少,每一笔业务相对独立。 基于一定的业务理解和假设,我们可以设计出一套新的模型和存储方案,实现流水型 FO。 部署形态 通常流水型 FO 要求部署三套库。 主库 LFO 库 同城 FO。承担机房级故障。 RFO 库,异地 FO 库。承担区域 数据格式 8 位日期 + 1 位数据版本 + 1 位系统版本 + 3 位系统标识 + 2 位预留 + 2 位 uid + 2 位弹性位 + 8 位 sequence 设计数据格式影响几个问题: 1 当系统发生一笔流水的时候,流水应该落到哪个库里去。 2 当我需要一笔流水时,我应该从哪个库里面查询这笔流水。 有关联关系的单据,如果发生弹性切换,要保证正逆向流程的单据都弹到一个库里。 流水型 FO 方案如何做到业务无感知? ??? 流水型 FO 发生强切的时候如何保证业务业务无损? ???
《结构化的思考、做事、成长》笔记
能力要素 要重点建设的三种能力: 结构化的思维 结构化的工作模式 结构化的能力建设 什么是结构化 structured:建立中心(问题、目标)以中心的核心要素对中心进行分解,形成分类子结构。以一定的范式、流程顺序进行分类子结构的合理分类、减少非关键分类结构;对关键分类子结构进行分析,寻找对策,制定行动计划。 同理,按照逆向的顺序,对多种杂乱的内容,进行分类、剪枝、归纳归总成一个中心,也是结构化。 案例 建立结构化的中心 一个业务需求,通常可以按照两个维度分解为不同的子结构: 1 当前业务需求的目标是什么?(事的维度)。 目标是快速完成上线试一试业务效果:目标事的维度为高效稳定上线。 目标是建立后续业务铺开的基础方案:目标事的维度是强架构设计下的核心与功能拆分方案。 2 为什么需要我来做?(人的维度) 是因为我工作量还有 buffer 所有承担这部分:目标人的维度是完成职能范畴内的工作。 是因为我在这方面技术比较擅长:目标人的维度是利用事情强化自身能力和使用能力把事儿做好。 沿中心上行 对单个业务需求而言,从事、人两个维度建立起的中心即其核心,是最主要部分,建立一颗结构...
《JVM 问题分析处理总结》笔记
知识体系图谱 紧急处理原则 出现问题应该第一时间恢复,恢复过程中如果有余地则要保留问题现场供后面排查定位问题,其基本步骤是: 打印堆栈信息 打印内存镜像 生成core文件 保留gc日志文件 保留业务日志文件 查看JAVA堆内存运行分配 如果有余地,可以做完以上的操作后再重启应用。 实例 实例一 1 查看 gc 日志,评估代际问题。 2 查看访问日志,看看应用吞吐量。 3 用 jstat 查看代际问题。 4 把内存 dump 出来,分析数量最多的对象。 5 分析代码。 6 改善代码。 实例二 1 统计线程总数:ps -eLf | grep java -c 2 看 ulimit -u 3 jstack、gcore 4 改善 jvm 参数
《高可用恢复思路》笔记
遇到线上问题,经常陷入一个误区:一定要找到问题的根因(root cause)。但实际上对线上应用而言,最重要的是恢复可用性,所以在开发设计环境除了完成功能性需求以外,还需要加入非功能性设计的需求: 限流保护。抵挡来自突发流量冲垮整个集群。 降级保护,对调用的服务接口保持警惕,其各种因素导致不可用,可以对齐降级,从而确保核心功能可用。 削峰填谷(traffic shaping),不因突发数据来袭,造成任务消费陡增,造成调用系统的连串抖动。 这些基本的系统保护,是应对未来的各种突发不确定事件的高可用思考。 以上描述的是问题的应对机制设计,问题的发现机制,也需要结构化地考虑,体系化地建设: 发现机制,是我们的眼睛,也是基础。 监控主指标,需要找对业务的主要指标,常见的主指标一般是:RT(响应时间)、总量、成功量、失败量、成功率。 主指标有异常,还要有细分维度(即结果还可以内部 group by aggregation)。 快速恢复 根据监控快速寻找问题发生的方向和位置。 找对恢复的人、恢复的预案。 倾向于选择成本低的恢复手段。---- 并不是所有的恢复都用大招(熔断、限流),大招...
如何进行域划分
1 用户需求场景分析,识别业务全景 use case。这一个阶段重点识别 actor 和 use case。 2 分析模型鲁棒图,识别出业务场景中所有的实体对象。识别边界类(类似 ui)、控制类(类似 controller)和实体类(类似model)三种类型。 3 领域划分,将所有识别出的实体对象进行分类。 比如,主订单、子订单对象和归类到交易域;买家、卖家对象可以归类到会员域。 当然,最终所有的对象是归类到十个域还是二十个域,从理论上看,可以看做一次排列组合过程。只是,我们往往可以根据以往的经验、业务知识,做一个初始的域划分(但不见得是靠谱的)。因此,我们可以认为一个域实际上是一个或多个实体对象的信息集合,并对所管理的实体对象的生命周期进行管理。 4 评估域划分合理性,并进行优化。域划分并一定总是能得到唯一的答案,但可以得到最好的答案。评价一个域划分方案是不是足够好,其实是要根据“高内聚、低耦合”的原则进行评分。这一步就要画时序图了。 时序图的泳道,应该先设计到域颗粒度。可以看到域之间的交互,也就可以看到域之间的交互的复杂度。在绘制过程中,我们可以看域与域之间的调用是否过于频繁...
Differences between Proxy and Decorator Pattern
https://stackoverflow.com/questions/18618779/differences-between-proxy-and-decorator-pattern https://powerdream5.wordpress.com/2007/11/17/the-differences-between-decorator-pattern-and-proxy-pattern/ Decorator Pattern focuses on dynamically adding functions to an object, while Proxy Pattern focuses on controlling access to an object. Relationship between a Proxy and the real subject is typically set at compile time, Proxy instantiates it in some way, whereas Decorator is assigned to the subjec...
所谓解耦
软件设计,必有单元/片段,不管他们叫做系统、层次、模块、类型和方法,都是为了在一个抽象颗粒度上分割复杂度,让我们降低思考的难度,并且进行团队协作。 我们在进行系统交互的时候,要尽量设计单元交叉点通过薄的中间层交互。也就是放弃直接性,拥抱间接性。 间接性的实现,就是契约、接口或者门面/桥接模式。这些实践的使用,可以轻易让我们切换层次之间的实现,而使变动不扩散出去。
正则表达式速记
字符类或者字符集 字符组(character classes) 字符集(character sets) 元字符 metacharacters [abc] A single character of: a, b or c [^abc] Any single character except: a, b, or c [a-z] Any single character in the range a-z [a-zA-Z] Any single character in the range a-z or A-Z ^ Start of line $ End of line 开头结尾:^$,正好对应键盘上的64。 \A Start of string \z End of string . Any single character \s Any whitespace character \S Any non-whitespace character \d Any digit \D Any non-digit \w Any word characte...
同比环比问题
同比比较微观,环比比较宏观。 摘自百度: 同比,是指在相邻时段中的某一相同时间点进行比较; 13年和14年是相邻时段,13年3月和14年3月是这两个相邻时段的同一个时间点,都是3月,这两个时段进行数据对比,就是同比; 环比,则相对更简单,就是相邻时间段的对比,不象同比那样,是在相邻时间段内部的某个相同时间点的对比; 14年4月和14年3月是相邻时间段,这两个时间段的数据都比,就是环比;
关键述职
什么是关键述职 可以决定自己职场命运的述职,一次汇报,就是一个转折点,就是关键述职。 职场不是比拼正确性,而是比拼说服力。 关键述职的误区 把述职当作做了什么的流水账。做了什么不重要,做了什么带来什么价值才重要。一定要解答这个疑问,“所以呢,然后呢”。 把述职当成了邀功大会。只讲价值。 工作成果固然重要,关键能力要看是否有归因和理性思考能力。 方法 So what 找出问题的原因。通过没完没了地问自己,逼迫自己对自己的工作进行深度思考,得出结果,措施。不要怕错。 如何产生这个价值,如何复用这种方法论,如何持续地产生这种价值。 So page 跟公司的战略同步。 不同阶段,重要性是不一样的。 A 求增长 增长期就要看增长率 B 求利润 要看真实效率和投入产出比。 C 求生存,求稳 节衣缩食,勒紧裤腰带过冬。