12 2021 档案
摘要:首先说一下组件概念,大型软件系统的构建过程与建筑物修建很类似,都是由一个个小组件组成的。所以,如果说SOLID设计原则是用于指导我们如何将砖块砌成墙与房间,那么组件构建原则就是用来指导我们如何将这些房间组合房子的。 REP(复用、发布等同原则) 软件复用的最小粒度应等同于其发布的最小粒度。直白地说,
阅读全文
摘要:单一职责原则 大多数人都从字面上认为,编写代码中每个模块都应该只做一件事,即确保一个函数只完成一个功能,但这只是一个面向底层实现细节的设计原则, 并不是全部,在历史上,曾经这样描述这一原则:任何一个软件模块都应该有且仅有一个被修改的原因。而这个被修改的原因就是用户或都所有者。 举个反面例子:比如说代
阅读全文
摘要:编程范式分为三种:结构化编程、面向对象编程、函数式编程 1、结构化编程是对程序控制权的直接转移的限制。 它采用子程序、程序码区块(英语:block structures)、for循环以及while循环等结构,来取代传统的 goto。希望借此来改善计算机程序的明晰性、品质以及开发时间,并且避免写出面条
阅读全文
摘要:1、限流和降级 限流的作用相当于电路上的保险丝,当过载的时候掐掉一些流量,让系统有能力集中资源以较快的速度处理平台处理能力范围内的业务请 求。也就是上面大促场景中,仅让1000万用户中 的100万用户进入后端的处理流程中,将其余900 万用户的请求通过队列排队或直接阻挡在平台处 理单元之外的方式,保
阅读全文
摘要:1、鹰眼平台的架构 首先在每个应用集群的运行环境中,每当应用中进行了远程服务调用、缓存、数据库访问等操作时,都会生成相关的访问日志并保存到应用所在的服务器上。 因为这些本地日志信息仅仅是一次业务请求处理中的部分日志信息,必须要将这些日志信息汇聚到一个地方才能进行全局的统计和查看,所以在每个运行应用所
阅读全文
摘要:从淘宝缓存产品的研发和使用场景的历程来看,是随着业务的快速发展以及某些特定业务场景的出现而逐步演变的。早期通过缓存实现应用分布式session,以避免应用实例间会话的复制, 后来发展为将缓存用于业务去重判断、交易快照、图片索引等场景,最后替换数据库在业务交易处理中的职能,缓存平台在业务场景中扮演了越
阅读全文
摘要:首先介绍一下分布式事务,分布式事务是指会涉及到操作多个数据库的事务。其实就是将对同一库事务的概念扩大到了对多个库的事务。目的是为了保证分布式系统中的数据一致性。分布式事务处理的关键是必须有一种方法可以知道事务在任何地方所做的所有动作,提交或回滚事务的决定必须产生统一的结果(全部提交或全部回滚) 在分
阅读全文
摘要:异步化与缓存两个技术都与系统的性能有很大的关系,当今分布式应用架构中,如果不能很好地掌握这两项技术,所设计出的应用将很难有优质的性能表现。本章将介绍阿里集团是如何使 用这两种技术的。 本次分享介绍淘宝平台中典型的交易场景,描述在分布式服务架构中,如何通过业务流程异步化,即通过服务异步调用的方式让业务
阅读全文
摘要:HSF称之为高速服务框架HSF(High-speed Service Framework),是在阿里巴巴广泛使用的分布式RPC服务框架。 HSF连通不同的业务系统,解耦系统间的实现依赖。HSF从分布式应用的层面,统一了服务的发布与调用方式,从而帮助用户更加方便、快速地开发分布式应用,以及提供或使用公
阅读全文
摘要:早在2007年的时候,整个淘宝网站是一个几百兆字节的WAR包,大小功能模块超过200个,当时的淘宝业务处于每几个月就翻倍高速发展,这样的应用架构给淘宝技术团队带来了非常大的压力 ,虽然技术团队规模已超过500人。几百人维护一个War包的模式,带了几个大问题:1、项目团队间协同成本高,业务响应越来越慢
阅读全文
摘要:共享服务中心的架构目的是通过业务拆分来降低系统的复杂性;通过服务共享来提供可重用性;通过服务化来达到业务支持的敏捷性;通过统一的数据架构来清除数据交互的屏障。 服务中心建设要考量的三个重要方面,设计、运营、工程。 从设计层来看,主要是遵循面向对象的分析和设计方法,即业务和系统建模遵循面向对象的基本原
阅读全文
摘要:提到这个概念,我们首先要介绍一个另一个概念,称之为“烟筒式”系统建设模式,早在2008年时淘宝的技术团队同时支持着淘宝和天猫两大电商平台。另外还有1999年成立的b2b电商平台1688, 三大电商体系的完全独立,各有自应用独立开发和运维。这样的开发形态带来了三大弊端,一:重复功能建设和维护带来的重复
阅读全文
摘要:话说在2015年年中,马云带领阿里巴巴集团的高管,拜访了芬兰的一家名为Supercell的移动游戏公司,这家号称是世界上最成功的移动游戏公司,一般来说两个员工, 或者5个员工,最多不超过7个员工组成独立的开发团队,称之为Cell(细胞),这也是公司名字Supercell(超级细 胞)的由来。团队自己
阅读全文
摘要:对于技术团队,架构师的决策和技术方案影响工程师的开发模式和工作量,一个称职的架构师是公司的宝贵财富,而一个不合格的架构师可能会成为开发团队的梦魇,所谓一将无能,累死三军。 按作用划分架构师设计型架构师:也就是一般意义上的架构师,负责系统架构设计地要负责架构的实施落地、演化发展、推广重构。 救火型架构
阅读全文
摘要:BASE理论是eBay架构师提出的。 BASE定理来源:是CAP中一致性和可用性的权衡结果,它来自大规模互联网分布式系统的总结,是基于CAP定理逐步演化而来的。 BASE定理的核心思想:即使无法做到强一致性,但是每个应用可以根据自身的业务特定,采用合适的方式来达到最终一致性。 BASE是Basica
阅读全文
摘要:在讨论高可用数据服务架构之前,必须先讨论的一个话题是,为了保证数据的高可用,网站通常会牺牲另一个也很重要的指标:数据一致性。 CAP原理认为,一个提供数据服务的存储系统无法同时满足数据一致性、数据可用性,分区耐受性(系统具有网络分区的伸缩性)这三个条件。 在大型网站应用中,数据规模总是快速扩张的,因
阅读全文
摘要:BASE理论是eBay架构师提出的。 BASE定理来源:是CAP中一致性和可用性的权衡结果,它来自大规模互联网分布式系统的总结,是基于CAP定理逐步演化而来的。 BASE定理的核心思想:即使无法做到强一致性,但是每个应用可以根据自身的业务特定,采用合适的方式来达到最终一致性。 BASE是Basica
阅读全文
摘要:这本书分几个章节,其中有一个值得和大家分享的技术知识。 大型网站架构模式中引入了模式概念:每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重工作。 模式有几种:有分层、分割、分布式、集群、缓存、异步、冗余、自动化、安全 1、分层:简单
阅读全文
摘要:一直想写一篇关于关于中国软件开发者的现状,从开始学习编程再到进入社会,走进公司,如何从一个小鸟变成老鸟的故事。 然而现实总不是那么美好,就像是因为期待了很多而最后没有实现带来的落差,每个喜欢编程以及走上软件开发者道路上的人总会对自己有各种自在或者低调含蓄的称谓,就像之前老有人说,我们是招人的,公司就
阅读全文