随笔分类 -  22-Q1

摘要:what: 产品架构的目的: 梳理产品思路,从整体上把握产品的发展方向,把控产品的功能重点(卖点)。它决定了产品必须要实现的功能,以及什么时间必须完成的功能。即决定了产品的发展路径。 产品架构解决的是业务问题,而非功能问题。即该架构只会框定该产品要解决哪些业务问题,取得哪些成果,以及需要哪些数据支撑 阅读全文
posted @ 2022-04-01 21:56 修心而结网 阅读(2593) 评论(0) 推荐(0)
摘要:what: 架构就是对结构和组件的描述,可以让大家快速理解整个体系,指导一系列的细节设计。针对不同的视角维度,我们想要表达的结构和组件是不同的,因此存在不同的架构描述。如下图: 常见的一些架构维度: 方案架构,描述我们向客户提供的东西是什么样子的,怎么解决客户对应的问题; 业务架构,描述我们要做一些 阅读全文
posted @ 2022-03-29 23:18 修心而结网 阅读(537) 评论(0) 推荐(0)
摘要:why: raft算法中,副本数据是以日志的形式产生的。即leader收到客户端的写请求后,处理写请求的过程就是:日志复制和提交的过程。 what: 日志格式: 日志是由日志项组成的,包括:用户指令(Command),索引值(log index),任期编码(term)。具体如下: 指令:一条由客户端 阅读全文
posted @ 2022-03-21 23:57 修心而结网 阅读(236) 评论(0) 推荐(0)
摘要:why: 栗子:假设一个人要从 A 银行向 B 银行进行跨行转账 100 元。 希望:两个操作( -100 和 + 100),它们是一个事务, 要么同时成功, 要么同时失败 。即:原子性的提交协议(Atomic Commit Protocol) what: 原子性提交协议(有2个特征): 安全性:任 阅读全文
posted @ 2022-03-17 23:46 修心而结网 阅读(137) 评论(0) 推荐(0)
摘要:what: raft是分布式的一致性协议(Consensus),其相对pasox更加简单。用来保障servers上副本一致性的一种算法。 一致性协议是为了确保容错性,也就是即使系统中有一两个服务器当机,也不会影响其处理过程 how: 确保一致性的核心思想: 采用选举机制,参选者需要说服大多数选民(服 阅读全文
posted @ 2022-03-16 23:30 修心而结网 阅读(2087) 评论(0) 推荐(1)
摘要:what: 崩溃恢复:即使在数据库宕机的情况下,也不会出现操作一半的情况; bin log :是server层的归档日志,不足以实现崩溃恢复(crash-safe); redo log :是物理日志,具有崩溃恢复的能力; diff: 1、适用对象: bin log: 是 MySQL 的 Server 阅读全文
posted @ 2022-03-10 22:50 修心而结网 阅读(1001) 评论(0) 推荐(1)
摘要:DDD领域驱动设计通常会包含战略设计和战术设计两部分: 战略设计:重业务建模,以业务视角,拆分领域,通过事件风暴(从发散到收敛过程),梳理业务并构建领域模型,这块过程会涉及业务人员、产品人员、架构师等多方参与; 战术设计:重落地实现,以构建的领域模型,建立了领域模型的边界与上下文,也就确认了微服务的 阅读全文
posted @ 2022-03-07 23:32 修心而结网 阅读(1135) 评论(0) 推荐(0)
摘要:what: DDD:全称领域驱动设计; 核心思想:由领域模型(即结合领域知识和业务需求构建的抽象或模拟)来驱动系统设计,而非数据字典(DB表字段、ES Mapper字段等等)来驱动。 具体文章:https://www.cnblogs.com/sfzlstudy/p/15963309.html MVC 阅读全文
posted @ 2022-03-04 11:26 修心而结网 阅读(2083) 评论(0) 推荐(0)
摘要:why 通过对DDD结构的了解,方便在服务化实践中更好的操作。 what 松散4层架构: 结构概图如下: User Interface为用户界面层(或表示层),也可理解为对外接口层。负责向使用者显示信息和解释用户命令; Application为应用层,定义软件要完成的任务,并且指挥领域对象来解决问题 阅读全文
posted @ 2022-03-04 10:37 修心而结网 阅读(1068) 评论(0) 推荐(0)
摘要:why: 在MVC走红之前出现过三层架构模式,三层架构模式。而在MVC走红后,大家很多都认为MVC只是三层架构的一个新的叫法。 what: 三层架构: 分别是:UI层,表示用户界面;BLL层,表示业务逻辑;DAL层,表示数据访问; MVC: View层是界面; Model层是业务逻辑; Contro 阅读全文
posted @ 2022-03-04 10:26 修心而结网 阅读(103) 评论(0) 推荐(0)
摘要:innodb和myisam的diff: 参考文章:https://www.cnblogs.com/sfzlstudy/p/15944832.html what: myisam: 索引文件和数据文件是分开的。索引文件中叶子结点的data部分,仅仅是数据记录的地址。它的主索引和辅助索引在结构上没有区别, 阅读全文
posted @ 2022-02-28 13:08 修心而结网 阅读(77) 评论(0) 推荐(0)
摘要:Diff: 1、事务:innodb支持;myisam不支持。innodb默认每条sql为一个事务,这样操作会影响性能,所以建议自己根据业务,使用“begin……commit”来自己管理事务; 2、外键:innodb支持;myisam不支持。注意:该特性会导致innodb表向myisam转失败; 3、 阅读全文
posted @ 2022-02-28 11:25 修心而结网 阅读(50) 评论(0) 推荐(0)
摘要:关联文章:https://www.cnblogs.com/sfzlstudy/p/15921353.html why(背景) unix中的5种常见IO模型: [1] blocking IO - 阻塞IO [2] nonblocking IO - 非阻塞IO [3] IO multiplexing - 阅读全文
posted @ 2022-02-25 17:39 修心而结网 阅读(102) 评论(0) 推荐(0)
摘要:what: 中间人攻击(man in the middel attack, MITM),通过拦截正常的网络通信,并进行数据改写或者嗅探,而通信双方无感知。 where(场景): 假设爱丽丝(Alice)与鲍勃(Bob)通信,马克里(Mallory)中间嗅探。如图: 步骤如下: 1、爱丽丝发送给鲍伯一 阅读全文
posted @ 2022-02-25 16:45 修心而结网 阅读(244) 评论(0) 推荐(0)
摘要:why: “同步-异步-阻塞-非阻塞”这四个名词都很熟悉,但是每次又说不清它们之间具体的区别。本次特意深入、全面的理解一下。 demo: 以老张烧水为例。 1、老张用普通的水壶烧水,同时自己在火炉旁等待水开 —— 同步阻塞式; 2、老张用普通的水壶烧上水后,去看电视,没看一会就去看一下水开了没有 — 阅读全文
posted @ 2022-02-22 00:32 修心而结网 阅读(244) 评论(0) 推荐(0)
摘要:what: ARP,全称Address Resolution Protocol,地址解析协议。是根据IP地址获得对应物理MAC地址的一种TCP/IP协议。 where: 机器发送数据时,会先从自己的ARP缓存中,获得目标IP对于的物理MAC地址。如果没有或过期,那么就是向自己所在局域网的机器,广播发 阅读全文
posted @ 2022-02-19 17:25 修心而结网 阅读(613) 评论(0) 推荐(0)
摘要:why: 为了系统的高可靠性,一般采用两台机器同时完成一项功能。比如数据库服务器,平常只有一台机器对外提供服务,另一台机器作为热备;当这台机器出现故障时,自动动态切换到另一台热备的机器。 而为了快速切换主备,可以考虑使用VIP技术(Virtual IP Address,VIP就是一个未分配给真实机器 阅读全文
posted @ 2022-02-18 18:03 修心而结网 阅读(2476) 评论(0) 推荐(0)
摘要:what: SLA,全称service-level agreement,也称服务等级协议、服务水平协议。是服务提供商与客户之间定义的正式承诺。对互联网公司来说,就是网站服务可用性的一个保证。 SLA主要包含2部分,分别是:SLI和SLO; SLI定义的是测量指标。在确定测量的具体指标时,需要做到该指 阅读全文
posted @ 2022-02-18 17:25 修心而结网 阅读(410) 评论(0) 推荐(0)
摘要:why(背景): HTTP 原本为无状态。后来随着web的兴起,纯浏览的能力,不能满足需求了。例如:网购的兴起,需要记录用户的购物车记录。于是就有了Cookie和session的诞生。 what: Cookie:类型为“小型文本文件”。为了辨别用户身份,进行 Session 跟踪而储存在用户本地终端 阅读全文
posted @ 2022-02-17 20:22 修心而结网 阅读(51) 评论(0) 推荐(0)
摘要:where(场景) 1、csrf的服务端token # 首先生成真实的raw_token并存到session或cookie中 def real_csrf_token(session) # :doc: session[:_csrf_token] ||= SecureRandom.base64(AUTH 阅读全文
posted @ 2022-02-17 19:02 修心而结网 阅读(235) 评论(0) 推荐(0)