在前两篇博文中写了"如何实现IQ Multiplex Load balance的支持",打算在这里说说这种方式的适用场合,以及需要注意的一些问题。如果大家想了解更多IQ 15 Multiplex的知识,请访问如下地址:
使用外挂的第三方软件为IQ Multiplex提供LB支持,一般来说只能提供连接时的负载均衡,并且负载均衡的算法是"round robin",更高级的算法很难做到。如果客户端通过LB软件(例如开源的LB:balance)连接到IQ Multiplex的某个节点,如果由于某种原因该节点不可用,那么也做不到连接的自动故障切换。
此外,这种方式比较适合于查询操作,而对于LOAD操作会面临如下问题:
(1) load语句所装载的数据文件如何存放
(2) 使用balance软件所管理的IQ Multiplex节点都应该是写节点。否则,load操作会失败
下面具体说说load语句装载数据文件如何存放的问题。一种方式是“把数据文件分散存放在IQ Multiplex的每个节点所在机器的本地文件系统中”。但是如果使用了balance作为LB,那么有可能会造成某个LOAD语句提交到并没有相应数据文件的节点,从而造成load执行失败。作为这种方式的变通做法就是把所有要装载的数据文件在每个节点的本地文件系统中都放一份,这样做虽然可以解决问题,但是当数据文件尺寸比较大时需要的存储空间就会很大。大家可能要说,使用NFS不就可以了吗?从功能上说的确是可以的,但是NFS的效率不高会影响load的性能。另外,还有一种方法是采用Cluster文件系统。
此外,还可以把数据文件放在客户端机器的文件系统中,由于IQ 15提供了客户端加载支持,这样的存放方法也是可以的。不过这种方法需要有高速的网络连接,否则load的性能也会受到影响。
总结一下:
1. 如果打算使用第三方LB软件,那么对于查询操作是最适合的!
2. 对于load操作来说,如果也打算使用LB,那么就需要结合应用的情况正确的选择文件存放的位置
3. 对于load操作,如果使用LB,有可能会造成节点负载不均匀的情况。
4. 从目前IQ Multiplex的情况看,对于LOAD操作建议还是使用手工负载分配的方式,最好不用LB软件
以上的3篇有关IQ Multiplex如何实现LB的博文是个人的一些看法。仅供大家参考,有什么不妥的地方,欢迎讨论!
阅读(1662) | 评论(0) | 转发(0) |