前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot + SCF 最佳实践:实现待办应用

SpringBoot + SCF 最佳实践:实现待办应用

作者头像
腾讯云serverless团队
发布2021-11-23 12:10:21
1K0
发布2021-11-23 12:10:21
举报

SpringBoot 是由 Pivotal 团队提供的框架,用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Serverless 对于微服务的价值在于:

1. 每个微服务 API 被调用的频率不一样,可以利用 Serverless 精准管理成本和弹性。

2. 不用担心一个 API 调用量大而需要扩容整个服务,Serverless 可以自动扩缩容。

3. 不需要去运维每个服务背后部署多少个容器,多少个服务器,不用做负载均衡。

4. 屏蔽了 K8s 等容器编排的复杂学习成本。

5. Serverless 这种无状态的特性也非常符合微服务使用 Restful API 的特性。

本文将介绍如何通过 Serverless 云函数 的 Web 函数使用 SpringBoot 搭建一个待办应用。

01. 前提条件

请参考云函数 JAVA 开发指南准备开发环境和工具。

02. 创建待办应用

SCF 提供模板函数,按照如下流程操作可快速创建一个待办应用并体验待办事项的增删改查功能。注意:本模板仅作为示例提供,待办事项数据实际存储在实例内存中,不作为持久化存储。

1. 登录云函数 SCF 控制台;

  • 云函数控制台地址:https://console.cloud.tencent.com/scf

2. 选择函数服务 -> 新建 -> 模板创建 -> 搜索关键词springboot,在查询结果中选择「SpringBoot 待办应用」并单击「下一步」,保持默认配置,完成函数创建。

3. 切换到「函数代码」页签,按照如下流程操作,通过测试模板发起模拟请求体验待办应用增删改查功能:

  • 查询待办列表:

请求方式选择 GET,path 填写 /todos,点击「测试」后,在响应 Body 中可以查看到当前的待办事项。

  • 增加待办事项:

请求方式选择 POST,path 填写/todos,body 填写{"key":"3","content":"Third todo","done":false},点击「测试」增加一个待办事项。

  • 删除待办事项:

请求方式选择 DELETE,以删除 key 为 2 的待办事项为例,path 填写 /todos/2,点击「测试」。

  • 修改待办事项:

请求方式选择 PUT,以将 key 为 3 的待办事项由未完成改为完成为例,path 填写 /todos/3,body 填写 {"key":"3","content":"Third todo","done":true},点击「测试」。

03. 代码示例

在 「02.创建待办应用」的第二步模板选择页面,点击模板卡片右上角的「查看详情」,在展开的页面中单击「点击下载模板函数」即可获取模板函数源码。

原生 SpringBoot 项目迁移到 Web 几乎没有改造成本,只需要:

1. 确保 Spring 监听端口为 9000(SCF Web 函数指定监听端口)

2. 编译 JAR 包

下载代码之后,在目录Webfunc-Java8-SpringBoot下运行编译命令:

代码语言:javascript
复制
gradle build

编译完成后可在build/libs目录下获取到打包完成的 jar 包,选择后缀为-all的 jar 包。

3. 准备一个可执行文件 scf_bootstrap 用于启动 Web Server,文件内容可参考下文:

代码语言:javascript
复制
#!/bin/bash/var/lang/java8/bin/java -Dserver.port=9000 -jar scf-springboot-java8-0.0.2-SNAPSHOT-all.jar

注意:在 scf_bootstrap 文件所在目录执行chmod 755 scf_bootstrap来保证scf_bootstrap 文件具有可执行权限。

4. 将 scf_bootstrap文件与生成的 jar 包一起打包为 zip 部署到云函数。

  • 登录云函数 SCF 控制台;
    • 云函数控制台地址:https://console.cloud.tencent.com/scf
  • 选择函数服务->新建->自定义创建;
  • 函数类型:web 函数
  • 运行环境:Java8
  • 提交方法:本地上传 zip 包
  • 单击上传选择打包好的 zip 文件
  • 其他保持默认配置,单击「完成」即可完成函数创建。

推荐阅读

One More Thing


欢迎进入千人 QQ 群 (871445853) 交流 Serverless!

  • GitHub: github.com/serverless
  • 官网: cloud.tencent.com/product/serverless-catalog
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ServerlessCloudNative 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01. 前提条件
  • 02. 创建待办应用
相关产品与服务
云函数
云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。您只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。云函数是实时文件处理和数据处理等场景下理想的计算平台。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档