设为首页收藏本站

ZMX - IT技术交流论坛 - 无限Perfect,追求梦想 - itzmx.com

 找回密码
 注册论坛

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

用百度帐号登录

只需两步,快速登录

搜索
查看: 2290|回复: 0

Node.js Sequelize如何实现数据库的读写分离

[复制链接]

签到天数: 36 天

[LV.5]常住居民I

发表于 2016/11/9 15:18 | 显示全部楼层 |阅读模式 |Google Chrome 45.0.2454.101|Windows 7
天涯海角搜一下: 百度 谷歌 360 搜狗 有道 雅虎 必应 即刻
  在构建高并发的Web应用时,除了应用层要采取负载均衡方案外,数据库也要支持高可用和高并发性。使用较多的数据库优化方案是:通过主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力。

  1. replication选项与读写分离

  Sequelize 支持读/写分离,要实现读/写分离可以分别为读和写各创建一个Sequelize实例,更方便的使用方式是在创建实例时,通过replication选项分别指定读/写数据库。

  要在Sequelize中使用读/写复制,可以在初始化Sequelize时有时向其replication选项传递一个对象。这个对象read、write两个属性。write是一个单一的对象(即:由单台服务器处理写入),而read是一个包含对象的数组(即:由多台服务器处理读取)。每台read、write服务器都可以包含以下属性:

  · host - 数据库服务器的主机

  · port - 数据库服务器的主机端口

  · username - 验证用户名

  · password - 验证密码

  · database - 要连接的数据库

  2. Sequelize读/写分离示例

  在使用主从复制的多台数据库集群中,可以通过在replication对象的read属性中设置,该属性是一个数组,可以在其中传入一个或多个服务器连接副本。读操作相当于对数据库集群中的从节点进行操作,它会处理所有SELECT查询操作(读操作)。而replication对象的write属性是一个表示服务器连接的对象,写操作相当于主节点,它会处理所有插入、更新、删除操作(写操作)。

  var sequelize = new Sequelize('database', null, null, {

  dialect: 'mysql',

  port: 3306

  replication: {

  read: [

  { host: '192.168.1.33', username: 'itbilu.com', password: 'pwd' },

  { host: 'localhost', username: 'root', password: null }

  ],

  write: { host: 'localhost', username: 'root', password: null }

  },

  pool: { // 如果需要重写链接池,请在 pool 选项中修改

  maxConnections: 20,

  maxIdleTime: 30000

  },

  })

  所有的整体性设置,都会适用于所有节点副本,所以并不需要为每个实例单独指定。在上例中,数据库名和端口号会应用于所有节点副本,用户名和密码选项也同样适用。如果某一节点副本不使用全局设置,则需要在replication选项中单独指定。

  注意:Sequelize 并不会设置主从复制节点及节点间的数据同步(复制),这些操作实际由MySQL(或你所使用的数据库)完成。而 Sequelize 只负责从主从节点写入或读取数据。

  Sequelize 会使用连接池来管理节点副本。

  默认选项是:

  {www.9ask.cn/shangqiu/

  maxConnections: 10,

  minConnections: 0,

  maxIdleTime:1000

  }
欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册论坛 新浪微博账号登陆用百度帐号登录

本版积分规则

手机版|Archiver|Mail me|网站地图|IT技术交流论坛 ( 闽ICP备13013206号-7 )

GMT+8, 2024/4/24 06:45 , Processed in 0.170102 second(s), 24 queries , MemCache On.

Powered by itzmx! X3.4

© 2011- sakura

快速回复 返回顶部 返回列表