负载均衡集群是由一组相互独立的计算机系统构成,通过常规网络或专用网络进行连接,由路由器衔接在一起,各节点相互协作、共同负载、均衡压力,对客户端来说,整个群集可以视为一台具有超高性能的独立服务器。

1、实现原理

  实现数据库的负载均衡技术,首先要有一个可以控制连接数据库的控制端。在这里,它截断了数据库和程序的直接连接,由所有的程序来访问这个中间层,然后再由中间层来访问数据库。这样,我们就可以具体控制访问某个数据库了,然后还可以根据数据库的当前负载采取有效的均衡策略,来调整每次连接到哪个数据库。

2、实现多数据库数据同步

  对于负载均衡,最重要的就是所有服务器的数据都是实时同步的。这是一个集群所必需的,因为,如果数不据实时、不同步,那么用户从一台服务器读出的数据,就有别于从另一台服务器读出的数据,这是不能允许的。所以必须实现数据库的数据同步。这样,在查询的时候就可以有多个资源,实现均衡。比较常用的方法是Moebius for SQL Server集群,Moebius for SQL Server集群采用将核心程序驻留在每个机器的数据库中的办法,这个核心程序称为Moebius for SQL Server 中间件,主要作用是监测数据库内数据的变化并将变化的数据同步到其他数据库中。数据同步完成后客户端才会得到响应,同步过程是并发完成的,所以同步到多个数据库和同步到一个数据库的时间基本相等;另外同步的过程是在事务的环境下完成的,保证了多份数据在任何时刻数据的一致性。正因为Moebius 中间件宿主在数据库中的创新,让中间件不但能知道数据的变化,而且知道引起数据变化的SQL语句,根据SQL语句的类型智能的采取不同的数据同步的策略以保证数据同步成本的最小化。

  1. 数据条数很少,数据内容也不大,则直接同步数据

  2. 数据条数很少,但是里面包含大数据类型,比如文本,二进制数据等,则先对数据进行压缩然后再同步,从而减少网络带宽的占用和传输所用的时间。

  3. 数据条数很多,此时中间件会拿到造成数据变化的SQL语句, 然后对SQL语句进行解析,分析其执行计划和执行成本,并选择是同步数据还是同步SQL语句到其他的数据库中。此种情况应用在对表结构进行调整或者批量更改数据的时候非常有用。

3、优缺点

  (1) 扩展性强:当系统要更高数据库处理速度时,只要简单地增加数据库服务器就 可以得到扩展。

  (2) 可维护性:当某节点发生故障时,系统会自动检测故障并转移故障节点的应用,保证数据库的持续工作。

  (3) 安全性:因为数据会同步的多台服务器上,可以实现数据集的冗余,通过多份数据来保证安全性。另外它成功地将数据库放到了内网之中,更好地保护了数据库的安全性。

  (4) 易用性:对应用来说完全透明,集群暴露出来的就是一个IP

  (1) 不能够按照Web服务器的处理能力分配负载。

  (2) 负载均衡器(控制端)故障,会导致整个数据库系统瘫痪。

转自:http://tech.it168.com/a2012/0110/1300/000001300144.shtml

最新文章

  1. java IO流 之 字符流
  2. 笔记--MySQL相关操作
  3. java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I错误解决
  4. 集成IC刷卡器经验
  5. [No00004C]软件工程师的创业陷阱:接私活
  6. CBOW Model Formula Deduction
  7. HDU2191(多重背包)
  8. IOS 从一个小地方想到……
  9. U盘启动笔记本无法安装Win7问题和解决
  10. nodejs 安装及部署遇到的问题
  11. Java初学(四)
  12. linux多个python版本下导致yum报错
  13. css设置文字不换行,超过的部分用“...”代替
  14. hdu 4764 && 2013长春网赛题解
  15. VisualStudio2012轻松把JSON数据转换到POCO的代码
  16. c# .net core 下的网络请求
  17. MySQL学习基础知识1
  18. sftp修改用户home目录后登录时报connection closed by remote host
  19. mysql对身份证号码进行脱敏处理
  20. LOJ#2722 情报中心

热门文章

  1. PHP 网站隔离配置
  2. 在两台服务器之间建立信任关系解决scp,ssh等不用输入密码等问题
  3. redis_入门网址
  4. TCP的握手与挥手
  5. 网络性能监测工具smokeping
  6. Maven的简介
  7. DevExpress组件之——TreeList组件
  8. Linux 通过进程Pid与端口互查
  9. Ubuntu 16 安装redis客户端
  10. python中多线程,多进程,队列笔记(一)