如何使用 Multi-AZ 将 Node Sequelize 连接到 Amazon RDS MySQL
Posted
技术标签:
【中文标题】如何使用 Multi-AZ 将 Node Sequelize 连接到 Amazon RDS MySQL【英文标题】:How to connect Node Sequelize to Amazon RDS MySQL with Multi-AZ probably 【发布时间】:2017-04-14 15:41:42 【问题描述】:我正在使用支持多可用区的 Amazon RDS 托管 mysql。只是找不到有关如何将 Sequelize 正确连接到 Amazon RDS 以便 Sequelize 相应地处理故障转移等的任何信息?
我只是使用下面的配置,但不知道这样是否足够或推荐?
sequelizeConfig =
logging: false,
pool: maxConnections: 5, maxIdleTime: 30,
sequelizeConfig[dialectOptions] =
ssl: 'Amazon RDS'
将 Amazon RDS 与多可用区结合使用我认为以下几点很重要:
-
如果连接丢失,请尝试重新连接,直到它再次可用
不要缓存mysql服务器ip地址太长(亚马逊建议不到1分钟)
Amazon Docs 没有写任何关于连接处理和池的内容。
【问题讨论】:
您是否让 Node Sequelize.js 与 Amazon RDS MySQL 一起使用? 是的,但只是续集,而不是带有迁移的 sequelize-cli。只需通过环境变量使用常规 SQL 设置以及 aws 文档中描述的上述设置 我明白了。真可惜。我们启动了一个 EC2 实例并通过安全组连接 RDS。 【参考方案1】:之前的答案对我不起作用,经过一番研究,这个选项对象确实有效:
var options =
host: settings.database.host,
port: settings.database.port,
logging: console.log,
maxConcurrentQueries: 100,
dialect: 'mysql',
ssl: 'Amazon RDS',
pool: maxConnections: 5, maxIdleTime: 30 ,
language: 'en',
我在同一个默认 VPC 中运行 RDS MySQL 和 EC2 实例,当使用 sequelize 将来自该 EC2 的节点应用程序与 RDS 连接时,此选项对象有效。
【讨论】:
仅供参考maxConcurrentQueries
自 2014 年以来未使用:github.com/sequelize/sequelize/issues/2405【参考方案2】:
这是我与我的 RDS 建立联系的方式:
var config = require(__dirname + '/../config/config.json')[env];
// your config file will be in your directory
var sequelize = new Sequelize(config.database, config.username, config.password,
host: '****.****.us-west-1.rds.amazonaws.com',
port: 5432,
logging: console.log,
maxConcurrentQueries: 100,
dialect: 'postgres',
dialectOptions:
ssl:'Amazon RDS'
,
pool: maxConnections: 5, maxIdleTime: 30,
language: 'en'
)
【讨论】:
您能否提供一个额外的 iam 身份验证示例? 感谢您的快速回复! 你在 ssl 中放了什么?只是字符串 Amazon RDS?? 是的,我相信。我是一年前做的。 为我工作,但我使用dialect: 'mysql'
而不是 postgres以上是关于如何使用 Multi-AZ 将 Node Sequelize 连接到 Amazon RDS MySQL的主要内容,如果未能解决你的问题,请参考以下文章
我如何直接将“node_modules”与“yarn berry”一起使用
如何使用 HTML 输入文件导入 excel 文件并在 Node.js 中读取文件内容(如何将完整路径发送到 Node.js)
如何将 Node.js 中的 net 模块与 browserify 一起使用?