background image
www.fanruan.com
1)访问同一 web 工程
2)Cube 存储地址是一致的
因为同一个 web 工程下,要求 cube 的存储地址是一致的,因此要求 cube
存储地址一定要一样。
而真正使用的时候,ceph 的实现需要至少三台计算机来实现,而实际企业
应用中,比较少使用三台;而 nfs 均可以且是 linux 本身的,因此使用“nfs”
方案。
系统数据配置
单节点的情况下,利用缓存和通过操作系统的文件系统来保存数据的方式,
在集群模式下不再合适。主要原因在于数据的一致性问题,多个节点可能进行同
时读写,更改系统数据,最终势必会造成整体数据不一致。最好的解决方案是系
统配置数据全部交给 MySQL 等关系型数据库来管理。但由于这样工程量好大,
更主要的原因为许多代码缺少维护,贸然更改可能带来意想不到的 bug。于是
我们采用一种折中的做法。在集群中选出一台几点作为主节点,简称 M。其余
节点担当子节点,简称 S。当 S 上所有与更改系统配置相关的操作,全部发送到
M 上进行处理。M 负责来更改系统状态,维护整个系统到底一致的状态。S 节
点放弃全部的缓存数据,读取状态的时候,不再通过读取自身数据,而是通过向
M 发送读取请求,获得 M 上的数据。M 节点自身可以存在缓存数据。其他数据
S 节点与 M 节点时等同的,不存在从属关系。
因此按上述原由我们提供如下解决方案:
1)
mysql 数据库:原 web 工程中存在 finedb 的配置信息转存到 mysql 数据
库中。因为 finedb 数据库只能有一个连接,无法多节点同时读取,而 mysql
数据库则不存在。Logdb 也需迁移;
2)
主子节点:我们使用主子节点的方式来配置集群,系统数据的更改均在主节