
架构
文章平均质量分 91
木棉上的光
公众号:不止于Java
Github:https://github.com/cyxpdc?tab=repositories
邮箱:1142439493@qq.com
展开
-
读《许式伟的架构课》有感
1 架构应该是全貌的,从计算机组合原理、操作系统到存储、后端设计、前端设计等等,包括事后处理,如服务的治理,监控等2 开闭原则其实可以理解为“只读”todo原创 2020-11-25 20:48:07 · 730 阅读 · 2 评论 -
《从零开始学架构》十三:重构
架构师需要具有5项技能:沟通,判断,技术,管理,决策相比全新的架构设计来说,架构重构对架构师的要求更高,主要体现在:业务已经上线,不能停下来关联方众多,牵一发动全身旧架构的约束业务上要求架构师能够说服产品经理暂缓甚至暂停业务来进行架构重构;团队上需要架构师能够与其他团队达成一致的架构重构计划和步骤;技术上需要架构师给出让技术团队认可的架构重构方案。重构时要做好预备方案,保证新旧...原创 2019-10-23 11:32:36 · 394 阅读 · 0 评论 -
《从零开始学架构》十二:架构模板
互联网的标准技术架构:1 互联网架构模板:“存储层”技术1.1 SQL随着互联网业务的发展,性能要求越来越高,必然要面对一个问题:将数据拆分到多个数据库实例才能满足业务的性能需求复杂度:数据如何拆分、数据如何组合?互联网公司流行的做法是业务发展到一定阶段后,就会将这部分功能独立成中间件,中小公司则建议使用开源方案假如公司业务继续发展,规模继续扩大,此时一般都会在 SQL 集群上构建 ...原创 2019-10-23 11:30:14 · 536 阅读 · 0 评论 -
《从零开始学架构》十一:技术演进
1 技术演进的方向作为架构的实践者,必须及时跟进新的技术体系,同时需要慎重考虑引入新的内容,要想清楚新技术引入的必要性、能在短期带来的什么收益、能解决什么问题,同时还需要以观察者的角度来看业界大厂的实践,同时思考他们为什么要这么做,对于以后改进设计很有帮助对于架构演进来说是有成本的,在准备改变之前要想明白的一个事就是这么做的成本是什么,会带来什么样的收益,当前的团队规模是否能稳定驾驭需要跳出...原创 2019-10-23 11:26:41 · 370 阅读 · 0 评论 -
《从零开始学架构》十: 微服务和微内核架构
1 深入理解微服务架构1.1 对比SOA1 服务粒度:整体上来说,SOA 的服务粒度要粗一些,而微服务的服务粒度要细一些。2 服务通信:SOA 采用了 ESB 作为服务间通信的关键组件,负责服务定义、服务路由、消息转换、消息传递,总体上是重量级的实现;微服务推荐使用统一的协议和格式,例如,RESTful 协议、RPC 协议,无须 ESB 这样的重量级实现,且仅仅做消息传递,对消息格式和...原创 2019-10-23 11:25:50 · 2377 阅读 · 1 评论 -
《从零开始学架构》九:可扩展架构的基本思想和模式
1 可扩展架构的基本思想和模式架构可扩展模式:分层架构、SOA 架构、微服务和微内核等所有的可扩展性架构设计,背后的基本思想都可以总结为:有建设性地拆;将原本大一统的系统拆分成多个规模小的部分,使得软件系统变得更加优美(具备更好的可扩展性),在扩展时只修改其中一部分即可,无须整个系统到处都改,通过这种方式来减少改动范围,降低改动风险;合理的拆分,还能够强制保证即使程序员出错,出错的范围也不...原创 2019-10-23 11:21:14 · 577 阅读 · 0 评论 -
《从零开始学架构》八:高可用之异地多活和接口故障
1 业务高可用的保障:异地多活架构高可用计算架构和高可用存储架构,其本质的设计目的都是为了解决部分服务器故障的场景下,如何保证系统能够继续提供服务。但在一些极端场景下,有可能所有服务器都出现故障。例如,典型的有机房断电、机房火灾、地震、水灾……这些极端情况会导致某个系统所有服务器都故障,或者业务整体瘫痪,而且即使有其他地区的备份,把备份业务系统全部恢复到能够正常提供业务,花费的时间也比较长,可...原创 2019-10-23 11:20:28 · 511 阅读 · 0 评论 -
《从零开始学架构》七: 高可用计算和存储
存储高可用方案的本质都是通过将数据复制到多个存储设备,通过数据冗余的方式来实现高可用,其复杂性主要体现在如何应对复制延迟和中断导致的数据不一致问题。高可用存储方案需要从以下几个方面去进行思考和分析:数据如何复制?各个节点的职责是什么?如何应对复制延迟?如何应对复制中断常见的双机高可用架构:主备、主从、主备 / 主从切换和主主。1 高可用存储架构:双机架构1.1 主备复制主备...原创 2019-10-23 11:19:22 · 411 阅读 · 0 评论 -
《从零开始学架构》六:高可用理论
1 CAP理论1.1 第一版定义对于一个分布式计算系统,不可能同时满足一致性(Consistence)、可用性(Availability)、分区容错性(Partition Tolerance)三个设计约束。一致性::所有节点在同一时刻都能看到相同的数据。可用性:每个请求都能得到成功或者失败的响应。分区容错性:出现消息丢失或者分区错误时系统能够继续运行。1.2 第二版定义在一个分布式系...原创 2019-10-23 11:15:54 · 350 阅读 · 0 评论 -
《从零开始学架构》五:高性能负载均衡
1 高性能负载均衡:分类及架构当单服务器的性能无法满足业务需求时,就需要设计高性能集群来提升系统整体的处理性能。高性能集群的复杂度主要体现在任务分配,需要设计合理的任务分配策略,将计算任务分配到多台服务器上执行。需要增加一个任务分配器,以及为任务选择一个合适的任务分配算法.常见的负载均衡系统包括 3 种:DNS 负载均衡、硬件负载均衡和软件负载均衡1.1 DNS 负载均衡一般用来实现地...原创 2019-10-23 11:14:42 · 2052 阅读 · 0 评论 -
《从零开始学架构》四:高性能服务器
高性能服务器架构设计主要集中在两方面:尽量提升单服务器的性能,将单服务器的性能发挥到极致。如果单服务器无法支撑性能,设计服务器集群方案。除了以上两点,最终系统能否实现高性能,还和具体的实现及编码相关。但架构设计是高性能的基础,如果架构设计没有做到高性能,则后面的具体实现和编码能提升的空间是有限的。架构设计决定了系统性能的上限,实现细节决定了系统性能的下限。1 单服务器高性能模式关...原创 2019-10-23 11:13:45 · 361 阅读 · 0 评论 -
《从零开始学架构》三:高性能数据库
1 高性能数据库集群1.1 读写分离目的:分散数据库读写操作的压力基本原理:将数据库读写操作分散到不同的节点上复杂度:主从复制延迟和分配机制1.1.1 主从复制延迟带来的问题:如果业务服务器将数据写入到数据库主服务器后立刻(1 秒内)进行读取,此时读操作访问的是从机,主机还没有将数据复制过来,到从机读取数据是读不到最新数据的,业务上就可能出现问题。常见解决方法:1 写操作...原创 2019-10-23 11:12:01 · 668 阅读 · 0 评论 -
《从零开始学架构》二:架构设计流程
1 架构设计流程1.1 第一步:识别复杂度按照排查法来判断:是否需要高性能、是否需要高可用、是否需要高扩展、成本是否过高、安全是否要加强、规模是否过多这一步是“万事开头难”,考察的是架构师的经验;而识别出了复杂度之后,接下来的工作就是翻阅资料,考察架构师技术功底的时候了1.2 第二步:设计备选方案确定了系统面临的主要复杂度问题,方案设计有了明确的目标后,就可以开始真正进行架构方案设计了...原创 2019-10-23 11:08:43 · 647 阅读 · 0 评论 -
《从零开始学架构》一:基础架构
keeplived和zookeeper的对比:https://blog.youkuaiyun.com/vtopqx/article/details/79066703架构设计的关键思维是判断和取舍,程序设计的关键思维是逻辑和实现。1 架构是什么系统:系统泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能单独完成的工作的群体关联:系统是由一群有关联的个体组成的,没有关联的个体堆在...原创 2019-10-23 11:07:54 · 5297 阅读 · 0 评论