首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google函数中Api设计的优化方法?

Google函数中Api设计的优化方法?
EN

Stack Overflow用户
提问于 2017-04-06 19:50:59
回答 1查看 440关注 0票数 3

最终期望的结果是一个性能更好、资源利用率较低的系统。我希望将sql数据库连接到云函数,并承载一组pf。

这里有两种选择。

替代一:我们将每个api作为一个单独的云函数承载。

代码语言:javascript
复制
const functions = require('firebase-functions');

exports.helloFunc1 = functions.https.onRequest(function (request, response){
 response.send("Hello from Func1!");
});

exports.helloFunc2 = functions.https.onRequest(function (request, response){
 response.send("Hello from Func2!");
});

备选方案二:我们托管一个带有内部路由的云函数。

代码语言:javascript
复制
const functions = require('firebase-functions');
const express = require('express');
const router = new express.Router();

var app = express();

var helloFunc1 = function (request, response){
 // After some DB OPS
 response.send("Hello from Func1!");
};

var helloFunc2 = function (request, response){
 // After some DB OPS
 response.send("Hello from Func2!");
};


router.get('/helloFunc1',helloFunc1);
router.get('/helloFunc2',helloFunc2);

exports.root = functions.https.onRequest(router);

帮助我理解各种方法与任何一种设计的优缺点之间的权衡。

此外,请将数据库连接池作为分析的一部分。如果我们使用firebase或数据存储,这将不是一个决定性因素,但是对于原生SQL数据库,我假设很多连接在自动缩放时会影响性能。

编辑#1

这是一个基本的例子,但在现实中,其含义可能更多。是否正在使用一个框架来提供其他功能,如ORM和共享模型,用于八月的中间件,基于配置的通用约定,这在服务器少的环境中是一种真正的选择吗?,因为我们知道这些框架是为运行在始终向上的服务器上而设计的。ORM和框架将如何处理被抢占和将如何影响性能?

PS。我是Node和Express的新手。

EN

回答 1

Stack Overflow用户

发布于 2017-04-06 22:24:43

部署个别职能

  • 您可以在控制台中获得执行计数的单独跟踪和更容易的日志筛选。
  • 这些函数相互独立地扩展,如果您有一些具有重量级计算/内存需求的端点,而另一些则不需要,这是非常理想的。
  • 每个函数都有自己的“冷启动”,如果它一直闲置,所以如果您的端点有不均匀的使用分布,您更有可能遇到冷启动。

部署一个Express应用程序

  • 在控制台中,所有东西都会被封在一起,您可以自己跟踪各个端点的使用情况,并能够在日志中进行适当的筛选。
  • 单个函数的尺度都在一起。
  • 只有一个“冷的开始”需要担心,所以任何一个点击你的API的人都会让所有的函数“温暖”以供将来的执行。

目前,我可能会建议部署一个Express应用程序,主要是为了获得冷启动减少的优势。但是,如果您的一些端点有一个非常不同的内存/cpu配置文件,那么将它们分离到自己的云功能中可能是有意义的(特别是当通过Firebase部署的函数的cpu/内存配置文件变得更容易调整时)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43264564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档