如何处理来自Lambda的MySQL数据库连接/池 – >带有Node的RDS
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何处理来自Lambda的MySQL数据库连接/池 – >带有Node的RDS,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1259字,纯文字阅读大概需要2分钟。
内容图文
![如何处理来自Lambda的MySQL数据库连接/池 – >带有Node的RDS](/upload/InfoBanner/zyjiaocheng/896/859724cc3e17446f94ade85e16ad55f1.jpg)
我在测试Lambda函数时遇到了一些问题.我的测试,我执行我的Lambda函数的并行N次执行.在我的lambda函数中,我通过Knex检索数据库连接.我正在搞乱db init pool中的设置:{min:0,max:[1或5]},这似乎可以修复/破坏内容,具体取决于我的代码中的其他内容.
执行我的lambda函数20次输出正确的结果,然而,当我将它提高到500(我期望在生产中看到的将很容易超过这个),事情开始破裂.我遇到错误,如错误:ER_CON_COUNT_ERROR:连接太多,错误:池正在耗尽,无法接受工作(如果我在lambda函数结束时使用Knex的knex.destroy()接口).在AWS Lambda和RDS中处理扩展连接和池的正确方法是什么?如果我在AWS上运行相同的压力测试,我在本地计算机上看到的问题是否会复制?
解决方法:
分离成千上万个进程来执行一小部分任务很简单.但效率低下. “进程”是重量级的.线程有点沉重.可能有数千个与MySQL的连接,但并非所有连接都在同一时间.
在任何多进程或多线程环境中,“太多”会降低速度.这是因为OS(或某个实体)正在做很多工作来分享不足的资源.例如,MySQL可以处理数百个空闲连接,但是由于有几十个活动连接而陷入困境.当超过这个数量时,最好将链向上移动到客户端,并限制它产生新连接的频率.
我不熟悉你提到的其他产品,但我建议将同步活动保持在几十个而不是几百个.
或找到一种方法.在你的应用程序中,“迭代”而不是“递归”.同时,请记住,MySQL处理数据的“向量”(表)比处理单个行更快乐.也许你可以将应用程序中的“并行”部分作为“向量”推送到MySQL中?双赢:联系更少; MySQL的效率更高.
内容总结
以上是互联网集市为您收集整理的如何处理来自Lambda的MySQL数据库连接/池 – >带有Node的RDS全部内容,希望文章能够帮你解决如何处理来自Lambda的MySQL数据库连接/池 – >带有Node的RDS所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。