随笔分类 - 架构 / HZ架构
摘要:一、架构师成长指南 1、架构师成长关键 想成为架构师,必须系统的学习架构方法论和技术。 架构思维 VS 程序思维:程序思维是指翻译、逻辑、实现的叠加,也就是将业务逻辑翻译成为代码实现;架构思维是指判断、取舍、创新的叠加,也就是判断业务复杂度,对架构进行取舍和创新 架构师的成长路线:工程师 -> 高级
阅读全文
摘要:一、架构重构技巧 1、架构重构定义 代码重构 定义:对软件代码做任何改动以增加可读性或者简化结构而不影响输出结果。 目的:增加可读性、增加可维护性、可扩展性。 关键点:不影响输出;不修正错误;不增加新的功能性。 特别要强调的是,在代码重构的时候,如果看到代码的实现逻辑不合理,想要加一个逻辑或者删除一
阅读全文
摘要:一、单机高性能网络模型 1、传统网络模型 传统网络模型主要有PPC和TPC,以及PPC变种的prefork和TPC变种的prethread。 (1)PPC 和 prefork 示意: PPC是Process per connection的缩写,即每个连接一个进程,顾名思义,来一个连接就需要fork一
阅读全文
摘要:在软件开发领域,「异地多活」是分布式系统架构设计的一座高峰,很多人经常听过它,但很少人理解其中的原理。 异地多活到底是什么?为什么需要异地多活?它到底解决了什么问题?究竟是怎么解决的? 这些疑问,想必是每个程序看到异地多活这个名词时,都想要搞明白的问题。 一、系统可用性 要想理解异地多活,我们需要从
阅读全文
摘要:一、高可用架构三大核心原理 1、FLP 不可能原理 FLP Impossibility(FLP 不可能性)是分布式领域中一个非常著名的定理,定理的论文是由 Fischer, Lynchand Patterson 三位作者于1985年发表。其表示在基于消息传递的异步通信场景,即使只有一个进程失败,也没
阅读全文
摘要:一、微服务概述 1、SOA: SOA的核心内容是ESB,全称是 Enterprise Service Bus,SOA 通过 ESB 将企业中各个不同的异构服务连接在一起,是 SOA 架构的核心,但是SOA架构是成也 ESB,败也 ESB。 ESB的目的是松耦合马也就是减少各个服务间的依赖和互相影响,
阅读全文
摘要:一、延时 从事件发生到结果所需的时间就叫延迟,常见延时 可以看出,普通磁盘是有多慢,跟SSD差了一个数量级,这个数字可以告诉我们,提升数据库服务器硬件配置,就能使性能上一个台阶。 目前最快的SSD是Intel Optane(英特尔傲腾),延迟低到小于10微妙,目前已有项目基于SSD实现海量数据的缓存
阅读全文
摘要:一、多级缓存架构 1、缓存原理和设计架构 缓存 VS 缓冲: 缓存:英文单词是Cache指位于速度相差较大的两种硬件之间,用于协调两者数据传输速度差异的结构,均可称之为Cache,常见的缓存有,CPU的L1/L2/L3 cache、Linux文件系统的page cache、InnoDB buffer
阅读全文
摘要:一、数据库存储架构 1、数据库读写分离 实现原理: (1)数据库服务器搭建主从集群,一主一从或一主多从 (2)主库负责读写,从库只负责读 (3)主库通过复制将数据复制到从库,每个服务器都存储了全量的数据 (4)业务服务器将读写操作发给主库,将读操作发给从库。 如何判断要使用主从架构: 业务量持续增长
阅读全文
摘要:一、架构师职责 架构师是业务和技术的桥梁,要同时懂业务和技术,很容易两头不讨好(业务会说为什么这也不能做那也不能做,技术有可能会说这个东西你为什么要承诺)。 根据架构设计环分析,架构师要具备判断、拆解、取舍的能力。 判断需要业务理解能力、技术能力、沟通能力; 拆解能力要有技术广度、宽度、深度; 取舍
阅读全文
摘要:一、设计高扩展架构 1、架构设计复杂度模型 一个架构的复杂度可以分为业务复杂度和质量复杂度。 业务复杂度:指业务本身的复杂度,主要体现在难以理解、难以扩展,例如支付宝、保险、金融等 质量复杂度:指的是系统对于高性能、高可用、高扩展等质量要求。 在做架构时,首先要分析系统的复杂度模型。 对于架构复杂度
阅读全文
摘要:一、什么是架构 1、系统与子系统 系统泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能单独完成的工作的群体。它的意思是“总体”、“整体”或“联盟”。 子系统是由一群有关联的个体所组成的系统,多半会是更大系统中的一部分。 系统与子系统样例: 2、模块与组件 模块是一套一致而互相有紧密关
阅读全文