随笔分类 -  架构设计

摘要:评估 Web 架构的关键属性 HTTP 协议应当在以下属性中取得可接受的均衡: 性能 Performance:影响高可用的关键因素 可伸缩性 Scalability:支持部署可以互相交互的大量组件 简单性 Simplicity:易理解、易实现、易验证 可见性 Visiable:对两个组件间的交互进行 阅读全文
posted @ 2020-09-15 09:29 james_cai 阅读(512) 评论(0) 推荐(0)
摘要:一般来说,构建分布式系统的目的一是增加系统容量,二是提高系统的可用性。转换成技术方面,也就是宛成以下两件事。 大流量处理。通过集群技术把大规模并发请求的负载分散到不同的机器上 关键业务保护。提高后台服务的可用性,把故障隔离起来阻止多米诺骨牌效应(雪崩效应)。如果流量过大,需要到业务降级。 说白了就是 阅读全文
posted @ 2019-11-30 11:16 james_cai 阅读(1732) 评论(0) 推荐(0)
摘要:概念 在一个分布式系统(指互相连接并共享数据的节点的集合)中,当涉及读写操作时,只能保证一致性、可用性、分区容错性三者中的两个,另外一个必须被牺牲 Consistency 对某个指定的客户端来说,读操作保证能够返回最新的写操作结果 Availaility 非故障的节点在合理的时间内返回合理的响应(不 阅读全文
posted @ 2019-11-18 12:20 james_cai 阅读(157) 评论(0) 推荐(0)
摘要:广义上讲,凡是位于速度相差较大的两种硬件之间,用于协调两者数据传输速度差异的结构,均可称之为 缓存 是一种常见的空间换时间的性能优化手段 常见案例 Linux MMU 使用LTB来缓存最近虚拟地址和物理地址的映射。 刷视频预缓存下一个视频 HTTP协议 ETag 缓存与缓冲区 缓存区是用于弥补高速设 阅读全文
posted @ 2019-10-29 17:54 james_cai 阅读(293) 评论(0) 推荐(0)
摘要:分布式互斥 对排他性的资源访问方式,称为分布式互斥。而这种被互斥访问的排他性资源,就叫做临界资源 如何访问 霸道总载:集中式算法 优点:直观、简单,信息交互量少、易于实现 问题:协调者会成为系统性能瓶颈;单点故障 增加主备备分,应用比较广泛 民主协商:分布式算法 先到先得、投票全票通过机制 适合节点 阅读全文
posted @ 2019-10-29 11:31 james_cai 阅读(858) 评论(0) 推荐(0)
摘要:池化技术 核心思想空间换时间 最小连接数,最大连接数 主从复制 读多写少,数据冗余,全量拷贝。 主从复制 一般一个主库挂3~5个从库 部署复杂度 从库延迟问题 数据冗余,发送消息队列时多带 使用缓存 读主库 统一访问数据库 中间件:TDDL、DDB 代理层: 分库分表 数据库的写入请求量大造成的性能 阅读全文
posted @ 2019-10-28 10:58 james_cai 阅读(249) 评论(0) 推荐(0)
摘要:通用方法 Scale Out 横向扩展,分而治之,采用分布式布署的方式分流,让每个服务器都承担一部分并发和流量 缓存 使用缓存来提高系统性能,好比“拓宽河道”。任何能够降低响应时间的中间件。缓存思想遍布很多设计领域 异步 在某些场景下,未处理完成先返回,再通知。 高并发系统的演进应该循序渐进,以解决 阅读全文
posted @ 2019-10-28 10:03 james_cai 阅读(440) 评论(0) 推荐(0)
摘要:定义 将相同或相关的程序运行在多台计算机上,从向实现特定目标的一种计算方式 发展动力 对于性能、可用性和扩展性的不懈追求 发展阶段 1. 单兵模式:单机模式 特点:功能、数据集中,便于维护、管理和执行。架构简单,开发快速。对人员要求不高。适用前期阶段 2. 游击队模式:数据并行 对提升单个任务的执行 阅读全文
posted @ 2019-10-22 09:33 james_cai 阅读(393) 评论(0) 推荐(0)