一、分布式技术的分类
1.1 SMP(Symmetric MultiProcess)对称多处理器
一种多处理器技术,两个或多个对等的处理器可以直接连接到一个共享主内存。
-
任何处理器可以完全对等地处理应用程序
-
每个处理器可以独立进行任务调度
1.2 Parallel Processing 并行计算
1.2.1 Cluster Computing 集群计算
- 集群计算指的是一组相关联的计算机协同工作
- 对外以一个单独计算机的形式展现大多以共享内存的方式工作
- 计算机之间以告诉网络连接,例如光纤直连或Infiniband
1.2.2 Grid Computing 网格计算
-
集群计算:主要在封闭的内网环境内,把多态服务器直接通过高速网络连接到一起成为一个大的共享内存,每一个机器完全是对等的,对外提供一个统一的接口网格计算在互联网
-
网格计算:跨网络域,需要中控节点的调用
网格计算通过利用大量异构计算机(通常为台式机)的未用资源(CPU周期和磁盘存储),将其作为嵌入在分布式电信基础设施中的一个虚拟的计算机集群,为解决大规模的计算问题提供一个模型。网格计算的焦点放在支持夸管理域计算的能力,这使它与传统的计算机集群或传统的分布式计算相区别。
1.2.3 Distributed Computing 分布式计算
Wiki:分布式系统是一组电脑,透过网络相互连接传递消息与通信后并协调他们的行为而形成系统。组件之间彼此进行交互以实现一个共同的目标。把需要进行大量计算的工程数据割成小块,由多态计算机分别计算,再上传运算结果后,将结果统一合并得出数据结论的科学。
1.2.4 Cloud Computing 云计算
云计算是一种基于互联网的计算方式,通过这种方式,共享的软件硬件资源和信息可以按需求提供给计算机各种中断和其它设备,使用服务商体用的电脑基建作计算和资源。
1.2.5 Decentralized Application 去中心化应用
典型的应用就是区块链技术
二、SOA
面向服务的体系结构(service-oriented architecture)并不是指一种技术,而是一种分布式运算的软件设计方法。软件的部分组件(调用者),可以透过网络上的通用协议调用另一个应用软件组件运行、运作,让调用者获得服务。
SOA原则上采用开放标准、与软件资源进行交互并采用表示的标准方式。因此应能跨越厂商、产品与技术。
一项服务应视为一个独立的功能单元,可以远程访问并独立运行与更新。
三、微服务
3.1 微服务架构定义
微服务(Microservices)是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块(Small Building Blocks)为基础,利用模块化的方式组合出复杂的大型应用程序,各功能区块使用与语言无关(Language-Independent/Language agnostic)的API集相互通信。
3.2 紧耦合代码的危害
-
微小的改变带来巨大影响
- 任何代码更新都可能触发全量编译、测试与部署流程
- 代码的影响范围评估极为复杂
- 频繁更新上线带来巨大风险
-
模块更新风险巨大
- 模块边界很难界定
- 模块之间互相依赖严重
-
健壮性脆弱
-
无法横向扩展
3.3 微服务的七个原则
- 清晰定义业务边界
- 自动化能力提升
- 隐藏实现细节
- 自治原则
- 独立部署
- 故障隔离
- 可视化监控
3.4 微服务和SOA
| 传统SOA | 微服务架构 |
|---|---|
| 以集成为导向 | 以结构为导向 |
| 将多个引用程序模块集成为整体服务 | 将整体服务解耦为多个功能模块 |