架构师的专项修炼
文章平均质量分 93
以实战为线索,进行架构师的专项修炼
周壮
天不言自高,地不言自厚,人不言自能,水不言自流
展开
-
11 致未来的架构师
软件技术人员在职业生涯中每一次跨越阶层的技术进步,其实都要超越所在阶层的其他 80% 的人,所以这个过程其实是非常艰难的。那么如何去超越同阶层的人,持续不断地获得进步,有几点实践中要注意的事情。第一是要勇于承担责任,因为通过承担责任才能够真正的洞悉问题和方法,才能够真正的了解自己所在的环境,因为人毕竟是在环境中生活和工作的。第二持续的训练,通过持续的训练,获得更高层次的技术的感悟和接受能力,但是这种训练是不能重复的。原创 2024-06-14 18:56:29 · 628 阅读 · 0 评论 -
10 架构实战案例分析
本节课主要讨论了三种不同的系统架构案例。互联网应用系统架构,看一个互联网应用系统的架构是如何设计的,如何利用各种各样的分布式技术,构建一个分布式互联网系统。分布式数据库的架构设计案例,它的架构考量点主要是什么,一个分布式的数据库如何实现高可用、高性能、可伸缩等一系列的分布式特性的。编程框架的架构设计,开发工程师每天在编程的时候都要使用编程框架进行开发。那么架构师除了要做这种整体的架构,还要考虑如何为开发工程师去设计一个易用强大的编程框架。原创 2024-06-14 07:55:16 · 1017 阅读 · 0 评论 -
09 系统的安全架构设计
回顾本节课内容如下。主要的几种攻击方式,XSS 攻击、SQL 注入攻击和 CSRF 攻击。这三种攻击方式占了 Web 攻击 90% 以上的攻击。解决方案有消毒、SQL 预编译参数绑定、验证码等常用手段,而所有这些攻击都可以通过使用统一的 Web 应用防火墙去解决。加密的几种常用算法:单向散列加密,主要应用场景是用户密码加密、存储;还有对称加密,加密密钥和解密密钥相同,主要是对敏感信息进行加密,比如信用卡;非对称加密的主要应用场景就是 HTTPS,它的加密密钥和解密密钥是不同的。原创 2024-06-13 20:42:19 · 937 阅读 · 0 评论 -
08 高可用系统架构设计
系统可用性是通过可用性指标来进行衡量的。当我们说一个系统 4 个 9 可用的时候,就是指这个系统 99.99% 的时间都是可用的,也就意味着一年中的不可用时间只占 53 分钟。为了对故障进行管理和考核,很多互联网企业还引入了故障分这样一个手段。保障系统高可用的主要策略有应用服务器的负载均衡、数据库的备份与失效转移、消息队列隔离,限流、降级以及异地多活的多机房架构。除了这些高可用的架构策略,还通过一系列的自动化手段,实现运维的高可用,包括自动化测试、自动化监控,预发布以及灰度发布这些手段。原创 2024-06-13 07:54:22 · 1050 阅读 · 0 评论 -
07 高性能系统架构设计
性能优化的前提和基础是性能测试,通过性能测试,了解系统的性能特性才能进行优化,而性能测试主要就是要测试出来系统的性能曲线,通过对性能曲线进行分析,了解系统的瓶颈点和系统资源消耗,再进行性能优化。性能优化的时候需要建立一个整体的思维,要从整体系统的层面去思考优化,而不只是仅仅关注自己的代码,或者是自己设计的架构。最上层的优化是硬件优化,包括骨干网络、数据中心服务器硬件这样的优化;然后是基础组件的性能优化,包括操作系统、虚拟机、应用中间件这几个方面;这之后才是架构的优化,包括核心的三板斧,缓存、异步和集群;原创 2024-06-11 22:12:10 · 1514 阅读 · 0 评论 -
06 架构核心技术之微服务
首先,之所以要使用微服务,是因为传统的单体巨无霸系统带来的挑战和困难,包括编译和部署的困难、连接的困难、打包代码冲突的困难,以及复用的困难、新增业务的困难。而具体的微服务框架基本上都是由三个核心部分组成的:服务的提供者、服务的调用者和服务的注册中心。服务的提供者向注册中心注册自己的服务,而服务的调用者通过注册中心发现服务,并进行远程调用。另外,很多微服务架构中还包括一个监控者的角色,通过监控者进行服务的管理和流量的控制。原创 2024-06-11 22:06:57 · 1284 阅读 · 0 评论 -
05 架构核心技术之分布式数据存储
分布式数据库和分布式存储是分布式系统中难度最大、挑战最大,也是最容易出问题的地方。解决的办法主要是数据库的复制,通过数据库的复制,提升数据库的读性能和系统的可用性。如果对数据存储和数据库的写操作有更高要求的时候,就需要通过数据分片的方式来实现。在具体的部署过程中,可以混合使用数据复制、数据分库和数据分片几种技术方案。原创 2024-06-08 10:46:18 · 1240 阅读 · 0 评论 -
04 架构核心技术之分布式消息队列
使用异步调用的架构方法,就是使用消息队列,将生产者和消费者进行隔离。主要的架构模型有两种,一种是点对点模型,一种是发布订阅模型。其中点对点模型,一个消息只会被一个消费者消费;而发布订阅模型,一个消息可以被多个消费者订阅。消息队列实现的异步架构可以在架构上带来更多的好处。它可以实现业务逻辑的异步处理,从而获得更好性能特性;可以使系统具有更好的伸缩性;可以平衡用户访问流量,实现削峰填谷;还可以隔离失败,并进行自我修复;以及对生产者和消费者进行解耦,使系统拥有更好的扩展和维护能力。原创 2024-06-08 10:02:41 · 1367 阅读 · 3 评论 -
03 架构核心技术之分布式缓存(下)
最后,我们总结回顾一下整个关于缓存部分的内容。缓存的主要优点是实现方法比较简单,同时提升的效果又非常明显。所以缓存是架构性能优化的一个重要手段。影响缓存的主要指标是缓存命中率。影响命中率的几个关键因素是缓存键集合的大小、缓存空间的大小和缓存对象的存在时间,也就是缓存的寿命。缓存的主要类型有代理缓存、反向代理缓存、CDN 缓存,这三类缓存叫作通读缓存。客户端使用通读缓存的时候,不需要知道后面真实的数据存储服务器在哪里,只需要访问通读缓存,由通读缓存去访问真正的数据提供服务器。另一类缓存就是旁路缓存。原创 2024-06-07 13:30:15 · 754 阅读 · 0 评论 -
02 架构核心技术之分布式缓存(上)
本课时的主题是分布式缓存。缓存是架构设计中一个重要的手段。缓存的主要特点是技术比较简单,同时对性能提升的效果又很显著,所以缓存在很多地方都会被用到。使用缓存需要注意几个关键指标:缓存键集合大小、缓存空间的大小以及缓存的使用寿命。这三个指标决定了缓存的有效性、缓存的使用效率、缓存实现的效果。缓存的类型主要有代理缓存、反向代理缓存、 CDN 缓存和对象缓存几种。缓存知识图谱如下图所示。不是所有的数据都适合使用缓存,使用缓存的时候需要注意以下几点。数据频繁修改,这类数据使用缓存效果比较差。原创 2024-06-05 19:19:42 · 789 阅读 · 0 评论 -
01 大型架构的演进之路
首先,大型互联网系统的挑战主要包括:高并发和大流量请求的挑战,高可用的挑战,海量数据的挑战,网络情况复杂、安全性差的挑战,以及需求快速变更、发布频繁的挑战。为了应对这样的挑战,需要提升系统的处理能力。处理能力提升有两种手段,一种是垂直伸缩,一种是水平伸缩。垂直伸缩有自身的局限性,所以在互联网企业中主要使用的手段是水平伸缩。水平伸缩的原理就是不断地增加服务器以提高系统的处理能力。而如何添加新服务器,使新的服务器和原有的服务器构成一个完整的整体对外提供服务,就是互联网架构的主要技术挑战和技术内容。原创 2024-06-04 21:04:19 · 1229 阅读 · 0 评论 -
00 7分钟带你了解架构
反之,如果你有架构思维,主动了解自己的工作在整体中的位置和作用,比如说参加一个大系统开发的时候,你熟知自己所做的模块在大系统中的位置,知道该模块和其他重要组成部分之间的关系,进而研究使用更合适的技术和解决方案,并影响团队和项目向更好的方向发展,那你会脱颖而出成为前一种人,获得更好的职业机会,并收获更美好的人生。在这门课中,我将结合20多年的编程与架构经验,通过大型分布式系统核心架构技术讲解,让你懂架构,教你做架构,帮你提升架构思维,助你更轻松地应对工作,通过晋升评审,拿到高薪offer,有更好的职业发展。原创 2024-06-04 20:01:35 · 669 阅读 · 0 评论