OpenShift 4 之Service Mesh教程(4)- 跟踪访问后端服务超时
《OpenShift 4.x HOL教程汇总》
说明:本文已经在OpenShift 4.8环境中验证
本文说明如何在Istio中的VirtualService中设置访问的timeout特性。将请求各发给后台backend-v1和backend-v2微服务,其中backend-v2返回会超过3秒,因此会超时。
本文可在完成《OpenShift 4 之Service Mesh教程(2)- 用Kiali监控微服务运行》后进行操作。在开始正式操作前需要运行以下命令将运行应用的my-istio-app项目里的内容清空即可(注意需要将脚本中的“USERID“替换为本文中的”my-istio-app“)。
$ source scripts/teardown.sh
- 部署上图中的frontend-v1和backend-v1微服务,以及相关服务。
$ oc apply -f ocp/frontend-v1-deployment.yaml -n my-istio-app
$ oc apply -f ocp/frontend-service.yaml -n my-istio-app
$ oc apply -f ocp/frontend-route.yaml -n my-istio-app
$ oc apply -f ocp/backend-v1-deployment.yaml -n my-istio-app
$ oc apply -f ocp/backend-v2-deployment.yaml -n my-istio-app
$ oc apply -f ocp/backend-service.yaml -n my-istio-app
- 执行命令发测试请求,查看backend-v1和backend-v2的响应时间。可以看到是轮训访问这两个后台服务的,调用backend-v1的响应比较短(小于3秒),而调用backend-v2响应时间比较长(大于3秒)。
$ while true; do curl -sIL $FRONTEND_URL -o /dev/null -w "Response Coed: %{http_code} Elapsed Time:%{time_total}\n"; done
...
Response Coed: 200 Elapsed Time:5.802549 sec
Response Coed: 200 Elapsed Time:0.799221 sec
Response Coed: 200 Elapsed Time:5.807315 sec
Response Coed: 200 Elapsed Time:0.830107 sec
Response Coed: 200 Elapsed Time:0.818900 sec
Response Coed: 200 Elapsed Time:5.823480 sec
...
- 在Kiali控制台中查看微服务访问请求链和响应时间。
- 在Kiali控制台中的Service,然后进入”backend“。在Action下拉表中选择Request Timeouts。
- 在Create Request Timeouts对话框中设置Timeout为”3s“,然后点击Create。
- 这时在”backend“的Service下方的”Istio Config“中添加了类型为VirtualService和DestinationRule两个对象。
这两个对象内容如下:
kind: VirtualService
apiVersion: networking.istio.io/v1alpha3
metadata:name: backendnamespace: my-istio-app
spec:hosts:- backend.my-istio-app.svc.cluster.localhttp:- route:- destination:host: backend.my-istio-app.svc.cluster.localsubset: v1weight: 50- destination:host: backend.my-istio-app.svc.cluster.localsubset: v2weight: 50timeout: 3s
kind: DestinationRule
apiVersion: networking.istio.io/v1alpha3
metadata:name: backendnamespace: my-istio-app
spec:host: backend.my-istio-app.svc.cluster.localsubsets:- labels:version: v1name: v1- labels:version: v2name: v2
- 执行命令发测试请求,可以看到backend-v2响应时间比较长。不过这次因为backend-v2响应时间大于3秒已经按照“Response Code: 504”处理了。
$ while true; do curl -sIL $FRONTEND_URL -o /dev/null -w "Response Coed: %{http_code} Elapsed Time:%{time_total}\n"; done
...
Response Coed: 200 Elapsed Time:0.281
Response Coed: 200 Elapsed Time:0.243
Response Coed: 504 Elapsed Time:3.014
Response Coed: 504 Elapsed Time:3.017
...
- 在Kiali控制台中查看微服务访问请求链和响应时间。其中由于发给backend-v2的请求会由于超时而被系统标记为红色。
- 手动修改名为backend的VirtualService,删除最后一行“timeout: 3s“。
- 执行命令发测试请求,确认不再出现“504”的访回结果。
$ while true; do curl -sIL $FRONTEND_URL -o /dev/null -w "Response Coed: %{http_code} Elapsed Time:%{time_total}\n"; done
...
Response Coed: 200 Elapsed Time:0.799221 sec
Response Coed: 200 Elapsed Time:5.807315 sec
Response Coed: 200 Elapsed Time:0.818900 sec
Response Coed: 200 Elapsed Time:5.823480 sec
...
- 最后删除VirtualService和DestinationRule两类对象。
$ oc delete -n my-istio-app vs,dr --all
OpenShift 4 之Service Mesh教程(4)- 跟踪访问后端服务超时相关推荐
- OpenShift 4 之Service Mesh教程(5)- 断路器Circuit Breaker
<OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 本文将模拟一个运行了backend-v1的Pod出问题,并在发给backend-v1微 ...
- OpenShift 4 之Service Mesh教程(6)- 根据Header路由请求
<OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 文章目录 场景一 用 VirtualService 访问 Frontend 应用 用 ...
- OpenShift 4 之Service Mesh教程(1)- 创建ServiceMesh环境,部署Istio的微服务
<OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 文章目录 创建ServiceMesh环境 部署Istio的微服务 参考 创建Servi ...
- OpenShift 4 之Service Mesh教程(2)- 用Kiali监控微服务运行
<OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 获得Kiali访问地址,然后用浏览器访问并登陆. $ oc get route kia ...
- OpenShift 4 之Service Mesh教程(3)- 访问流量管理
<OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 文章目录 按比例分发流量 流量镜像 按比例分发流量 本节要配置Fontend微服务的流 ...
- OpenShift 4 - 创建Service Mesh运行环境
<OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.10环境中验证 文章目录 安装 OpenShift Service Mesh 和相关依赖 Opera ...
- 如果不懂Service mesh,就不要谈微服务了
提到微服务,spring cloud等经典框架被使用的最为广泛,但是在2016年才被提起的Service Mesh,已经被Paypal.Lyft.Ticketmaster和Credit Karma等等 ...
- OpenShift 4 之通过命令创建Service Mesh环境
<OpenShift 4.x HOL教程汇总> 本文使用命令行方式在OpenShift 4上创建Service Mesh运行环境,然后进行验证. 图形化方式创建Service Mesh运行 ...
- 深度剖析Service Mesh服务网格新生代Istio
作者简介:敖小剑,十五年软件开发经验,微服务专家,专注于基础架构,Cloud Native拥护者,敏捷实践者.曾在亚信.爱立信.唯品会和ppmoney任职, 现任数人云资深架构师,本文由数人云独家授权 ...
最新文章
- git flow版本
- java都界面相对布局_浏览器的重排和重绘
- JavaScript正则表达式在线测试工具
- 4、使用PreparedStatement接口实现增,删,改操作(常用)
- Spring MVC –揭秘了@RequestBody和@ResponseBody
- C++的堆与拷贝构造函数
- vc中操作Xml--使用CMarkup类
- Lombok学习笔记— 消除冗余java代码
- redis常用内容信息:
- 商品库存管理系统(c语言)
- adb 连接手机 cannot connect to xxx.xxx.x.xx:5555: 由于目标计算机积极拒绝,无法连接。 (10061)
- iphone win7无法识别_win7系统电脑不能识别iphone苹果设备的解决方法
- 算数平均数、中位数、众数和几何平均数
- 用 JustTrustMe 干翻 SSL Pinning: 爬尤美 app 付费视频(app.youmei.com)
- excel 画图_Excel做数据分析?看这篇就够了!
- 公园遛狗 / 小白逛公园【线段树】
- vue分页组件,可直接使用
- Android studio Suggestion: use tools:overrideLibrary=”jp.wasabeef.blurry” to force usage
- 品牌升级后,TBase更名为TDSQL和TDSQL-A,CynosDB更名为TDSQL-C
- 腾讯云海量社交网络业务下的DevOps架构应用实践
热门文章
- jsp过时了吗_知乎高赞:Spring MVC 过时了吗?网友:你连V和C都还没搞明白~
- java是怎么实现文件上传的_java怎么实现大文件上传
- 在电脑上怎么打印文件_电脑上怎么mov格式怎么转换成mp4
- android dialogfragment style,Android DialogFragment 使用
- linux全网备份的原理,Linux面试题分享:Rsync(全网备份)和NFS(文件系统)
- 插入移动硬盘_Win10插入移动硬盘或U盘有提示声但电脑中不显示的解决方法
- python读取doc文件 语义识别_我可以让socket.makefile具有与常规文件相同的读取语义吗?...
- 狗狗手机壁纸|爱宠必备
- 设计配色专辑,很值得设计师拥有
- python中hub_PyHubWeekly | 第一期:Github上那些值得推荐的Python小工具