Grid Virtual Server 的 Virtual Server 源于 LVS (Linux Virtual Server) , LVS 的意思就是把 多个 Linux 服务器 联合起来构成一个 虚拟的服务器 , 也就是 集群 。

那么这里的 Grid 是 怎么回事 呢 ?

集群 可以 算是 中心化 的 方式 。 中心化的方式始终存在一个问题 , 就是 “瓶颈”  。

瓶颈 包含 2 层 含义 , 一是 性能 , 二是 故障转移 。

性能瓶颈 好理解, 故障转移瓶颈 又是什么呢 ? 故障转移瓶颈 是指 中心化 的 资源 最终会有一个 “出入口” , 比如 负载均衡 架构 里的 交换机 , 又比如 数据库集群 里的 共享存储 。 如果 交换机 坏了 , 或者 共享存储 坏了 , 那么 中心化 的 可用性 就 坏了 。

通常解决这个问题的方法是 扩展增强硬件能力 , 也就是说 , “出入口” 是一个 超级硬件 。 但无论这个硬件如何强大 , 始终是一个 “脖子”(neck) 。

所以 , 如果反过来 , 由 客户端 自己决定连接哪个 服务器节点 , 那 “脖子” 的问题就迎刃而解了 。

客户端 一开始会连接到一个已知的 服务器节点 , 从这个服务器节点可以获取 其它的服务器节点列表 , 从 其它的 服务器节点 又可以获取更多的 服务器节点列表 , 客户端可以保存这些 服务器节点列表 , 然后选择一个 服务器节点 连接 。

这也许是 网格计算(Grid)的 开始 。  ^ ^

网格计算 不是 “去中心化” , 而是 “多中心化” 和 “客户端智能化” 。

所以 , Grid Virtual Server 的 意思, 就是用 上述的 Grid 的方式, 来构建一个 “Virtual Server” 。

要实现 Grid , 需要一个 Grid 协议 。 Grid 协议 , 可以看作是 Tcp 之上的一个轻薄的 应用层协议 。

Grid 协议可以嵌入到现有的各种应用层协议中 。 比如 可以嵌入到 Http 中 。 比如 , 可以给 Http Request 加一个 Header “Grid : ” , 表示 客户端 支持 Grid , 同时 Http Response 中可以加一个 Header “Grid-Server-List : ” , 用于返回 服务器节点列表 。 客户端 根据 服务器节点列表 来选择 访问 哪个节点 。

“多中心化” 当然会带来一些问题需要解决 。 比如 数据如何多中心化 ?  数据的 分区 水平扩展 并行计算 本来就是一个不容易的事 。 如果用 最终一致 来替代 强一致 , 可能事情就比较简单 。 未来 , 乐观 松耦合 是一个 好的方向 。 就像 乐观锁定 和 悲观锁定 。

并行计算 和 网格计算 是 未来 大计算能力 的 基石 。

并行计算 大计算能力 是 未来 白盒人工智能 的 基石 。

最新文章

  1. PostgreSQL隐藏字段tableoid
  2. Mac常用终端命令
  3. HDU 3062 && HDU 1824 && POJ 3678 && BZOJ 1997 2-SAT
  4. 最近用Timer踩了一个坑,分享一下避免别人继续踩
  5. String和包装类Integer\Double\Long\Float\Character 都是final类型
  6. Median Weight Bead_floyd
  7. git撤销删除
  8. Qt之自定义界面(添加自定义标题栏)
  9. 在Linux里设置环境变量的方法(export PATH)
  10. 8 fastJson的使用
  11. LINUX常用命令--重定向、管道篇(四)
  12. iOS下WebRTC音视频通话(二)-局域网内音视频通话
  13. git的安装(和远程仓库建立连接)
  14. Spring Boot (十):邮件服务
  15. hive -- 协同过滤sql语句
  16. JAG Practice Contest for ACM-ICPC Asia Regional 2016.K.Non-redundant Drive(点分治)
  17. Julia 下载 安装 juno 开发环境搭建
  18. 帝国CMS 列表模板页面 list.var 内容截取
  19. shell之使用paste命令按列拼接多个文件
  20. ./configure: error: C compiler cc is not found

热门文章

  1. DataTable数据统计方法
  2. L230 RF可靠性测试-RF指标
  3. day 58 关于bootstrap
  4. Popover 弹出框 设置top,显示有时是向下的,解决方式
  5. idea创建maven spring项目,出现的问题
  6. lftp的安装
  7. 了解Git的工作区和暂存区
  8. Java中的容器 I————浅谈Queue和PriorityQueue
  9. ssh和ejb的区别
  10. jQ常用选择器