云函数的执行环境是怎样的?
如果是普通的云服务器,假如在服务器上部署了一个应用,并对数据库执行 CRUD 操作,那么这个时候后台应用和数据库都是长时间运行的,不同的用户请求都指向该服务器,应用的代码执行和数据库的数据存储都发生在该服务器上。如果使用云函数开发,不同的用户请求是指向同一个服务器还是根据用户的位置安排不同的服务器来处理对应的云函数? 如果云函数是类似 CDN 一样在边缘执行,是不是涉及到云函数的代码分发和冷启动,这样的话如果云函数操作数据库,为了保持数据一致性,数据库是否安排特定的服务器来处理,这样在冷启动时去连接远程的数据库是否特别耗费时间?
回复
1个回答
test
2024-06-19
如果我没记错的话,云函数一般是用类似容器的技术启动,启动之后会维持一段时间。没人访问再关闭。所以会有冷启动的问题,即没人用的服务第一次很慢。
云函数应该是自动调配,选在离用户最近的节点启动。所以云函数的实例可能会很多,而且多次请求不一定会命中同一个云函数容器。
所以云函数一般也不应该直接连接数据库,因为会占用大量的连接数,很容易把数据库搞死。需要自己维护连接池。或者使用云数据库提供的 http 接口,由云服务器厂商来维护连接池。
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容