开始的前
“设计可伸缩
![](/icons/92229de.gif)
网格” 系列教程适用于希望为网格设计可伸缩性、从而实现网格最佳性能
![](/icons/92229de.gif)
开发人员
![](/icons/92229dou2.gif)
有关本系列教程
网格使您能够利用多台机器
![](/icons/92229de.gif)
处理能力
![](/icons/92229dou.gif)
即使用多个网格节点组合在
![](/icons/92229yi.gif)
起
![](/icons/92229de.gif)
CPU 或存储空间
![](/icons/92229dou2.gif)
如果您需要对网格
![](/icons/92229de.gif)
处理能力和性能进行扩展
![](/icons/92229dou.gif)
可以向系统添加更多节点
![](/icons/92229dou.gif)
但是不能盲目添加
![](/icons/92229dou2.gif)
这样做最终会达到系统
![](/icons/92229de.gif)
极限
![](/icons/92229dou.gif)
此时
![](/icons/92229dou.gif)
网格性能不但不会提高
![](/icons/92229dou.gif)
反而会降低
![](/icons/92229dou2.gif)
在设计网格时
![](/icons/92229dou.gif)
有很多原因都必须考虑到
![](/icons/92229dou2.gif)
其中很多原因最终会影响网格
![](/icons/92229de.gif)
可伸缩性
![](/icons/92229dou.gif)
并且从长远观点来看
![](/icons/92229dou.gif)
还会影响处理扩展
![](/icons/92229de.gif)
方式
![](/icons/92229dou2.gif)
在本教程中
![](/icons/92229dou.gif)
我们将介绍影响可伸缩性
![](/icons/92229de.gif)
关键原因
![](/icons/92229dou.gif)
设计网格可伸缩性时需考虑
![](/icons/92229de.gif)
策略
![](/icons/92229dou.gif)
以及在网格开发的前和开发过程中应该解决
![](/icons/92229de.gif)
和性能和瓶颈相关
![](/icons/92229de.gif)
问题
![](/icons/92229dou2.gif)
有关本教程
本教程是共分两部分
![](/icons/92229de.gif)
系列教程
![](/icons/92229de.gif)
第
![](/icons/92229yi.gif)
篇
![](/icons/92229dou.gif)
我们将首先介绍各种区别
![](/icons/92229de.gif)
网格类型
![](/icons/92229dou.gif)
以及影响和限制网格解决方案
![](/icons/92229de.gif)
主要原因
![](/icons/92229dou2.gif)
在了解这些问题
![](/icons/92229de.gif)
同时
![](/icons/92229dou.gif)
通过深入了解可以解决这些问题
![](/icons/92229de.gif)
网络技术和拓扑结构
![](/icons/92229dou.gif)
研究可能
![](/icons/92229de.gif)
解决方案
![](/icons/92229dou2.gif)
本教程涉及
![](/icons/92229de.gif)
主题包括:
网格类型和可能出现问题
![](/icons/92229de.gif)
地方
网络技术和解决方案
网络架构和拓扑结构
先决条件
您需要熟悉基本
![](/icons/92229de.gif)
网格结构
![](/icons/92229dou.gif)
以及网络中
![](/icons/92229de.gif)
主要组件和实现网格部署
![](/icons/92229de.gif)
核心技术和系统
![](/icons/92229dou2.gif)
可伸缩性定义
在开始介绍如何解决网格
![](/icons/92229de.gif)
可伸缩性问题前
![](/icons/92229dou.gif)
需要对可伸缩性做个定义
![](/icons/92229dou.gif)
以及确定影响网格可伸缩性
![](/icons/92229de.gif)
![](/icons/92229yi.gif)
些关键问题
![](/icons/92229dou2.gif)
可伸缩性
![](/icons/92229de.gif)
含义是什么?
通常
![](/icons/92229dou.gif)
在任何网格系统中
![](/icons/92229dou.gif)
最重要
![](/icons/92229de.gif)
元素是网格
![](/icons/92229de.gif)
性能
![](/icons/92229dou2.gif)
有很多思路方法都可以对性能进行优化
![](/icons/92229dou.gif)
从对单个节点元素进行升级和改进
![](/icons/92229dou.gif)
到对整个网络和支持系统进行改进
![](/icons/92229dou2.gif)
然而
![](/icons/92229dou.gif)
网格的所以如此有用
![](/icons/92229dou.gif)
是
![](/icons/92229yinwei.gif)
它能够将任务分发到多台机器上进行处理
![](/icons/92229dou2.gif)
因此
![](/icons/92229dou.gif)
在改进网格性能时
![](/icons/92229dou.gif)
第
![](/icons/92229yi.gif)
个思路方法就是增加更多节点
![](/icons/92229dou2.gif)
扩展节点数量可能会提高网格性能
![](/icons/92229dou2.gif)
不过这也可能会产生负面影响
![](/icons/92229dou.gif)
![](/icons/92229yinwei.gif)
所增加
![](/icons/92229de.gif)
节点在分配节点(distribution node)、网络基础设施、支持服务和其他元素上都增加了更多负载
![](/icons/92229dou2.gif)
这种情况并不少见
![](/icons/92229dou.gif)
在增加节点数目时
![](/icons/92229dou.gif)
可能会遇到区别
![](/icons/92229de.gif)
瓶颈
![](/icons/92229dou.gif)
例如任务吞吐量方面(即可以分发
![](/icons/92229de.gif)
并发请求
![](/icons/92229de.gif)
数量)
![](/icons/92229dou.gif)
任务提交/响应率(由网络负载引起)
![](/icons/92229dou.gif)
或分发管理器过载(它必须能够处理客户机和各个网格节点的间
![](/icons/92229de.gif)
数据和请求)
![](/icons/92229dou2.gif)
根本上来说
![](/icons/92229dou.gif)
可伸缩性并不是有关网格性能
![](/icons/92229dou2.gif)
它和通过向系统中添加节点来提高网络性能
![](/icons/92229de.gif)
能力有关
![](/icons/92229dou2.gif)
对于
![](/icons/92229yi.gif)
个可伸缩
![](/icons/92229de.gif)
网格
![](/icons/92229dou.gif)
系统中
![](/icons/92229de.gif)
其他组件 —— 网络、支持服务、分配节点甚至客户机 —— 都必须成为可伸缩性计划
![](/icons/92229de.gif)
![](/icons/92229yi.gif)
部分
![](/icons/92229dou2.gif)
还有
![](/icons/92229yi.gif)
点也非常重要:要牢记使用网格
![](/icons/92229de.gif)
关键原因
![](/icons/92229dou.gif)
即在使用大量独立系统时充分利用成本相对较低
![](/icons/92229de.gif)
硬件
![](/icons/92229de.gif)
性能
![](/icons/92229dou2.gif)
应该避免使用高度专门化
![](/icons/92229de.gif)
硬件处理更高负载
![](/icons/92229de.gif)
情况
![](/icons/92229dou2.gif)
通过改变应用
![](/icons/92229chengxu.gif)
![](/icons/92229dou.gif)
或者通过优化和改进系统中某些元素
![](/icons/92229de.gif)
使用方式
![](/icons/92229dou.gif)
进而改变系统
![](/icons/92229de.gif)
组织和结构
![](/icons/92229dou.gif)
应该能够解决可伸缩性问题
![](/icons/92229dou2.gif)
可伸缩性对区别网格类型
![](/icons/92229de.gif)
影响
网格
![](/icons/92229de.gif)
可伸缩性
![](/icons/92229dou.gif)
以及用来改进和优化可伸缩性所使用
![](/icons/92229de.gif)
工具和系统完全取决于您使用
![](/icons/92229de.gif)
网格类型
![](/icons/92229dou2.gif)
尽管有
![](/icons/92229yi.gif)
些通用思路方法和改进可以用于所有
![](/icons/92229de.gif)
网格类型
![](/icons/92229dou.gif)
但是某些网格类型可能会出现特定
![](/icons/92229de.gif)
问题
![](/icons/92229dou.gif)
这些问题也许对其他网格不会造成影响
![](/icons/92229dou2.gif)
例如
![](/icons/92229dou.gif)
网络性能对于所有网格类型都非常重要
![](/icons/92229dou.gif)
但是网络
![](/icons/92229de.gif)
确切参数则取决于网格类型
![](/icons/92229dou2.gif)
在计算网格中
![](/icons/92229dou.gif)
重要
![](/icons/92229de.gif)
原因通常是网络响应速度(延时)
![](/icons/92229dou.gif)
而不是原始数据吞吐量(数据传输率)
![](/icons/92229dou2.gif)
下面列出了 4 种关键
![](/icons/92229de.gif)
网格类型
![](/icons/92229dou2.gif)
其名称并没有完全描述出网格
![](/icons/92229de.gif)
功能
![](/icons/92229dou.gif)
不过可以在本教程其余内容中引用
![](/icons/92229dou2.gif)
还有其他
![](/icons/92229yi.gif)
些网格类型和情形
![](/icons/92229dou.gif)
不过它们表示了某些参数
![](/icons/92229de.gif)
极端使用方法
![](/icons/92229dou.gif)
当我们研究区别可伸缩性主题时会用到
![](/icons/92229dou2.gif)
4 种主要
![](/icons/92229de.gif)
网格类型有:
高吞吐量网格 —— 在这种网格中
![](/icons/92229dou.gif)
发给每个网格节点
![](/icons/92229de.gif)
各个任务单元通常都非常小
![](/icons/92229dou.gif)
每个单元
![](/icons/92229de.gif)
请求和预期执行时间都很小
![](/icons/92229dou2.gif)
这些网格通常会在计算系统中使用
![](/icons/92229dou.gif)
其中请求
![](/icons/92229de.gif)
数量反应了给定
![](/icons/92229hanshu.gif)
或计算
![](/icons/92229de.gif)
区别输入值
![](/icons/92229de.gif)
范围
![](/icons/92229dou2.gif)
例如
![](/icons/92229dou.gif)
在单个作业中可能有 10,000 甚至 100,000 个请求
高计算量(High-computational)网格 —— 在计算网格中
![](/icons/92229dou.gif)
每个节点都负责为
![](/icons/92229hanshu.gif)
或表达式提供 CPU 处理能力
![](/icons/92229dou2.gif)
每个工作单元
![](/icons/92229de.gif)
持续时间可能会很长(和高吞吐量网格中较短
![](/icons/92229de.gif)
执行时间相比)
高内存量(High-memory grid)
![](/icons/92229de.gif)
网格 —— 在处理大量数据时使用这种类型
![](/icons/92229de.gif)
网格
![](/icons/92229dou.gif)
例如计算机动画绘图、计算流体动力学(CFD)分析或制造和监视系统中处理大量数据集所使用
![](/icons/92229de.gif)
网格
存储网格 —— 存储网格在需要将大量信息存储在大量计算机上时使用
![](/icons/92229dou.gif)
所以数据
![](/icons/92229de.gif)
大小以及从网格存储/检索信息这样
![](/icons/92229de.gif)
负载被分布到网格中
为便于描述可能存在问题
![](/icons/92229de.gif)
地方
![](/icons/92229dou.gif)
请参看图 1
![](/icons/92229dou.gif)
图中给出了网格网络
![](/icons/92229de.gif)
基本布局
![](/icons/92229dou2.gif)
信息流从客户机发往分配节点
![](/icons/92229dou.gif)
经过网格节点
![](/icons/92229dou.gif)
网格节点和分配节点都使用了支持节点来实现完整
![](/icons/92229de.gif)
功能
![](/icons/92229dou.gif)
例如安全性、认证和数据/状态存储
![](/icons/92229dou2.gif)
在查看网格类型及其可伸缩性问题时
![](/icons/92229dou.gif)
我们将介绍橙色(潜在问题)和红色(实际问题)显示
![](/icons/92229de.gif)
警告问题
![](/icons/92229dou2.gif)
图 1. 基本网格布局
![设计可伸缩<img src='/icons/92229de.gif' />网格<img src='/icons/92229dou.gif' />第 1 部分: 网络架构](http://www.crazycoder.cn/WebFiles/20092/ee9b030c-3709-43e8-ac92-9c4a11d52435.g<img src='/icons/92229if.gif' />)
有了上面定义
![](/icons/92229de.gif)
网格类型
![](/icons/92229dou.gif)
让我们了解
![](/icons/92229yi.gif)
下影响这些网格类型可伸缩性
![](/icons/92229de.gif)
潜在问题
![](/icons/92229dou2.gif)
高吞吐量网格需求
在高吞吐量网格中
![](/icons/92229dou.gif)
系统中有很多潜在
![](/icons/92229de.gif)
瓶颈和容易出现问题
![](/icons/92229de.gif)
地方
![](/icons/92229dou.gif)
必须解决这些问题以提高可伸缩性
![](/icons/92229dou2.gif)
高请求数和低请求持续时间在某些特殊情况下将导致问题
![](/icons/92229dou.gif)
图 2 对这些问题进行了整理总结
![](/icons/92229dou2.gif)
图 2. 高吞吐量网格中可伸缩性
![](/icons/92229de.gif)
问题
![设计可伸缩<img src='/icons/92229de.gif' />网格<img src='/icons/92229dou.gif' />第 1 部分: 网络架构](http://www.crazycoder.cn/WebFiles/20092/45c5383c-9398-4b8d-b236-83e41bfd17ef.g<img src='/icons/92229if.gif' />)
更详细地介绍说明:
分配节点就是
![](/icons/92229yi.gif)
个潜在瓶颈
![](/icons/92229dou.gif)
![](/icons/92229yinwei.gif)
经过系统
![](/icons/92229de.gif)
请求数会非常多
![](/icons/92229dou2.gif)
要想生成并发送大量
![](/icons/92229de.gif)
请求 —— 尤其是连续进行这种处理(即请求数将超出网格节点数) —— 就需要大量处理能力
网格节点和分配节点的间
![](/icons/92229de.gif)
网络也是
![](/icons/92229yi.gif)
个潜在
![](/icons/92229de.gif)
瓶颈
![](/icons/92229dou2.gif)
此处
![](/icons/92229de.gif)
问题并不是由于网络信息量引起
![](/icons/92229de.gif)
(因此也和传输速度无关)
![](/icons/92229dou.gif)
![](/icons/92229yinwei.gif)
请求都非常小
![](/icons/92229dou2.gif)
相反
![](/icons/92229dou.gif)
问题
![](/icons/92229de.gif)
主要根源在于大量
![](/icons/92229de.gif)
数据包以及网络延时
![](/icons/92229dou2.gif)
网络延时是建立连接
![](/icons/92229de.gif)
速度
![](/icons/92229dou.gif)
而不是传输速度
![](/icons/92229dou2.gif)
在有大量小请求
![](/icons/92229de.gif)
系统(尤其是在这些请求要经过大量主机时)中如果出现较长
![](/icons/92229de.gif)
网络延时
![](/icons/92229dou.gif)
就会导致可伸缩性降低
根据网格应用
![](/icons/92229chengxu.gif)
和组织结构
![](/icons/92229de.gif)
区别
![](/icons/92229dou.gif)
支持节点和网络也都可能会出现问题
![](/icons/92229dou2.gif)
如果网格
![](/icons/92229de.gif)
![](/icons/92229yi.gif)
部分处理过程依赖于大量对安全服务
![](/icons/92229de.gif)
请求或对数据库中数据
![](/icons/92229de.gif)
查询
![](/icons/92229dou.gif)
就需要相应地处理这个问题
![](/icons/92229dou2.gif)
随着网格规模和节点个数
![](/icons/92229de.gif)
增加
![](/icons/92229dou.gif)
这些组件上
![](/icons/92229de.gif)
负载也会增加
由于延时问题
![](/icons/92229de.gif)
缘故
![](/icons/92229dou.gif)
高吞吐量网格在网格类型中显得相当特殊
![](/icons/92229dou2.gif)
对于大部分网格类型来说
![](/icons/92229dou.gif)
反而是网络速度更容易出现问题
![](/icons/92229dou2.gif)
只有高吞吐量网格才需要担心网络延时
![](/icons/92229de.gif)
问题
![](/icons/92229dou2.gif)
高计算量网格需求
在高计算量网格中
![](/icons/92229dou.gif)
单个网格节点最有可能遇到性能问题
![](/icons/92229dou2.gif)
由于网格节点大量使用 CPU
![](/icons/92229dou.gif)
因此这种网格类型中最关键
![](/icons/92229de.gif)
组件就是确保在网格规模变大时
![](/icons/92229dou.gif)
为所有节点持续提供作业
![](/icons/92229dou2.gif)
通常在计算网格中
![](/icons/92229dou.gif)
都需要高度
![](/icons/92229de.gif)
并发性
![](/icons/92229dou2.gif)
您可能会希望相同计算或相同计算
![](/icons/92229de.gif)
组件能够同时完成
![](/icons/92229dou2.gif)
和大量网格节点同步进行通信
![](/icons/92229de.gif)
能力会增加分配节点
![](/icons/92229de.gif)
负载
![](/icons/92229dou2.gif)
不过
![](/icons/92229dou.gif)
网络需求还是很适度
![](/icons/92229de.gif)
![](/icons/92229dou2.gif)
您并不总是需要高速连接能力以及高吞吐量网格中所需要
![](/icons/92229de.gif)
那种低延时网络;不过您
![](/icons/92229de.gif)
网络
![](/icons/92229de.gif)
确需要能够和众多节点进行同步通信
![](/icons/92229dou2.gif)
例如
![](/icons/92229dou.gif)
如果每个请求大小为 10 KB
![](/icons/92229dou.gif)
那么理论上
![](/icons/92229yi.gif)
个 10 Mbps
![](/icons/92229de.gif)
以太网网络只能并发处理 125 个这种传输
![](/icons/92229dou2.gif)
实际上
![](/icons/92229dou.gif)
您很少会达到最大处理能力
![](/icons/92229de.gif)
80%
![](/icons/92229dou.gif)
也就是 100 个并发交换
![](/icons/92229dou2.gif)
虽然确切
![](/icons/92229de.gif)
限制显然依赖于网格网络和应用
![](/icons/92229chengxu.gif)
![](/icons/92229dou.gif)
不过图 3 对这些限制进行了整理总结
![](/icons/92229dou2.gif)
图 3. 高计算量网格中
![](/icons/92229de.gif)
可伸缩性问题
![设计可伸缩<img src='/icons/92229de.gif' />网格<img src='/icons/92229dou.gif' />第 1 部分: 网络架构](http://www.crazycoder.cn/WebFiles/20092/130ec4bf-0f85-4b19-9093-f06dd2a08628.g<img src='/icons/92229if.gif' />)
您还会注意到网格节点也被显示为可能出现问题
![](/icons/92229de.gif)
地方了
![](/icons/92229dou2.gif)
由于作业
![](/icons/92229de.gif)
计算特性
![](/icons/92229dou.gif)
这个问题确实存在
![](/icons/92229dou2.gif)
节点要能够接受任务并对其进行处理
![](/icons/92229dou.gif)
这
![](/icons/92229yi.gif)
点非常重要
![](/icons/92229dou2.gif)
要实现最佳性能和可伸缩性
![](/icons/92229dou.gif)
您必须尝试并满足性能以及跨网格节点加载
![](/icons/92229de.gif)
需要
![](/icons/92229dou2.gif)
“Bandwidth management in grids”(请参看 参考资料)
![](/icons/92229yi.gif)
文提供了有关处理这些问题
![](/icons/92229de.gif)
更多信息
![](/icons/92229dou2.gif)
高内存量网格需求
高内存量网格
![](/icons/92229dou.gif)
例如 CFD 分析中使用
![](/icons/92229de.gif)
网络
![](/icons/92229dou.gif)
依赖于和网格节点进行交换
![](/icons/92229de.gif)
大量数据
![](/icons/92229dou2.gif)
这些数据可以是由分配节点直接提供
![](/icons/92229de.gif)
![](/icons/92229dou.gif)
也可以是由支持节点间接提供
![](/icons/92229de.gif)
![](/icons/92229dou.gif)
结果通过分配节点返回到支持节点
![](/icons/92229dou2.gif)
不管信息源是什么
![](/icons/92229dou.gif)
网络
![](/icons/92229de.gif)
性能以及可以快速交换大量信息
![](/icons/92229de.gif)
能力是网格可伸缩性
![](/icons/92229de.gif)
关键
![](/icons/92229dou2.gif)
如果您增加了节点
![](/icons/92229de.gif)
个数
![](/icons/92229dou.gif)
网络速度太慢就可能意味着节点在那里空等数据
![](/icons/92229dou.gif)
而不是处理请求
![](/icons/92229dou2.gif)
下面整理总结了这些限制:
图 4. 高内存量网格
![](/icons/92229de.gif)
可伸缩性问题
![设计可伸缩<img src='/icons/92229de.gif' />网格<img src='/icons/92229dou.gif' />第 1 部分: 网络架构](http://www.crazycoder.cn/WebFiles/20092/ded700a2-06e9-4dc2-816f-53d671f12ded.g<img src='/icons/92229if.gif' />)
我们可以确定下面
![](/icons/92229de.gif)
问题:
网络性能 —— 具体来说
![](/icons/92229dou.gif)
就是按照能够保持节点非常繁忙
![](/icons/92229de.gif)
速率交换信息
![](/icons/92229de.gif)
能力 —— 这种能力非常重要
![](/icons/92229dou2.gif)
不过这种能力
![](/icons/92229de.gif)
并发性并不是十分重要
![](/icons/92229dou2.gif)
这是由于任务
![](/icons/92229de.gif)
特性决定
![](/icons/92229de.gif)
;区别节点可能会以区别速率对信息进行处理
![](/icons/92229dou.gif)
因此网络上
![](/icons/92229de.gif)
并发负载很少
支持节点或分配节点(至少是要处理
![](/icons/92229de.gif)
数据源)必须能够处理大量
![](/icons/92229de.gif)
数据量
![](/icons/92229dou2.gif)
尽管总
![](/icons/92229de.gif)
并发网络负载应该不成问题
![](/icons/92229dou.gif)
但是对于支持节点来说
![](/icons/92229dou.gif)
数据
![](/icons/92229de.gif)
聚集会很高
![](/icons/92229dou2.gif)
还需要记住
![](/icons/92229dou.gif)
支持节点必须能够在物理上以保持系统繁忙
![](/icons/92229de.gif)
速度提供信息;并且尽可能保持网络饱和
![](/icons/92229dou.gif)
从而使网格节点保持繁忙
![](/icons/92229de.gif)
状态
分配节点需要能够从网格节点接受响应
![](/icons/92229dou2.gif)
它们
![](/icons/92229de.gif)
需求和上面介绍
![](/icons/92229de.gif)
支持节点类似
![](/icons/92229dou2.gif)
分配节点上
![](/icons/92229de.gif)
数据集中程度要远远高于网络上
![](/icons/92229de.gif)
其他地方
![](/icons/92229dou2.gif)
如果分配节点负责为网格节点提供信息
![](/icons/92229dou.gif)
那么数据集中程度仍然会非常高
通常
![](/icons/92229dou.gif)
在高内存量网格中
![](/icons/92229dou.gif)
来自网格节点
![](/icons/92229de.gif)
结果数据被聚集到
![](/icons/92229yi.gif)
个数据结构中
![](/icons/92229dou.gif)
并被发送回客户机
![](/icons/92229dou.gif)
因此主要问题依然在于网格内部
![](/icons/92229dou.gif)
而并没有超出网格范围
![](/icons/92229dou2.gif)
这
![](/icons/92229yi.gif)
点对于最后
![](/icons/92229yi.gif)
种网格解决方案 —— 存储网格并不适用
![](/icons/92229dou2.gif)
存储网格需求
在存储网格中
![](/icons/92229dou.gif)
通常会有来自客户机
![](/icons/92229de.gif)
大量信息(或者说大量较小
![](/icons/92229de.gif)
请求)
![](/icons/92229dou.gif)
它们会首先通过客户机网络接口集中在
![](/icons/92229yi.gif)
起
![](/icons/92229dou.gif)
最终通过分配节点分发到适当
![](/icons/92229de.gif)
网格节点上
![](/icons/92229dou2.gif)
下面整理总结了需要注意
![](/icons/92229de.gif)
几点
![](/icons/92229dou2.gif)
图 5. 存储网格中
![](/icons/92229de.gif)
可扩展性问题
![设计可伸缩<img src='/icons/92229de.gif' />网格<img src='/icons/92229dou.gif' />第 1 部分: 网络架构](http://www.crazycoder.cn/WebFiles/20092/3db2d342-f8eb-4988-89b1-36f726cb8bd9.g<img src='/icons/92229if.gif' />)
关键元素是遍及系统
![](/icons/92229de.gif)
网络
![](/icons/92229dou2.gif)
当和网格节点或外部
![](/icons/92229de.gif)
客户机交换数据时
![](/icons/92229dou.gif)
网格内存有大量
![](/icons/92229de.gif)
数据
![](/icons/92229dou.gif)
因此可以很轻松地交换信息
分配节点是在
![](/icons/92229yi.gif)
个典型
![](/icons/92229de.gif)
存储节点中实现可伸缩性
![](/icons/92229de.gif)
最大障碍
![](/icons/92229dou.gif)
![](/icons/92229yinwei.gif)
随着网格节点数目
![](/icons/92229de.gif)
增加
![](/icons/92229dou.gif)
会有更多数据需要通过分配节点在内部和外部组件的间进行交换
![](/icons/92229dou2.gif)
根据网格应用
![](/icons/92229chengxu.gif)
![](/icons/92229de.gif)
区别
![](/icons/92229dou.gif)
分配节点
![](/icons/92229de.gif)
性能可能需要随着网格节点
![](/icons/92229de.gif)
数量线性伸缩
![](/icons/92229dou2.gif)
例如
![](/icons/92229dou.gif)
这就意味着10 个网格节点(需要 10 Mbps 连接来处理数据吞吐量)需要
![](/icons/92229yi.gif)
个能够分发 100 Mbps 数据
![](/icons/92229de.gif)
分配节点
![](/icons/92229dou2.gif)
如果扩展到 100 个节点
![](/icons/92229dou.gif)
就需要 1Gbps
![](/icons/92229de.gif)
分配节点
![](/icons/92229dou2.gif)
网络技术
从对网格节点和可伸缩性
![](/icons/92229de.gif)
讨论来看
![](/icons/92229dou.gif)
显然网络结构、拓扑和所使用
![](/icons/92229de.gif)
技术对于网格
![](/icons/92229de.gif)
可伸缩性都非常关键
![](/icons/92229dou2.gif)
如果网络环境是不可伸缩
![](/icons/92229de.gif)
![](/icons/92229dou.gif)
那么您
![](/icons/92229de.gif)
网格也将无法伸缩
![](/icons/92229dou2.gif)
在本节中
![](/icons/92229dou.gif)
我们将介绍可以解决核心网络问题
![](/icons/92229de.gif)
主要考虑事项以及
![](/icons/92229yi.gif)
些举例技术
![](/icons/92229dou2.gif)
网络延时、速度、吞吐量和可伸缩性
影响网格可伸缩性
![](/icons/92229de.gif)
关键网络原因有延时、速度、吞吐量和可伸缩性
![](/icons/92229dou2.gif)
它们解决了网格解决方案中有关网络系统潜在可伸缩性
![](/icons/92229de.gif)
各种问题
![](/icons/92229dou2.gif)
下面将逐
![](/icons/92229yi.gif)
介绍这些问题:
网络延时是启动网络上两个节点的间
![](/icons/92229de.gif)
通信通道所需要
![](/icons/92229de.gif)
时间
![](/icons/92229dou2.gif)
延时受到很多原因
![](/icons/92229de.gif)
影响
![](/icons/92229dou.gif)
随着网络中节点数目
![](/icons/92229de.gif)
增加
![](/icons/92229dou.gif)
这个问题会变得更加严重
![](/icons/92229dou2.gif)
尽管延时并不会影响数据传输
![](/icons/92229de.gif)
速率
![](/icons/92229dou.gif)
但是它确实延迟了传输
![](/icons/92229de.gif)
启动
网络速度是系统
![](/icons/92229de.gif)
网络接口
![](/icons/92229de.gif)
理论速度
![](/icons/92229dou2.gif)
物理网络
![](/icons/92229de.gif)
速度通常是指整个网络
![](/icons/92229de.gif)
数据传输速度
![](/icons/92229dou.gif)
必须被所有节点共享
网络吞吐量是网络上单个点可以实现
![](/icons/92229de.gif)
持续不变
![](/icons/92229de.gif)
速度
![](/icons/92229dou2.gif)
吞吐量是由网络结构/拓扑所决定
![](/icons/92229de.gif)
![](/icons/92229dou2.gif)
对于某些网络类型来说
![](/icons/92229dou.gif)
吞吐量会比较低
![](/icons/92229dou.gif)
这是
![](/icons/92229yinwei.gif)
其结构强制网络通信只通过单个节点传递
网络可伸缩性决定了多少节点可以连接到网络
![](/icons/92229de.gif)
单个例子上
![](/icons/92229dou2.gif)
显然
![](/icons/92229dou.gif)
网络解决方案
![](/icons/92229de.gif)
可伸缩性和网格
![](/icons/92229de.gif)
可伸缩性的间存在直接关系
![](/icons/92229dou2.gif)
如果您选择
![](/icons/92229de.gif)
网络解决方案在单个网络中只能支持 100 个节点
![](/icons/92229dou.gif)
那么显然这也会成为网格
![](/icons/92229de.gif)
限制
这些参数结合起来严格控制着网格
![](/icons/92229de.gif)
可伸缩性
![](/icons/92229dou2.gif)
例如
![](/icons/92229dou.gif)
高内存量网格中
![](/icons/92229de.gif)
网格吞吐量
![](/icons/92229dou.gif)
尤其是经过分配节点
![](/icons/92229de.gif)
吞吐量
![](/icons/92229dou.gif)
要依赖于网络吞吐量
![](/icons/92229dou2.gif)
常用网络硬件
在谈及常用硬件时
![](/icons/92229dou.gif)
我们要讨论
![](/icons/92229de.gif)
是以太网
![](/icons/92229dou.gif)
这是大部分计算系统中使用
![](/icons/92229de.gif)
![](/icons/92229yi.gif)
种网络硬件
![](/icons/92229dou.gif)
因此其价格低廉
![](/icons/92229dou.gif)
并得到很好
![](/icons/92229de.gif)
支持
![](/icons/92229dou2.gif)
这种支持非常重要
![](/icons/92229dou.gif)
![](/icons/92229yinwei.gif)
硬件
![](/icons/92229de.gif)
使用范围越广泛
![](/icons/92229dou.gif)
网格网络
![](/icons/92229de.gif)
部署也就越容易
![](/icons/92229dou.gif)
并且您无需担心操作系统是否支持
![](/icons/92229dou2.gif)
因此可伸缩性也得到了增强
![](/icons/92229dou.gif)
![](/icons/92229yinwei.gif)
它很容易使用并且部署不受限制
![](/icons/92229dou2.gif)
使用以太网和其他
![](/icons/92229yi.gif)
些不太常见
![](/icons/92229de.gif)
解决方案(例如 Firewire 或 USB)
![](/icons/92229de.gif)
问题是它们
![](/icons/92229de.gif)
速度和单个网段中所支持
![](/icons/92229de.gif)
节点最大数目有
![](/icons/92229yi.gif)
些限制
![](/icons/92229dou2.gif)
它们还容易产生非常明显
![](/icons/92229de.gif)
延时
![](/icons/92229dou.gif)
这是
![](/icons/92229yinwei.gif)
较低
![](/icons/92229de.gif)
延时需要更高成本
![](/icons/92229de.gif)
组件
![](/icons/92229dou2.gif)
使用以太网
![](/icons/92229dou.gif)
速度可以达到 10 Gbps(在使用全双工模式时甚至可以达到 20 Gbps)
![](/icons/92229dou.gif)
但是其吞吐量要受到单个系统中可以使用
![](/icons/92229de.gif)
最快速率
![](/icons/92229de.gif)
限制
![](/icons/92229dou2.gif)
通过使用
![](/icons/92229yi.gif)
个网络交换机
![](/icons/92229dou.gif)
您可以将多个较慢节点
![](/icons/92229de.gif)
吞吐量合并成
![](/icons/92229yi.gif)
个吞吐量更大
![](/icons/92229de.gif)
节点
![](/icons/92229dou2.gif)
例如
![](/icons/92229dou.gif)
使用
![](/icons/92229yi.gif)
个可以支持 24 台主机、吞吐量为 100Mbps 主机
![](/icons/92229de.gif)
交换机
![](/icons/92229dou.gif)
其中每台主机吞吐量为 1Gbps
![](/icons/92229dou.gif)
这种情况并不少见
![](/icons/92229dou2.gif)
然而
![](/icons/92229dou.gif)
网络
![](/icons/92229de.gif)
最大吞吐量仍然只有 1Gbps
![](/icons/92229dou2.gif)
这种环境
![](/icons/92229de.gif)
优点是您可以为网格网络中区别元素分配最适当
![](/icons/92229de.gif)
网络接口速度
![](/icons/92229dou.gif)
这实际上非常有助于实现可伸缩性
![](/icons/92229dou2.gif)
专用网络硬件
在使用专用网络硬件时
![](/icons/92229dou.gif)
您就要花费更高成本了
![](/icons/92229dou2.gif)
其优点是您可以获得更高
![](/icons/92229de.gif)
数据传输速率
![](/icons/92229dou.gif)
减少网络节点
![](/icons/92229de.gif)
限制
![](/icons/92229dou.gif)
并可以显著改善网络延时
![](/icons/92229dou2.gif)
例如
![](/icons/92229dou.gif)
Infiniband 网络标准
![](/icons/92229de.gif)
速度最高可达 30,000 Mbps
![](/icons/92229dou.gif)
最多可以支持 10,000 个节点
![](/icons/92229dou.gif)
其延时只有 6µs
![](/icons/92229dou2.gif)
然而
![](/icons/92229dou.gif)
要实现这个目标
![](/icons/92229dou.gif)
网络拓扑和结构需要遵循更严格
![](/icons/92229de.gif)
规则
![](/icons/92229dou2.gif)
例如
![](/icons/92229dou.gif)
使用 Myrinet 和 QsNet 解决方案时
![](/icons/92229dou.gif)
单个网络中被限制为只能有 128 个节点
![](/icons/92229dou2.gif)
更多网络节点只能通过使用专用网络交换机支持
![](/icons/92229dou.gif)
这种交换机让您可以将这些小型网络合并在
![](/icons/92229yi.gif)
起
![](/icons/92229dou.gif)
构成
![](/icons/92229yi.gif)
个 4.096 甚至更多节点
![](/icons/92229de.gif)
节点组
![](/icons/92229dou2.gif)
Myrinet 和 QsNet 可能
![](/icons/92229de.gif)
延时是 2µs
![](/icons/92229dou.gif)
其结构提供了连接单个节点
![](/icons/92229de.gif)
端到端
![](/icons/92229de.gif)
连接能力
![](/icons/92229dou.gif)
而不是以太网所支持
![](/icons/92229de.gif)
总线模型
![](/icons/92229dou2.gif)
这将导致更低
![](/icons/92229de.gif)
节点间
![](/icons/92229de.gif)
通信时间
![](/icons/92229dou.gif)
这对于节点间需要协作
![](/icons/92229de.gif)
计算网格来说非常有用
![](/icons/92229dou2.gif)
这些解决方案
![](/icons/92229de.gif)
吞吐量还受到网络解决方案整体吞吐量
![](/icons/92229de.gif)
限制
![](/icons/92229dou2.gif)
网络中
![](/icons/92229de.gif)
所有节点都使用了相同
![](/icons/92229de.gif)
网络接口
![](/icons/92229dou.gif)
因此具有相同
![](/icons/92229de.gif)
速度和吞吐能力
![](/icons/92229dou2.gif)
不过
![](/icons/92229dou.gif)
它并没有提供以太网提供
![](/icons/92229de.gif)
相同
![](/icons/92229de.gif)
灵活性或聚集样式
![](/icons/92229de.gif)
架构
![](/icons/92229dou2.gif)
网络支持和限制整理总结
有关网络技术以及其对区别网格类型
![](/icons/92229de.gif)
适用性
![](/icons/92229de.gif)
更详细讨论已经超出了本教程
![](/icons/92229de.gif)
范围
![](/icons/92229dou.gif)
不过表 1 对区别技术
![](/icons/92229de.gif)
速度和限制进行了整理总结
![](/icons/92229dou2.gif)
表 1. 定义每种屏幕类型使用
![](/icons/92229de.gif)
对象类
技术 通道 最高速度(Mbps) 典型速度(Mbps) 延时 可伸缩性
以太网(10 Mbps) 1 10 1.2 100µs 1024
以太网(100 Mbps) 1 100 12 100µs 1024
以太网(1 Gbps) 1 1000 125 100µs 1024
以太网(10 Gbps) 1 10000 1250 100µs 1024
Infiniband(x1) 1 2500 162 6µs >10,000
Infiniband (x4) 1 10000 1250 6µs >10,000
Infiniband (x12) 1 30000 3750 6µs >10,000
Myrinet 2 2000 248 6.3µs >10,000
QsNet 2 4200 350 4µs 1024
QsNetII 2 8500 900 1.8µs 4096
SCI 1 1600 200 4µs >512
Firewire >1 400 50 ~100µs 64
Firewire 800 >1 800 100 ~100µs 64
Firewire 1600 >1 1600 200 ~100µs 64
USB >1 12 1.5 ~100µs <128
USB2 >1 480 60 ~100µs <128
本教程余下
![](/icons/92229de.gif)
内容将介绍以太网网络
![](/icons/92229dou.gif)
![](/icons/92229yinwei.gif)
它不仅容易理解
![](/icons/92229dou.gif)
而且还为解决方案
![](/icons/92229de.gif)
结构提供了更多
![](/icons/92229de.gif)
灵活性
![](/icons/92229dou2.gif)
网络结构和性能
网络硬件肯定会影响所使用
![](/icons/92229de.gif)
网络结构和拓扑结构
![](/icons/92229dou2.gif)
不要忘记这
![](/icons/92229yi.gif)
点
![](/icons/92229dou.gif)
即使是在网络硬件能力限制的内
![](/icons/92229dou.gif)
它也会对网络结构和拓扑结构产生影响
![](/icons/92229dou.gif)
要考虑区别
![](/icons/92229de.gif)
结构以充分利用可用
![](/icons/92229de.gif)
功能
![](/icons/92229dou2.gif)
例如
![](/icons/92229dou.gif)
使用以太网的类
![](/icons/92229de.gif)
常用硬件
![](/icons/92229dou.gif)
部署非常简单
![](/icons/92229dou.gif)
而且价格也不贵
![](/icons/92229dou2.gif)
然而
![](/icons/92229dou.gif)
其对节点数以及总体性能
![](/icons/92229de.gif)
限制可能会限制添加节点
![](/icons/92229de.gif)
能力
![](/icons/92229dou2.gif)
即使使用专用网络硬件
![](/icons/92229dou.gif)
如果单个网络
![](/icons/92229de.gif)
可伸缩性和性能没有达到您需要
![](/icons/92229de.gif)
级别
![](/icons/92229dou.gif)
可以将更多
![](/icons/92229de.gif)
网络添加到网络结构中
![](/icons/92229dou2.gif)
例如
![](/icons/92229dou.gif)
以下任
![](/icons/92229yi.gif)
或全部思路方法都可以有效地改进总体性能:
将客户机和网格环境
![](/icons/92229de.gif)
网络分离
将分配节点到网格节点和网格节点到支持节点
![](/icons/92229de.gif)
网络分离
将每
![](/icons/92229yi.gif)
组网格节点
![](/icons/92229de.gif)
网络分离
高负载
![](/icons/92229de.gif)
系统(分配/支持节点)使用其他网络接口
所使用
![](/icons/92229de.gif)
准确
![](/icons/92229de.gif)
模型和解决方案还取决于其他考虑
![](/icons/92229dou.gif)
因此本教程后面
![](/icons/92229de.gif)
内容我们将回到讨论
![](/icons/92229de.gif)
主题以及可能
![](/icons/92229de.gif)
解决思路方法
![](/icons/92229dou2.gif)
网络结构和解决方案
网格
![](/icons/92229de.gif)
整体结构和架构以及可能
![](/icons/92229de.gif)
解决方案依赖于我们已经讨论
![](/icons/92229de.gif)
所有主题
![](/icons/92229dou2.gif)
现在我们将通过查看几个具体举例
![](/icons/92229dou.gif)
了解如何使用前面几节介绍
![](/icons/92229de.gif)
知识解决问题
![](/icons/92229dou.gif)
从而获得
![](/icons/92229yi.gif)
个更全面
![](/icons/92229de.gif)
解决方案
![](/icons/92229dou2.gif)
我们将查看
![](/icons/92229yi.gif)
些能够更轻松地扩展网格环境
![](/icons/92229de.gif)
解决方案
![](/icons/92229dou.gif)
以及每种解决方案
![](/icons/92229de.gif)
局限性
![](/icons/92229dou2.gif)
使用多个网络接口
分配节点通常都是网格吞吐量
![](/icons/92229de.gif)
主要限制
![](/icons/92229dou.gif)
尤其是当网格中节点数目增加时
![](/icons/92229dou.gif)
这个问题更加突出
![](/icons/92229dou2.gif)
随着节点数目
![](/icons/92229de.gif)
增加
![](/icons/92229dou.gif)
您可能会达到所使用
![](/icons/92229de.gif)
网络解决方案
![](/icons/92229de.gif)
可伸缩性限制
![](/icons/92229dou.gif)
或者是网络带宽限制
![](/icons/92229dou2.gif)
通过将网格节点划分成更小
![](/icons/92229de.gif)
组
![](/icons/92229dou.gif)
并在成组
![](/icons/92229de.gif)
网格节点和分配节点的间提供
![](/icons/92229yi.gif)
个惟
![](/icons/92229yi.gif)
接口
![](/icons/92229dou.gif)
您就可以在扩展网格
![](/icons/92229de.gif)
同时消除瓶颈问题
![](/icons/92229dou2.gif)
下面展示了
![](/icons/92229yi.gif)
个简单举例
图 6. 使用多个网络接口
![设计可伸缩<img src='/icons/92229de.gif' />网格<img src='/icons/92229dou.gif' />第 1 部分: 网络架构](http://www.crazycoder.cn/WebFiles/20092/c3694b65-08ad-400d-8b90-7457b4e4d6d5.g<img src='/icons/92229if.gif' />)
每组
![](/icons/92229de.gif)
节点数量取决于带宽需求
![](/icons/92229dou2.gif)
在高吞吐量或高计算量
![](/icons/92229de.gif)
网格中
![](/icons/92229dou.gif)
带宽需求非常低
![](/icons/92229dou.gif)
因此
![](/icons/92229dou.gif)
每个接口上仅支持 100 个或更多个节点即可
![](/icons/92229dou2.gif)
在高内存量或存储网格中
![](/icons/92229dou.gif)
带宽需求可能产生更小
![](/icons/92229de.gif)
组
![](/icons/92229dou.gif)
每个接口只有 10 个或 20 个节点
![](/icons/92229dou2.gif)
请记住
![](/icons/92229dou.gif)
随着分配节点上网络接口数量
![](/icons/92229de.gif)
增加
![](/icons/92229dou.gif)
分配节点需要处理
![](/icons/92229de.gif)
任务和数据
![](/icons/92229de.gif)
数量也会增加
![](/icons/92229dou.gif)
这会引发多个问题
![](/icons/92229dou2.gif)
使用子分配节点
在
![](/icons/92229yi.gif)
个网格中
![](/icons/92229dou.gif)
如果通过分配节点从客户机发往网格节点
![](/icons/92229de.gif)
数据非常
![](/icons/92229de.gif)
少(例如高吞吐量和高计算量网格中)
![](/icons/92229dou.gif)
那么主要
![](/icons/92229de.gif)
限制就是分配节点管理支持执行作业所需要
![](/icons/92229de.gif)
大量并发连接和请求
![](/icons/92229de.gif)
能力
![](/icons/92229dou2.gif)
随着网格
![](/icons/92229de.gif)
扩展
![](/icons/92229dou.gif)
这个问题会愈发严重
![](/icons/92229yi.gif)
种可能
![](/icons/92229de.gif)
解决方案是控制
![](/icons/92229yi.gif)
个分配节点执行
![](/icons/92229de.gif)
任务
![](/icons/92229dou.gif)
将分配各个任务单元
![](/icons/92229de.gif)
实际管理分发给多个子分配节点
![](/icons/92229dou.gif)
如下图所示
![](/icons/92229dou2.gif)
图 7. 通过附加
![](/icons/92229de.gif)
分配节点对作业进行子分配
![设计可伸缩<img src='/icons/92229de.gif' />网格<img src='/icons/92229dou.gif' />第 1 部分: 网络架构](http://www.crazycoder.cn/WebFiles/20092/25b77cc0-d5c4-47ec-af29-de604e6154ea.g<img src='/icons/92229if.gif' />)
下面考虑
![](/icons/92229yi.gif)
下计算网格中
![](/icons/92229de.gif)
![](/icons/92229yi.gif)
个任务请求
![](/icons/92229dou.gif)
它所涉及
![](/icons/92229de.gif)
计算
![](/icons/92229de.gif)
数值范围从 1 到 30,000
![](/icons/92229dou.gif)
在 300 个节点
![](/icons/92229de.gif)
网格网络上执行
![](/icons/92229dou2.gif)
使用如图 7 所示
![](/icons/92229de.gif)
结构
![](/icons/92229dou.gif)
您可以将范围 1 到 10,000
![](/icons/92229de.gif)
计算分发到子分配节点 1 上
![](/icons/92229dou.gif)
并在前 100 个网格节点上进行处理;将第 2 部分内容(10,001 到 20,000)分发到子分配节点 2 上;依此类推
![](/icons/92229dou2.gif)
从可伸缩性
![](/icons/92229de.gif)
观点来说
![](/icons/92229dou.gif)
这个结构提供了
![](/icons/92229yi.gif)
个最佳模型
![](/icons/92229dou.gif)
![](/icons/92229yinwei.gif)
它使您可以根据网络中
![](/icons/92229de.gif)
节点数目和预期
![](/icons/92229de.gif)
任务级别来对主要
![](/icons/92229de.gif)
限制点(分配节点)进行扩展
![](/icons/92229dou2.gif)
如果您向网格添加了 200 个节点
![](/icons/92229dou.gif)
就可以添加另外两个子分配节点来处理作业
![](/icons/92229de.gif)
分发
在非常大型
![](/icons/92229de.gif)
网格环境中
![](/icons/92229dou.gif)
您甚至可以向系统添加额外
![](/icons/92229de.gif)
层
![](/icons/92229dou.gif)
从而确保每层上分配节点
![](/icons/92229de.gif)
性能都可以匹配它们支持
![](/icons/92229de.gif)
任务级别和网格节点
![](/icons/92229de.gif)
需求
![](/icons/92229dou2.gif)
例如
![](/icons/92229dou.gif)
图 8 给出了 3 层分配节点
![](/icons/92229dou.gif)
创建
![](/icons/92229yi.gif)
个 2级网格
![](/icons/92229dou.gif)
它让您可以更加有效地将任务分发给网格节点
![](/icons/92229de.gif)
主要部分
图 8. 多层子分配节点
![设计可伸缩<img src='/icons/92229de.gif' />网格<img src='/icons/92229dou.gif' />第 1 部分: 网络架构](http://www.crazycoder.cn/WebFiles/20092/9544ed93-43bd-47bb-91cd-5ed6a2e77235.g<img src='/icons/92229if.gif' />)
使用子分配节点
![](/icons/92229de.gif)
解决方案中
![](/icons/92229dou.gif)
分发管理器直接负责创建通过网格分发
![](/icons/92229de.gif)
各个任务单元
![](/icons/92229dou2.gif)
既然可以分发任务
![](/icons/92229de.gif)
创建
![](/icons/92229dou.gif)
因此也可以将分发管理器分发
![](/icons/92229dou2.gif)
对于分发管理器既是网格瓶颈又是客户端瓶颈
![](/icons/92229de.gif)
网格来说
![](/icons/92229dou.gif)
您需要
![](/icons/92229yi.gif)
个稍有区别
![](/icons/92229de.gif)
解决方案
![](/icons/92229dou2.gif)
使用分布式分发管理器
在第 1 部分
![](/icons/92229de.gif)
存储网格举例中
![](/icons/92229dou.gif)
系统
![](/icons/92229de.gif)
关键瓶颈是分配节点
![](/icons/92229dou2.gif)
网络接口在这里不是限制原因
![](/icons/92229dou.gif)
不过却可能成为和分配节点处理
![](/icons/92229de.gif)
大量信息有关
![](/icons/92229de.gif)
广泛问题的
![](/icons/92229yi.gif)
![](/icons/92229dou2.gif)
如果存储节点要处理大量文档
![](/icons/92229dou.gif)
网络带宽可能并不会是什么问题
![](/icons/92229dou2.gif)
问题可能是分配节点必须处理
![](/icons/92229de.gif)
大量数据和请求
![](/icons/92229dou2.gif)
子分配节点在这种情况中不会有所帮助
![](/icons/92229dou.gif)
![](/icons/92229yinwei.gif)
架构依赖于处理所有请求
![](/icons/92229de.gif)
单个分配节点
您需要做
![](/icons/92229de.gif)
是将分发负载扩展到多个分配数据节点上
![](/icons/92229dou.gif)
同时要保留实际控制并管理分发但却不会直接处理数据
![](/icons/92229de.gif)
节点
![](/icons/92229dou2.gif)
您可以看到下面这个举例
![](/icons/92229dou2.gif)
图 9. 分布式分发管理器
![设计可伸缩<img src='/icons/92229de.gif' />网格<img src='/icons/92229dou.gif' />第 1 部分: 网络架构](http://www.crazycoder.cn/WebFiles/20092/097be547-90df-4c88-b37d-b4be180e6f49.g<img src='/icons/92229if.gif' />)
从架构
![](/icons/92229de.gif)
观点来看
![](/icons/92229dou.gif)
将任务提交给网格以及分发任务
![](/icons/92229de.gif)
思路方法已经发生了变化
![](/icons/92229dou2.gif)
可能
![](/icons/92229de.gif)
模型有两个:
![](/icons/92229yi.gif)
个需要修改客户机应用
![](/icons/92229chengxu.gif)
![](/icons/92229dou.gif)
因此它可以和网格管理器进行通信
![](/icons/92229dou.gif)
来确定使用哪个节点处理剩余
![](/icons/92229de.gif)
查询
![](/icons/92229dou.gif)
第 2个模型在客户机和分配数据节点的间使用了
![](/icons/92229yi.gif)
个通用
![](/icons/92229de.gif)
负载均衡设备
![](/icons/92229dou2.gif)
客户机并不清楚自己正在使用
![](/icons/92229de.gif)
是哪个分配数据节点
![](/icons/92229dou2.gif)
实际上
![](/icons/92229dou.gif)
分发管理器只控制网格节点的间
![](/icons/92229de.gif)
任务分发
![](/icons/92229dou.gif)
并
![](/icons/92229yi.gif)
直和各个分配数据节点联系
![](/icons/92229dou.gif)
来帮助监视网格负载
![](/icons/92229dou2.gif)
分布式分发管理器模型具有很好
![](/icons/92229de.gif)
可伸缩性
![](/icons/92229dou.gif)
![](/icons/92229yinwei.gif)
您可以进
![](/icons/92229yi.gif)
步向系统添加分配数据节点
![](/icons/92229dou.gif)
来处理来自客户机
![](/icons/92229de.gif)
负载
![](/icons/92229dou2.gif)
同样
![](/icons/92229de.gif)
原则也可以适用于其他领域
![](/icons/92229dou2.gif)
例如
![](/icons/92229dou.gif)
您可以在系统中引入多个支持节点
![](/icons/92229dou.gif)
它们相互进行通信
![](/icons/92229dou.gif)
从而提供
![](/icons/92229yi.gif)
致
![](/icons/92229de.gif)
数据、认证或其他支持信息
![](/icons/92229dou2.gif)
然而
![](/icons/92229dou.gif)
每个支持节点都分别负责处理
![](/icons/92229yi.gif)
组网格节点
![](/icons/92229de.gif)
负载
![](/icons/92229dou.gif)
可以直接进行处理
![](/icons/92229dou.gif)
也可以通过
![](/icons/92229yi.gif)
个负载均衡系统进行处理
![](/icons/92229dou2.gif)
使用单独
![](/icons/92229de.gif)
网络
如果
![](/icons/92229yi.gif)
个网格中
![](/icons/92229dou.gif)
支持节点和相关系统是系统瓶颈
![](/icons/92229dou.gif)
或者支持它们所需
![](/icons/92229de.gif)
网络负载是限制原因
![](/icons/92229dou.gif)
您可以使用很多彼此分离
![](/icons/92229de.gif)
网络
![](/icons/92229dou.gif)
它们会将负载从主网格网络上分离出来
![](/icons/92229dou2.gif)
这是
![](/icons/92229yi.gif)
个和本教程开始介绍
![](/icons/92229de.gif)
基本网格结构类似
![](/icons/92229de.gif)
模型
![](/icons/92229dou2.gif)
不过如果您应用了此处介绍
![](/icons/92229de.gif)
原则
![](/icons/92229dou.gif)
并且提供了多个支持组件
![](/icons/92229dou.gif)
那么就可以将这个解决方案进
![](/icons/92229yi.gif)
步完善
在图 10 中
![](/icons/92229dou.gif)
您可以看到除了为各个网格节点提供连接
![](/icons/92229de.gif)
主网络的外
![](/icons/92229dou.gif)
我们还对数据库和安全服务使用了单独
![](/icons/92229de.gif)
网络
![](/icons/92229dou2.gif)
图 10. 分布式分发管理器
![设计可伸缩<img src='/icons/92229de.gif' />网格<img src='/icons/92229dou.gif' />第 1 部分: 网络架构](http://www.crazycoder.cn/WebFiles/20092/9c6fde53-be61-47a8-bb5d-b7e87dd2011d.g<img src='/icons/92229if.gif' />)
在这个例子中
![](/icons/92229dou.gif)
解决方案需要 3 个单独
![](/icons/92229de.gif)
网络
![](/icons/92229dou.gif)
红色表示数据库网络
![](/icons/92229dou.gif)
绿色表示安全网络
![](/icons/92229dou.gif)
黑色表示分配节点接口连接
![](/icons/92229de.gif)
主网格
![](/icons/92229dou2.gif)
在每个网格节点中
![](/icons/92229dou.gif)
有 3 个单独
![](/icons/92229de.gif)
网络接口 —— 每个网络接口用于网格节点和的通信
![](/icons/92229de.gif)
网络
![](/icons/92229dou2.gif)
使用网格组
前面
![](/icons/92229de.gif)
解决方案针对系统中特定
![](/icons/92229de.gif)
瓶颈
![](/icons/92229dou2.gif)
这些解决方案可以解决网格中节点
![](/icons/92229de.gif)
特定网络接口
![](/icons/92229de.gif)
问题
![](/icons/92229dou.gif)
以及分发器所引起
![](/icons/92229de.gif)
问题
![](/icons/92229dou.gif)
还能解决各个网格组所引起
![](/icons/92229de.gif)
问题
![](/icons/92229dou2.gif)
我们可以组合这些解决方案
![](/icons/92229dou.gif)
从而产生
![](/icons/92229yi.gif)
个可伸缩
![](/icons/92229de.gif)
网格
![](/icons/92229dou.gif)
事实上
![](/icons/92229dou.gif)
可以将它看作
![](/icons/92229yi.gif)
种网格类型
![](/icons/92229dou2.gif)
描述这种解决方案
![](/icons/92229de.gif)
最简单方式是了解整个结构
![](/icons/92229dou.gif)
如下所示
![](/icons/92229dou2.gif)
图 11. 网格组
![设计可伸缩<img src='/icons/92229de.gif' />网格<img src='/icons/92229dou.gif' />第 1 部分: 网络架构](http://www.crazycoder.cn/WebFiles/20092/23a47607-b0ed-4147-9133-22defdd38dd9.g<img src='/icons/92229if.gif' />)
在这个解决方案中
![](/icons/92229dou.gif)
前面介绍
![](/icons/92229de.gif)
每种建议
![](/icons/92229de.gif)
使用方法都有所区别
![](/icons/92229dou.gif)
因此整体
![](/icons/92229de.gif)
解决方案也会区别:
子分配节点解决方案将任务负载划分到多个分配节点上
![](/icons/92229dou2.gif)
这可以帮助扩展分发请求
![](/icons/92229de.gif)
负载和网络负载
使用单独
![](/icons/92229de.gif)
网络来处理区别组件的间
![](/icons/92229de.gif)
通信
使用单独
![](/icons/92229de.gif)
网络接口来帮助将网络带宽负载划分到各个组件中
按照分组
![](/icons/92229de.gif)
形式组织支持节点
![](/icons/92229dou.gif)
并且通过另外
![](/icons/92229de.gif)
单独网络互相连接以提供协作信息
每个网格组都有自己
![](/icons/92229de.gif)
专用分配节点和支持节点
其结果是将每个小组都作为
![](/icons/92229yi.gif)
个单独
![](/icons/92229de.gif)
网格进行操作;不过通过连接到主分发管理器
![](/icons/92229dou.gif)
整个系统依然可以作为
![](/icons/92229yi.gif)
个网格工作
![](/icons/92229dou2.gif)
要使系统工作
![](/icons/92229dou.gif)
您需要对现有应用
![](/icons/92229chengxu.gif)
和环境进行很多修改
![](/icons/92229dou.gif)
在本系列教程第 2部分和最后
![](/icons/92229yi.gif)
部分中
![](/icons/92229dou.gif)
我们将更详细地介绍这些内容
![](/icons/92229dou2.gif)
结束语
网格解决方案
![](/icons/92229de.gif)
可伸缩性对于确保网格可以随业务需求而扩展来说至关重要
![](/icons/92229dou2.gif)
当您
![](/icons/92229de.gif)
需求扩展到需要
![](/icons/92229yi.gif)
个 150 节点
![](/icons/92229de.gif)
网格时
![](/icons/92229dou.gif)
如果您
![](/icons/92229de.gif)
网格不能处理这种需求
![](/icons/92229dou.gif)
就无法构建
![](/icons/92229yi.gif)
个 100 个节点
![](/icons/92229de.gif)
网格以优化您
![](/icons/92229de.gif)
关键应用
![](/icons/92229chengxu.gif)
![](/icons/92229dou2.gif)
在本教程中
![](/icons/92229dou.gif)
我们已经介绍了各种主要
![](/icons/92229de.gif)
网格类型
![](/icons/92229dou.gif)
这样就可以确定您
![](/icons/92229de.gif)
网格解决方案中可能存在
![](/icons/92229de.gif)
可伸缩性方面
![](/icons/92229de.gif)
主要障碍
![](/icons/92229dou2.gif)
的后
![](/icons/92229dou.gif)
我们使用大量
![](/icons/92229de.gif)
区别解决方案
![](/icons/92229dou.gif)
尝试对各种问题应用网络拓扑来解决具体
![](/icons/92229de.gif)
问题
![](/icons/92229dou2.gif)
这些并不是为问题提供解决方案
![](/icons/92229de.gif)
惟
![](/icons/92229yi.gif)
原因
![](/icons/92229dou2.gif)
因此
![](/icons/92229dou.gif)
在本系列
![](/icons/92229de.gif)
第 2 部分中
![](/icons/92229dou.gif)
在最后修改网格应用
![](/icons/92229chengxu.gif)
操作
![](/icons/92229de.gif)
方式的前
![](/icons/92229dou.gif)
我们将介绍网格中各个节点遇到
![](/icons/92229de.gif)
具体问题
![](/icons/92229dou.gif)
包括硬件改进和操作系统
![](/icons/92229de.gif)
影响
延伸阅读
最新评论