赞
踩
这篇文章是对于【分布式系统设计模式】的个人理解和部分翻译。
文章探讨了关于《基于容器化软件组件的微服务架构》。
其实容器化编程的发展路径和面向对象编程有异曲同工之妙–
都是将复杂的系统进行抽象、解耦,然后通过一定的方式组合起来。
既然我们要组合,肯定会有面对不同情况的不同组合方式。所以,这些不同的组合方式也会有几个常用的固定模式。
而这个正式我们要探讨的–分布式系统设计模式。
说到分布式,第一个联想到的应该就的容器化。
为什么?其实容器化和分布式本没有交集,只是因为我们发现容器化是一个实现分布式的高效的方法。
容器化设置了一个天然的边界,边界之外用接口进行通信。
有了这个边界的好处就是,任何意料之外的情况都可以被限制在最小的影响范围,毕竟我们构建的是一个大型的复杂系统。
我认为,用FMEA模型能很好的描述为什么会采用容器化去解构分布式系统。(FMEA,可以理解为:失控的状态一定会发生,我们要做的是控制失控的范围)
所以,我们接下来要说的设计模式基本上都是和容器相关,我们需要把容器作为一等公民去看。
毕竟这是写 Kubernetes 的哥们写的。
我们为容器增加一些可控接口,比如 run(), stop(), pause(),使得容器对外来说是可控的。
也正是因为广泛的 http 协议支持,你完全可以通过 http 和 JSON这样的序列化方式去构造你应用的对外的 API。
一般来说我们的设计方针都是一个容器提供一种服务。同时容器会为其上下游提供接口。
什么接口?
向上,提供容器本身丰富的信息接
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。