我正在尝试在google云平台上构建一个web应用程序,我想让它尽可能便宜。我不希望我的应用程序有高负载,所以我不想运行一个计算示例,因为大多数时候它都是空闲的。所以我决定试试云函数。场景:
webhook向云函数发送http请求。
云函数连接到数据库,创建一条记录并将消息发送到pub/sub-topic。来自发布/子主题的消息可能会被另一个应用程序处理,现在无所谓了。
问题是:
a) 这是google云函数连接到sql示例的有效场景吗?我试图找到一个连接到数据库的函数的示例,但什么都没有。但是gcp文档解释了如何从函数连接到gcpsql示例。
b) 使用java作为运行时和spring引导框架是一个好主意吗?我不想在纯jdbc上编写代码,但是使用jpa库可能会导致大量的冷启动时间。
谢谢
1条答案
按热度按时间jucafojl1#
云功能是单一用途的。你的过程显然是单一目的。云功能是正确的选择。
然而,javacloud函数是一个全新的beta版(只有10天)。所以,googlecloudbeta是可靠的,但是如果你在ga中快速寻找一个服务,java就不是合适的选择。
如果ga是一项要求,则有2个备选方案:
使用cloud run(与cloud函数非常相似,并且价格“相同”(至少对您的情况如此))。我写了一篇关于这个的文章
使用另一种语言(go、python、node)
不,你关于冷启动的问题是真的。我是一个springboot迷,我从java切换到python(然后,我不喜欢动态类型语言),因为冷启动。我的第一个痛苦是在云上运行,因为我是一个alpha测试人员,我写了这篇文章。
spring是cpu和内存的怪物。冷启动很糟糕。一个易于使用的框架的权衡。今天,如果你想最小化这个冷启动,你可以在云运行中设置2cpu或者设置一个min示例,但这不是免费的!
所以,你的过程看起来很简单。
“仅此”是否需要像spring这样强大的框架?原始sql工作得很好,jpa并不总是正确的解决方案!
你有没有想过micronaut的替代方案?注解和行为非常接近spring,但没有动态加载,因此可以快速启动。
你考虑过其他语言吗?java可以是快速的(启动和处理),但是在任何情况下,它都需要消耗内存(对于相同的hello world,250mb和15mb的内存)。对于一个简单的开发,它是一个测试新事物的好平台。而且,由于体积小,任何不懂这门语言的人都很容易维护。
快乐的编码!