01.原始分布式时代
1 | UNIX设计哲学: |
在这个阶段提出的分布式架构的目标:使用多个独立的分布式服务来共同构建出一个更大型的系统。而这个目标,从历史的局限性就决定了他不可能 是一蹴而就的解决分布式系统中的难题。其中面临的最大问题就是:由于调用本地方法与调用远程方法的差别,如何像调用本地方法一样去调用远程方法
那“远程”二字代表了什么呢?
- 首先不可能 用内联等传统编译原理中的优化算法,来提升运行速度
- 远程所带来的网络环境问题,包括:
- 远程服务在哪里–>服务发现
- 有多少个–>负载均衡
- 网络出现分区,超时出错怎么办–>熔断,隔离降级
- 方法参与返回结果如何表示 –>序列化协议
- 如何传输–>传输协议
- 服务权限怎么管理–>认证授权
- 如何 保证通信安全–>网络安全层
- 如何 令调用不同机器服务返回相同的结果–>分布式数据一致性
针对大部分问题,DCE从0开始从无到有回答了其中大部分的问题。
总结
在这个阶段采用分布式架构,为了解决上述各种问题,所付出的代价远远超过了所取得的收益。那接下来该如何发展呢?
- 尽快提升单机处理能力,以避免分布式的种种问题
- 寻找更完美的解决方案,来应对上述在构筑分布式系统的问题
1 | 某个功能能够进行分布式,并不意味着它就应该进行分布式,强行追求透明的分布式操作只会自食其果 |
行文思路:
思考题
1 | 今天以微服务为代表的分布式系统,是如何看待简单的? |
思考:
微服务所谓的简单,不管是从开发工具、开发形式亦或是运维上来看,都是在趋于看上去的简单。把复杂 留给 自己,简单留给别人。易开发、易部署、易扩展、易运维等等的说法。都在宣誓着把简单作为主要的原则 ,但背后所面临着诸如本节课所有的讨论的问题,都是需要一一关注,一一解决的。所以我觉得这里的简单并不是真正的简单。