Java 无服务器函数入门|Linux 中国

图片
导读:Quarkus 令你可以使用类似 Java 的技术开发无服务器的工作负载。
本文字数:5261,阅读时长大约:6分钟
Quarkus 令你可以使用类似 Java 的技术开发无服务器的工作负载。
无服务器 Java的研究始于函数 —— 就是按需求运行的一小段代码。这一阶段并没有持续很长时间。虽然在 1.0 阶段,基于虚拟机架构的函数使这种范式变得很流行,但它仍然有局限性,例如执行时间、协议和糟糕的本地开发体验,都不太理想,如下图所示。
在 2.0 阶段,无服务器开始处理更复杂的编排和集成模式,并结合某些层级的状态管理。更重要的是,开发者关注的是能否在旧的系统中使用熟悉的 Java 应用程序运行时来组合运行无服务器和非无服务器的工作负载。
The serverless Java journey
Java 开发者开始进行无服务器函数开发之前,第一步是要选择一种新的云原生 Java 框架,从而能够以快于传统单体应用程序的速度和较小的内存占用运行 Java 函数。这在各种基础设施环境中,包括物理服务器、虚拟机、多云或混合云环境中的容器,都是适用的。
Quarkusquarkus.io是一个新推出的开源云原生 Java 框架,它有助于解决这些问题。它的作用是设计无服务器应用程序,以及编写运行于云基础设施(例如 Kubernetes)的云原生微服务。
Quarkus 重新审视了 Java,它使用了封闭的方法构建和运行 Java 程序。它把 Java 转变为一种可与 Go 相媲美的运行时。Quarkus 也包含 100 多种扩展功能,集成了企业级能力,例如数据库访问、无服务器集成、消息、安全、可观察性和业务自动化。
这里有一个简单例子,展现如何使用 Quarkus 创建一个 Java 无服务器项目的框架。
1、基于 Maven 创建一个 Quarkus 无服务器项目
下面的命令创建了一个 Quarkus 项目(例如 ),对外暴露一个简单的 REST API,并下载 扩展,用于 Knative 服务的部署:
2、在本地运行无服务器功能
使用 Quarkus 开发模式运行程序,检查 REST API 是否有效,稍稍调整一下代码:
输出如下内容:
注意: 保持 Quarkus 应用程序运行,需要使用热部署(Live Coding)。这样,当代码修改后,你就不必重新构建、重新部署以及重启运行时。
现在,你可以使用一个 命令快速访问 REST API。输出结果应当是 :
在 中修改返回值:
再次访问 REST API,输出信息也会相应更新:
普通的微服务跟无服务器函数之间的差别并不大。使用 Quarkus 的好处在于:开发者可以使用任何微服务,将 Kubernetes 部署为无服务器函数。
3、在 Knative 服务中部署相关的函数
Quarkus 令开发者可以通过在 中添加以下变量,创建 Knative 和 Kubernetes 资源:
说明:
◈ <1> 在你部署无服务器应用程序的位置定义项目名
◈ <2> 使用容器注册中心
◈ <3> 在这个简单例子中,使用自签名证书,以便通过相关信任机制
◈ <4> 允许创建 Knative 资源
◈ <5> 指示在构建容器映像之后将扩展部署到 OpenShift
◈ <6> 设置 Docker 构建策略
执行以下命令,构建应用程序,并直接部署到 OKD 集群:
注意: 应该提前使用 命令,确保登录到正确的项目(例如)。
输出结果应该以 结束。
在对于 Knative 服务执行的 命令中,加上标签:
图片
Topology view
4、在 Kubernetes 环境下测试函数
运行如下 命令,搜索含有无服务器函数的路由:
使用 命令访问搜索到的路由:
过几秒钟,你可以得到跟在本地相同的结果:
当你回到 OKD 集群内的拓扑图,Knative 服务会自动扩展。
图片
Scaling the Knative Function
由于 Knative 服务的默认设置,其 pod 在 30 秒后会再次下降至零。
下一步呢?
无服务器不断地在演变,始于运行于虚拟机的函数,到后来的无服务器容器,并与企业原有系统集成。在此过程中,企业开发者借助 Quarkus,仍然可以使用自己熟悉的技术(比如 Java)创建一个项目,然后构建并部署到 Kubernetes。
本系列的下一篇文章将指导你优化 Kubernetes 中的 Java 无服务器函数,从而令程序启动更快,内存占用更小。
文内图像来自:Daniel Oh, CC BY-SA 4.0
via:https://opensource.com/article/21/6/java-serverless-functions
作者:Daniel Oh选题:lkxed译者:cool-summer-021校对:wxy
本文由LCTT原创编译,Linux中国荣誉推出
LCTT 译者 :cool-summer-021
翻译: 2.0 篇
|
贡献: 13 天
2022-09-22
2022-10-04
https://linux.cn/lctt/cool-summer-021
欢迎遵照 CC-BY-SA 协议规定转载,
我们将为您添加白名单,授权“转载文章时可以修改”。

聚圣源买药仓库起什么名字比较好给树起一个名字劳务中介起名穿越时空的蝴蝶风云2七武器2.15修真世界txt云南直升机渣土车追踪堵截象群星兽战队银河人亻字旁的字起名用字特色调解工作室起什么名字店名以源字起名绘声绘色的意思王名字怎么起姓名孔姓猪宝宝起名起名女孩免费店铺起名网免费取名打分测试三本什么时候填志愿湖北大学地址邮编微粒按笔画起姓名大全qqtv逆乱战地3下载2016nba总决赛第七场等额本金还款法免费好用的起名软件排行龙珠神与神美容起名大全集参考好看的完本小说淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化