周志明架构课--01.原始分布式时代
UNIX设计哲学:
保持接口与实现的简单性,比系统的任何其他属性,包括准确性、一致性和完整性都来得更加重要。
在这个阶段提出的分布式架构的目标:使用多个独立的分布式服务来共同构建出一个更大型的系统。而这个目标,从历史的局限性就决定了他不可能 是一蹴而就的解决分布式系统中的难题。其中面临的最大问题就是:由于调用本地方法与调用远程方法的差别,如何像调用本地方法一样去调用远程方法
那“远程”二字代表了什么呢?
- 首先不可能 用内联等传统编译原理中的优化算法,来提升运行速度
- 远程所带来的网络环境问题,包括:
- 远程服务在哪里–>服务发现
- 有多少个–>负载均衡
- 网络出现分区,超时出错怎么办–>熔断,隔离降级
- 方法参与返回结果如何表示 -->序列化协议
- 如何传输–>传输协议
- 服务权限怎么管理–>认证授权
- 如何 保证通信安全–>网络安全层
- 如何 令调用不同机器服务返回相同的结果–>分布式数据一致性
针对大部分问题,DCE从0开始从无到有回答了其中大部分的问题。
总结
在这个阶段采用分布式架构,为了解决上述各种问题,所付出的代价远远超过了所取得的收益。那接下来该如何发展呢?
- 尽快提升单机处理能力,以避免分布式的种种问题
- 寻找更完美的解决方案,来应对上述在构筑分布式系统的问题
某个功能能够进行分布式,并不意味着它就应该进行分布式,强行追求透明的分布式操作只会自食其果
行文思路:
思考题
今天以微服务为代表的分布式系统,是如何看待简单的?
思考:
微服务所谓的简单,不管是从开发工具、开发形式亦或是运维上来看,都是在趋于看上去的简单。把复杂 留给 自己,简单留给别人。易开发、易部署、易扩展、易运维等等的说法。都在宣誓着把简单作为主要的原则 ,但背后所面临着诸如本节课所有的讨论的问题,都是需要一一关注,一一解决的。所以我觉得这里的简单并不是真正的简单。
周志明架构课--01.原始分布式时代相关推荐
- 周志明架构课--03.SOA时代:成功理论与失败实践
SOA架构是第一次被广泛使用过.通过分布式服务来构建信息系统的工程实践.它有完善的理论和工具,可以说,它解决了分布式系统中,几乎所有主要的技术问题 所以本节就系统的讨论一下SOA的设计思想与原则,找找 ...
- 周志明论架构之道:从SOA时代到微服务时代
SOA 架构(Service-Oriented Architecture) 面向服务的架构是一次具体地.系统性地成功解决分布式服务主要问题的架构模式. 为了对大型的单体系统进行拆分,让每一个子系统都能 ...
- 《周志明的软件架构课》学习笔记 Day11
1.主动学习 TCC事务 TCC(Try-Confirm-Cancel) TCC 方案,它天生适合用于需要强隔离性的分布式事务中,它是一种业务侵入性较强的事务方案,要求业务处理过程必须拆分为" ...
- 《周志明的软件架构课》学习笔记 Day1
1.主动学习 每个开发者都需要学习「如何构建一个可靠的分布式系统」 工作这么多年,发现架构设计,还是需要从业务中来迭代,「作为一名架构师,在软件研发的过程中,最难的事儿,其实并不是如何解决具体某个缺陷 ...
- 周志明:《凤凰架构:构建可靠的大型分布式系统》
架构模式的每一次演进都是凤凰涅槃 系统架构的每一次迭代都是浴火重生 构成系统的每一个部件都是一只不死鸟 构成大规模系统的每一个部件都可以是不可靠的,会出错,会老朽,甚至是消亡,如何让不可靠部件构成的系 ...
- 读《周志明的软件架构课》--学习笔记和感想随笔
主要记录对周老师的<周志明的软件架构课>的学习笔记,本篇章是对课程不可变基础设施部分的学习,从虚拟化的技术理解容器技术的产生和发展,从部署运维角度理解应用的封装,从网络虚拟化理解容器网络, ...
- 豆瓣9.8分,周志明的《凤凰架构》,高屋建瓴,推荐(送书)
导读:周志明老师的<深入理解Java虚拟机>想必大家都不陌生,这本书凭借着生动易懂的文风.系统实用的知识点.成为原创计算机图书经典中的经典.周老师凭借一己之力拉高了 Java 开发者内功水 ...
- 【读书笔记《凤凰架构》- 构架可靠的大型分布式系统.周志明】(一)
1. 前言 整部书分为5部分,除了第一章讲分布式架构的历史,其他四章都偏技术. 书本的作者提也到,再看书前最好先理解本书的排版的逻辑(尽管每一章都被设计为可以单独阅读) 但除第1部分, 剩下的4个部分 ...
- 【第64期】豆瓣9.8分,周志明的《凤凰架构》
导读:周志明老师的<深入理解Java虚拟机>想必大家都不陌生,这本书凭借着生动易懂的文风.系统实用的知识点.成为原创计算机图书经典中的经典.周老师凭借一己之力拉高了 Java 开发者内功水 ...
最新文章
- 算法----- 给定一颗二叉树,找到二叉树上任意两个节点之间的距离(Java版本)
- python实现简单的api接口-Python 实现接口测试的简单实例
- 走在前沿的弄潮儿,怎能不会Git的那些奇技淫巧
- 只能计算机论文,谈计算机及人工智能技术发展-人工智能论文-计算机论文.docx...
- 使用Seq搭建免费的日志服务
- 【渝粤题库】陕西师范大学800001 自然地理学
- 我的世界python写游戏_快来试试Python写的游戏《我的世界》
- echarts源码:图标类插件开发
- KVM 虚拟机在物理主机之间迁移的实现 -- 静态迁移/动态迁移/存储迁移
- Phaser Matter Collision Plugin 碰撞插件 -- iFiero技术分享
- 【智造】从《美国工厂》看中国制造企业的国际化探路
- easyexcel导入获取表头并且表头为不固定列
- php音频格式 操作,php操作视频音频类-ffmpeg-php
- 斐讯路由刷华硕固件后指示灯颜色修改
- 王道训练营3月24日
- 杀毒软件网络测试环境,杀毒软件开学摸底测试 360杀毒基础最牢
- python倒计时代码turtle_python实现屏保计时器
- GPU图形处理器与CPU区别
- android10 三星升级计划,三星公布Android 10.0国行升级计划:规模庞大
- Android和Java中的回调函数
热门文章
- 003 愚人节的“礼物”
- few-shot learning个人总结
- PCI Express解析——系列文章【2】:PCIe原理分析之——PCI Express线路基础
- 数据中台(元数据篇)
- mvc3和dz nt v3.6完美跨域登陆整合解析
- Android大话设计模式 第三章----开放封闭原则---孙悟空任弼马温一职
- C++校园疫情防控管理系统
- Linux 开发学习
- 【油猴脚本 Greasemonkey】GM_xmlhttpRequest内部实现原理
- 1.windows11开启wsl2并安装Ubuntu 20.04