摘要:
每个系统都包含一系列架构决策,定义了设计和实现的边界和限制,
架构设计文档的核心是以某种方式的选型决策,而开发团队可能不太清楚这个决策背后的假设和思考。
对于这些决策,由于我们缺少当时的上下文,只能盲目的接受和盲目的做出改变。
闲逛ThoughtWorks Radar偶然发现一个在17年和18年都被ADOPT(采用)的技术叫“ADR - Lightweight Architecture Decision Records”,轻量的架构决策记录,针对演进式架构而提出的一种架构文档管理方法。 阅读全文
摘要:
20世纪60年代,IBM研发了System 360架构大型机,与同时期的波音707、福特汽车誉为商业三大成就,凭借其卓越的性能和良好的稳定性,开启了大型机的时代,诞生了非常多的集中式系统,采用单机架构,有非常好的单机处理能力。
然而,大型机的高性能也伴随着高成本,包括购买成本和运维成本,对运维人员的要求非常之高,需要掌握大型机紧密设计的技术细节。
并且购买成本也是极其昂贵,起步几百万刀,甚至更高,只有政府和金融等机构才有能力采购。
另一个问题,是当今大家都比较关注的单点故障,大型机设计在精良,也不代表它永不宕机,而一台大型机上面往往安装一个甚至多个重要的系统,一旦宕机,后果很严重。
美国国防部认为,如果仅有一个集中的军事指挥中心,万一被摧毁,全国军事指挥将处于瘫痪状态,因此,设计一个分散的,网络化的指挥通信系统/p 阅读全文
摘要:
在这个世界上有俩种人,一种是天天趴在网上,跟计算机网络亲密接触的人,另一种是天外飞仙,不食人间烟火,自然也不使用互联网的人😀。
所以,无论你是互联网世界的新用户,或者,你已经投身互联网工作很长时间了,亦或是你每天喜欢使用计算机和网络的网民,你都应该了解基本的网络知识,特别是计算机网络。
如果你维护过服务器,或者是一个服务端的开发者,你了解远程的用户是如何连接到你的服务器或者访问到你的服务的吗?
发现大部分人的回答是模糊的,有的根本不明就理,所以,本文就尽可能多的来聊一聊,有关这类计算机网络与网络组件的基本知识。
我们先来给计算机网络下个定义: 阅读全文
摘要:
在上文《分布式事务?咱先弄明白本地事务再说 - ACID》中,我们讲解了数据库的事务及事务的特性ACID,了解到一个数据库要支持事务,就需要实现完备的事务的规范,我们才能说这是一个支持事务的数据库,例如Mysql、Oracle等。
本文就来讨论一下数据库实现事务的几个关键阶段,背后都经历了哪些曲折的技术变迁。 阅读全文
摘要:
过去一段时间面试的同学,对于数据库事务,可以按照配置正常使用,但很多都无法讲清楚和理解数据库事务这个东西真正的意义,以及互联网兴起以后,当今数据库在ACID面前面临怎样的问题和抉择。
事务,是各大单机SQL数据库厂商包括Oracle、IBM DB2等,早在上世纪80年代提出的一个解决 数据并发操作处理的模型 ,旨在满足多用户(多线程、进程)对数据操作的场景下,依然能保证逻辑正确执行,状体持久,且各大厂商提出,并在事务实现上都遵循事务的 ACID 4个特性。 阅读全文