摘要:
what: 产品架构的目的: 梳理产品思路,从整体上把握产品的发展方向,把控产品的功能重点(卖点)。它决定了产品必须要实现的功能,以及什么时间必须完成的功能。即决定了产品的发展路径。 产品架构解决的是业务问题,而非功能问题。即该架构只会框定该产品要解决哪些业务问题,取得哪些成果,以及需要哪些数据支撑 阅读全文
摘要:
what: 架构就是对结构和组件的描述,可以让大家快速理解整个体系,指导一系列的细节设计。针对不同的视角维度,我们想要表达的结构和组件是不同的,因此存在不同的架构描述。如下图: 常见的一些架构维度: 方案架构,描述我们向客户提供的东西是什么样子的,怎么解决客户对应的问题; 业务架构,描述我们要做一些 阅读全文
摘要:
what: 作弊:用欺骗的手段做违法乱纪或者不符合规定的事情。 how: 作弊和“场景、业务规则、意愿”相关。例如:利用“扫村”得到的老人信息注册账户,做人拉人的奖励,在整个过程中,设备、人员信息等都是正常,只是老人并不是意愿参加什么活动。 大体可以按4个体系来看: 按照4要素“设备、用户、行为、意 阅读全文
摘要:
why: raft算法中,副本数据是以日志的形式产生的。即leader收到客户端的写请求后,处理写请求的过程就是:日志复制和提交的过程。 what: 日志格式: 日志是由日志项组成的,包括:用户指令(Command),索引值(log index),任期编码(term)。具体如下: 指令:一条由客户端 阅读全文
摘要:
why: 栗子:假设一个人要从 A 银行向 B 银行进行跨行转账 100 元。 希望:两个操作( -100 和 + 100),它们是一个事务, 要么同时成功, 要么同时失败 。即:原子性的提交协议(Atomic Commit Protocol) what: 原子性提交协议(有2个特征): 安全性:任 阅读全文
摘要:
what: raft是分布式的一致性协议(Consensus),其相对pasox更加简单。用来保障servers上副本一致性的一种算法。 一致性协议是为了确保容错性,也就是即使系统中有一两个服务器当机,也不会影响其处理过程 how: 确保一致性的核心思想: 采用选举机制,参选者需要说服大多数选民(服 阅读全文
摘要:
what: 崩溃恢复:即使在数据库宕机的情况下,也不会出现操作一半的情况; bin log :是server层的归档日志,不足以实现崩溃恢复(crash-safe); redo log :是物理日志,具有崩溃恢复的能力; diff: 1、适用对象: bin log: 是 MySQL 的 Server 阅读全文
摘要:
领域模型:是对具有某个领域边界的抽象。只反映业务,和任何技术实现无关;其不仅能反映领域中的一些实体概念,如货物,书本,应聘记录,地址,等;还能反映领域中的一些过程概念,如资金转账,等;建立正确的领域模型并不简单,需要领域专家、设计、开发人员积极沟通共同努力。 实体:根据eric evans的定义,” 阅读全文
摘要:
DDD领域驱动设计通常会包含战略设计和战术设计两部分: 战略设计:重业务建模,以业务视角,拆分领域,通过事件风暴(从发散到收敛过程),梳理业务并构建领域模型,这块过程会涉及业务人员、产品人员、架构师等多方参与; 战术设计:重落地实现,以构建的领域模型,建立了领域模型的边界与上下文,也就确认了微服务的 阅读全文
摘要:
what: DDD:全称领域驱动设计; 核心思想:由领域模型(即结合领域知识和业务需求构建的抽象或模拟)来驱动系统设计,而非数据字典(DB表字段、ES Mapper字段等等)来驱动。 具体文章:https://www.cnblogs.com/sfzlstudy/p/15963309.html MVC 阅读全文