Spring Boot应用程序的“本地服务”

我有机会尝试使用Knative的 Serving功能来部署Spring Boot应用程序,而这篇文章只是记录了示例和我采用的方法。

我对Knative的内部知识还不够了解,无法就此方法是否比基于部署 + 服务 +基于入口的方法更好。

一项很棒的功能是Knative Serving中的自动缩放功能,该功能基于负载,增加/减少了Pod的数量,这是处理请求的“部署”的一部分。

样品细节

我的整个样本都可以在这里找到 ,并且大部分是基于Knative Serving文档中可用的Java样本开发的。 我将Knative与minikube环境一起使用来尝试示例。

部署到Kubernetes / Knative

假设已经设置了具有Istio和Knative的Kubernetes环境,则运行该应用程序的方法是通过以下方式部署Kubernetes清单:

apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:name: sample-boot-knative-servicenamespace: default
spec:runLatest:configuration:revisionTemplate:spec:container:image: bijukunjummen/sample-boot-knative-app:0.0.1-SNAPSHOT

图像“ bijukunjummen / sample-boot-knative-app:0.0.1-SNAPSHOT”可通过Dockerhub公开获得,因此该示例应立即可用。

应用此清单:

kubectl apply -f service.yml

应该向Kubernetes注册一个Knative服务服务资源,该Knative服务服务资源管理其他Knative资源(配置,修订,路由)的生命周期,可以使用以下命令查看其详细信息,如果有任何错误,则应显示详细信息在输出中:

kubectl get services.serving.knative.dev sample-boot-knative-service -o yaml

测试中

假设Knative服务服务的部署是干净的,首先看到的是该应用程序没有显示Pod!

服务式

如果我现在要向应用程序发出请求,这是通过Knative管理的路由层完成的,那么可以使用以下bash脚本在minikube环境中检索该请求:

export GATEWAY_URL=$(echo $(minikube ip):$(kubectl get svc knative-ingressgateway -n istio-system -o 'jsonpath={.spec.ports[?(@.port==80)].nodePort}'))
export APP_DOMAIN=$(kubectl get services.serving.knative.dev sample-boot-knative-service  -o="jsonpath={.status.domain}")

并使用CUrl调用应用的端点:

curl -X "POST" "http://${GATEWAY_URL}/messages" \-H "Accept: application/json" \-H "Content-Type: application/json" \-H "Host: ${APP_DOMAIN}" \-d $'{"id": "1","payload": "one","delay": "300"
}'

或httpie

http http://${GATEWAY_URL}/messages Host:"${APP_DOMAIN}" id=1 payload=test delay=100

应该神奇地使用自动缩放器组件开始旋转Pod来处理请求:
服务式
第一次请求花费了将近17秒才能完成,这是旋转一个Pod所花费的时间,但是随后的请求很快。

现在,为了显示自动缩放器的真正功能,我运行了一个带有50个用户负载的小型负载测试,并且根据需要按比例放大和缩小了Pod。
服务式

结论

我可以看到Knative的承诺,即在Kubernetes环境中使用相当简单的清单定义了自动管理资源后,让开发人员专注于代码和逻辑。

翻译自: https://www.javacodegeeks.com/2018/07/knative-serving-spring-boot-applications.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/345343.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【渝粤题库】广东开放大学 Linux操作系统 形成性考核

​ 题目: C语言头文件一般以什么名称结尾? 题目: 以下哪个不属于操作系统? 题目: 以下描述正确的是? 题目: 使用gcc编译后的目标文件一般以什么名称结尾? 题目: 进程通…

一文读懂:常见低通、高通、带通三种滤波器的工作原理

滤波器 滤波器是对波进行过滤的器件,是一种让某一频带内信号通过,同时又阻止这一频带外信号通过的电路。 滤波器主要有低通滤波器、高通滤波器和带通滤波器三种,按照电路工作原理又可分为无源和有源滤波器两大类。今天,小编主要…

红米ac2100breed看模块_骁龙865加持,红米K30S至尊纪念版11日再开售

红米K30S至尊纪念版在11月1日首销,仅用了1分钟便售出10万台,热度颇高。11月11日0点,红米K30S至尊纪念版将再度开售,售价2299元起。以2299元起步的价格,红米K30S至尊纪念版配备了高通骁龙865处理器,8GB LPDD…

常用求和公式和级数

1. 多项式级数 2. 指数级数 3. Harmonic 级数 4. 其他 常见的级数查询表 https://blog.csdn.net/algzjh/article/details/82533996 https://www.zhihu.com/topic/19998598/hot

【渝粤题库】广东开放大学 互联网营销概论 形成性考核

选择题 题目:电子现金的基本特点包括:( )(3 分) 题目:meta标签都有哪些?( )(3 分) 题目:下面有关电子商务对经济发展影响的…

个盘子的汉诺塔需要移动几步_看漫画学C++039:递归解汉诺塔

点击蓝字 关注我们本话内容请输入相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如下图)。游戏的目标:把A杆上的金盘全部移到…

【渝粤题库】广东开放大学 劳动心理学 形成性考核

👉关注我,看答案👈 选择题 题目:记忆按时间长短可分为:( )①.感觉记忆 ②.短时记忆 ③.长时记忆 ④.永久记忆 题目:人们对社会上某一事物产生比较固定的看法,也是一种概括而笼统的看…

八位图 16位图_了解位图

八位图 16位图几周前,我和Alistair正在研究用于对节点附加到Neo4j数据库中的标签进行建模的代码。 这种工作方式是将32个节点ID的块表示为每个标签的32位位图 ,其中1表示1表示节点具有标签,0表示没有标签。 例如,假设我们有节点…

调制深度,峰均值功率比,脉冲整形等因素对于调制损耗的影响...

我们知道光发射机中一个非常重要的参数是发射功率。如果光发射机处于无源光网络(PON),没有后续放大器的情况,发射功率很大程度上决定了发射机可以传输的距离 (功率预算,power budget)&#xff1…

移动流量转赠给好友_私域流量的五大认知误区

各大品牌主对于私域流量存在的认知误区 ,你是否也这样认为?目前看起来,私域流量好像只要前期投入,后期就可以为自身带来源源不断的流量,但是私域流量真的像看起来那么美吗?其实不是的,我们对于私…

MATLAB 将不同长度的一维数组存入二维数组

将多个不同长度的一维数组存入二维数组时,需要将所有一维数组的长度转为相同长度,可以采用在数组后边补零的方式实现。 如果a是行向量,M是你要的最终向量的长度,用 a[a , zeros(1,M-length(a))]; 如果a是列向量,改成 …

使用Spring Boot 2.0的Spring Security:保护端点

到目前为止,在以前的文章中,我们已经使用默认的spring安全配置对端点和控制器进行了安全保护。 当Spring Security在类路径上时,默认情况下自动配置会保护所有端点。 当涉及到复杂的应用程序时,我们需要每个端点使用不同的安全策…

【渝粤题库】广东开放大学 文化活动策划与组织 形成性考核

选择题 题目: 资源的取得或者是天然形成的,或者是人的劳动与自然环境共同作用而形成的。而资源资产的形成可以有什么渠道? 题目: 资源的稀缺性决定了任何一个社会都必须通过一定的方式把有限的资源合理分配到社会的各个领域中去&…

MATLAB 显示输出数据的三种方式

1. 改变数据格式 当数据重复再命令行窗口时,整数以整形形式显示,其他值将以默认格式显示。MATLAB的默认格式是精确到小数点后4位。如果一个数太大或太小,那么将会以科学记数法的形式显示。比如: >> x100.11x 100.1100>…

发言稿开场白范文_发言稿开场白

发言稿开场白导语:无论做领导,还是做下属;无论做教师,还是搞销售;无论教育子女,还是向公众演讲;3分钟内你抓住了听众的心,一切事情就都会变得简单。1、你是否羡慕过陶渊明的人生?是啊,他归隐田园&#xff…

Matlab 语句

1. 显示输出数据的三种方式 1.1 改变数据格式 当数据重复再命令行窗口时,整数以整形形式显示,其他值将以默认格式显示。MATLAB的默认格式是精确到小数点后4位。如果一个数太大或太小,那么将会以科学记数法的形式显示。比如: &g…

.net2.0 orm_Hibernate 4.3 ORM工具

.net2.0 ormHibernate最近发布了Hibernate ORM 4.3的最终版本,它是一个基于Java的ORM框架,它还支持存储过程和实体图。 发行了ORM Tool Hibernate 4.3,实现了JPA 2.1规范,引入了该发行版的主要功能,简而言之&#xff1…

千寻和省cors精度对比_使用中海达RTK实战演示千寻cors账号对比省cors网络,验证其测量效果究竟如何...

原标题:使用中海达RTK实战演示千寻cors账号对比省cors网络,验证其测量效果究竟如何最近看到有很多的网友都在问千寻cors账号的定位服务怎么样?还在考虑要不要从省cors网络转用千寻cors网络?其实,作为用户来说&#xff…

【渝粤题库】广东开放大学 物业财税管理基础 形成性考核 (2)

选择题 题目:企业将资金以购买债券、提供借款或商业信用等形式出借给其他单位,这是一种( )的财务关系。 题目:( )是指买卖双方成交后,在双方约定的未来某一特定的时日才交割的交易市…

【渝粤题库】广东开放大学 综合英语1 形成性考核 (2)

选择题 题目: There is no ________, so we will begin with the next project. 选择一项: 题目: If a company wants to see its products ________, it should do some world market report first. 选择一项: 题目&#xff…