如何使用 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.js 将 docx 文件打印到打印机

我如何直接将“node_modules”与“yarn berry”一起使用

如何使用 HTML 输入文件导入 excel 文件并在 Node.js 中读取文件内容(如何将完整路径发送到 Node.js)

如何将 Node.js 中的 net 模块与 browserify 一起使用?

如何使用 node.js 将 EXCEL 文件数据读取到 json

如何使用 node.js 制作将文档转换为演示文稿的服务