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任职, 现任数人云资深架构师,本文由数人云独家授权 ...
最新文章
- base--AuditResult
- HASH Partitioning--转载
- Split in Java
- 算法学习之循环结构程序设计
- Layui宣布下线,不自禁的感叹一下,回忆啊
- 链路追踪在ERP系统中的应用实践
- MySQL主从数据库配置
- [react] 请说说什么是useState?为什么要使用useState?
- 计算机原理语言方框图,计算机原理整理原版1.10.docx
- linux_adduser
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_39、SpringBoot2.x整合redis实战讲解...
- 5 重启应用_5种方法教你解除 iPhone在流量环境下,无法下载超过150M的限制!
- java i586什么意思_linux里面i386 i686 i486 i586代表什么?是什么意思
- 删除重复节点(细节每太明白)
- 网站域名如何接入腾讯云CDN业务详细步骤!
- 高等数学:一元函数积分学
- 解决Windows10家庭版系统无法安装Docker Desktop问题
- 原创 和Taskmgr过不去篇(无厘头版)
- 设置电脑保护视力的颜色
- 一入IT深似海,从此都是考证人~耗时,耗力,耗财,耗头发考过的证书 千万不要忘了延续~
热门文章
- linux wireshark 安装教程,Linux下安装和运行Wireshark
- 小米台灯底座接口很松_选购台灯发愁?这篇桌面照明方案助你一臂之力
- 事务例子_Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现...
- 深藏不露!下拉列表设计灵感
- UI素材干货|听说UI设计师更喜欢Sketch
- 上传自定义日志_ZKEYS系统重磅更新,新增后台数据库备份、主控运行日志管理等新功能!...
- 许可证密钥_如何激活和停用NVivo的许可证
- win系统流畅度测试软件,视频对比:老电脑装Win7、Win10流畅性测试
- php sqlite视图,SQLite 视图
- Linux网络协议栈:网络包接收过程