博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
node mysql 主从分离_Node.js Sequelize如何实现数据库的读写分离
阅读量:5321 次
发布时间:2019-06-14

本文共 1414 字,大约阅读时间需要 4 分钟。

一、前言

在构建高并发的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属性是一个表示服务器连接的对象,写操作相当于主节点,它会处理所有插入、更新、删除操作(写操作)。

MysqL',port: 3306

replication: {

read: [

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

],write: { host: 'localhost',password: null }

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

maxConnections: 20,maxIdleTime: 30000

},})

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

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

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

默认选项是:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

转载地址:http://qshhv.baihongyu.com/

你可能感兴趣的文章
C# 索引器
查看>>
MySQLdb & pymsql
查看>>
zju 2744 回文字符 hdu 1544
查看>>
XmlDocument
查看>>
delphi 内嵌汇编例子
查看>>
SQL server 2012 安装SQL2012出现报错: 启用 Windows 功能 NetFx3 时出错
查看>>
【福音】开发者可接入微信公众平台设备功能了
查看>>
springCloud学习-消息总线(Spring Cloud Bus)
查看>>
centos7 自动备份 mysql
查看>>
用JS判断两个数字的大小
查看>>
【luogu P2298 Mzc和男家丁的游戏】 题解
查看>>
CVE-2012-0158 分析
查看>>
Javascript 作用域与this的用法
查看>>
正睿提高组2017模拟题二T2
查看>>
DataPipeline联合Confluent Kafka Meetup上海站
查看>>
JS apply的巧妙用法以及扩展到Object.defineProperty的使用
查看>>
sha1加密java代码
查看>>
KVO讲解
查看>>
网站性能优化工具推荐
查看>>
5 -- Hibernate的基本用法 --1 ORM和Hibernate
查看>>