凡铁游戏提供最新游戏下载和手游攻略!

揭秘:SpringBoot 向函数计算迁移的优势与实操策略

发布时间:2024-10-16浏览:64

老铁们,大家好,相信还有很多朋友对于揭秘:SpringBoot 向函数计算迁移的优势与实操策略和的相关问题不太懂,没关系,今天就由我来为大家分享分享揭秘:SpringBoot 向函数计算迁移的优势与实操策略以及的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!

我们的业务有很多对外提供服务的 RESTful API,并且要执行很多不同的任务,例如同步连锁 ERP 中的商品信息到美团/饿了么等平台,在线开发票等。由于各种 API 和任务执行的不确定性,经常会因为资源不足导致服务不可用,但是盲目的扩容又很烧钱。整个团队每天都陷在不停的扩容,缩容之中。关键是有时候稍稍慢了一些,就会对业务照成影响,导致被投诉。每天还要被其他业务部门催着做新功能。更难的是,因为我们没有运维经验,多次被黑客把我们本来就不多的机器用来挖矿。作为一个初创公司的研发团队,我们的资源少,人手少,经验少,面对稳定性,安全性和业务的压力真的是非常痛苦。

在被前同事安利了函数计算以后,我发现这太有用了!迁移的过程非常顺滑,迁移的效果也大大超出了我的预期。下面是我觉得函数计算非常适合我们的理由:

默认弹性,可以轻松应对大量 API 请求和任务,不会再因为扩容不及时导致资源耗尽引起的业务不可用了!

无流量时支持缩容到 0,省钱神器,再也不用买虚拟机和负载均衡了,对我们来说降本效果杠杠滴!

免运维,免去了虚拟机的运维成本!

更安全,它不能被 SSH 登陆,而且也不会像虚拟机一样一直开着,等着被人扫描和攻破!

零改造,无需修改代码,之前虚拟机上的 JAR 包直接就可以跑在函数计算上!

迁移步骤

有三种使用方式,这里我具体讲一下怎么在控制台上操作。

使用函数计算控制台进行迁移。

使用函数计算提供的 S 工具,通过命令行 + YAML 的方式进行部署,查看详情 1[1]。

使用函数计算控制台上的应用中心,从 GitHub 等源代码库中自动构建并部署。CICD/GitOps 直接就有了,太香了!查看文末详情 2[2]

1. 开通函数计算

访问控制台[3],点击“免费开通”将跳转到开通页面。

2. 创建服务

点击“服务及函数”,“创建服务”,输入“名称”后点击“确定”。

3. 对 JAR 包进行压缩,得到 ZIP 文件

注意!!!这里要对打包好的 JAR 包进行压缩,然后上传 ZIP 包!!!

备注:其实也可以直接上传 JAR 包,但是启动命令要写为 java org.springframework.boot.loader.JarLauncher 我个人不是很喜欢这种写法。我还是喜欢 java -jar gs-rest-service-0.1.0.jar 的写法。

如果你还没有可用的 JAR 包,请参考 SpringBoot 官方快速开始文档[4]进行构建。

4. 创建函数

在“函数管理”页面,点击“创建函数”,

选择“使用自定义运行时平滑迁移 Web Server”

“运行环境”选择您需要的 Java 版本

选择“通过 ZIP 包上传代码”

“启动命令”为您在虚拟机上启动 JAR 包的命令,例如:java -jar rest-service-initial-0.0.1-SNAPSHOT.jar.zip

“监听端口”为您的 JAVA 程序在虚拟机上监听的端口,例如:8080

“请求处理程序类型”选择“处理 HTTP 请求”

点击“创建”

5. 测试函数

在函数详情页面的触发器列表中找到“公网访问地址”。注意:因为相关规定,不能直接在浏览器中打开这个 URL,需要配置自己的域名才能在浏览器中访问。

你可以通过 curl 命令进行测试。

你也可以通过函数详情页中的“测试函数”页签直接进行测试。

6. 使用自己的域名访问函数

点击“首页”,“域名管理”,“创建域名”,“添加自定义域名”

在路由配置中选择您刚建好的服务和函数

点击“创建”

完成!现在可以通过自己的域名访问服务了!

7. 更多进阶文档

配置 NAS 文件系统:

https://help.aliyun.com/document_detail/87401.html

配置 HTTPS:

https://help.aliyun.com/document_detail/90763.html

授权函数访问其他服务:

https://help.aliyun.com/document_detail/181589.html

访问 VPC 内的资源:

https://help.aliyun.com/document_detail/72959.html

访问 RDS 数据库:

https://help.aliyun.com/document_detail/84514.html

访问 Redis 缓存:

https://help.aliyun.com/document_detail/148798.html

更多快速入门文档:

https://fcnext.console.aliyun.com/overview

迁移后的效果

参考链接:

[1] 详情 1:

https://github.com/devsapp/start-web-framework/tree/master/web-framework/java/springboot

[2] 详情 2:

https://fcnext.console.aliyun.com/applications/create

[3] 控制台:

https://fcnext.console.aliyun.com/

[4] SpringBoot 官方快速开始文档:

https://spring.io/guides/gs/rest-service/

[5] 云解析 DNS 控制台:

https://dns.console.aliyun.com/

用户评论

放肆丶小侽人

说的太对了!我的项目也一直用SpringBoot搭建,感觉越来越臃肿了,真的想尝试一下函数计算轻量化的开发模式!

    有11位网友表示赞同!

她最好i

我之前也遇到过类似问题,SpringBoot 开发确实比较复杂,而且部署维护也很麻烦。 函数计算的确更简洁高效,我现在已经将一些业务迁移过去,效果不错。

    有13位网友表示赞同!

雁過藍天

我有个疑问,SpringBoot 的生态系统这么完善,函数计算还能替代吗?

    有6位网友表示赞同!

一点一点把你清空

函数计算的弹性和可扩展性确实很强,适合像我们企业这种业务需求不断变化的情况。 不过Spring Boot开发也有很多框架和组件帮我解决很多问题...

    有17位网友表示赞同!

半世晨晓。

迁移到函数计算可以让我更专注于业务逻辑本身,摆脱一些低级操作,提高开发效率。说得我心动了!

    有13位网友表示赞同!

ー半忧伤

说的是,SpringBoot 虽然强大 但部署起来确实挺复杂 , 函数计算真希望能像云上的一样一键部署

    有10位网友表示赞同!

巷口酒肆

我觉得函数计算适合用来做一些秒杀、定时任务这类单功能应用,但大型复杂的项目还是Spring Boot更稳妥吧!

    有20位网友表示赞同!

迁心

同意你的想法。函数计算有其优点,但也存在一些局限性。比如冷启动问题,对于高并发场景可能不太合适。

    有12位网友表示赞同!

杰克

我一直在学习云原生技术,函数计算是其中必不可少的一部分,感谢你的分享,让我对SpringBoot和函数计算有了更清晰的认识 。

    有12位网友表示赞同!

北染陌人

我感觉迁移到函数计算需要重新学习很多东东西... 对于程序员来说, 这可能是很大的挑战吧!

    有15位网友表示赞同!

〆mè村姑

这个观点很有意思!确实,Spring Boot 的架构复杂了一些,而函数计算更轻量化,这对于一些小应用来说也许是个不错的选择。

    有13位网友表示赞同!

最怕挣扎

我之前也尝试过函数计算,感觉部署过程还是挺复杂,加上文档也不够完善,所以最后还是选择了SpringBoot开发.

    有15位网友表示赞同!

抓不住i

你的博客文章很有说服力,让我对函数计算有了更深入的理解!我想认真考虑下是否要把我的项目迁移到函数计算平台!

    有15位网友表示赞同!

一个人的荒凉

Spring Boot 和函数计算各有优缺点,适合不同的场景。还是要根据实际的需求来选择最合适的技术工具。

    有13位网友表示赞同!

冷风谷离殇

我个人更倾向于 Spring Boot 的架构和生态系统,虽然函数计算也有些吸引我,但我还是觉得需要更多时间来探索和学习函数计算的优点。

    有19位网友表示赞同!

不忘初心

你分享的观点很有启发性,让我开始思考如何将不同技术结合起来,比如使用函数计算完成一些特定的业务逻辑,而其他核心功能仍然使用Spring Boot开发。

    有9位网友表示赞同!

▼遗忘那段似水年华

函数计算的速度和弹性确实让人心动,如果能够突破一些瓶颈,我相信它会成为未来热门的技术趋势之一!

    有17位网友表示赞同!

见朕骑妓的时刻

我觉得这个方向的发展很有意思,我们可以在博客里分享更多关于SpringBoot和函数计算的对比和探索,吸引更多程序员关注这一话题!

    有13位网友表示赞同!

热点资讯