一、负载均衡算法原理与实战
负载均衡算法(load balancing algorithm),定义了几种基本的流量分发方式,在Istio中一共有4种标准负载均衡算法。
•Round_Robin: 轮询算法,顾名思义请求将会依次发给每一个实例,来共同分担所有的请求。
•Random: 随机算法,将所有的请求随机分发给健康的实例
•Least_Conn: 最小连接数,在所有健康的实例中任选两个,将请求发给连接数较小的那一个实例。
接下来,我们将根据以上几个算法结合APM(应用性能管理)的监控拓扑图来实战下。
·实战环境·
华为云开启了Istio服务网格的CCE集群
官方最佳时间Bookinfo应用,并且给Reviews配置了五个实例
开通APM测试服务(免费)
我们知道如果用户不进行任何配置,负载均衡算法默认是轮询算法,所以我们现将负载均衡算法设为随机(Random)。
步骤 1
在云容器引擎界面点击应用管理,选择流量治理。
步骤 2
右侧出现拓扑图,在上面的选项栏中选择集群,命名空间,应用。然后点击我们想配置的组件,这里是 reviews,右侧则会出现流量治理的界面。
步骤 3
在负载均衡算法中,由Round_Robin 改为random。
步骤 4
在左侧导航栏中选择流量治理下面的流量监控,再选择相应的集群,命名空间,应用。多访问几次,或者后台写脚本一直curl productpage,可以从拓扑图中观察数据。
步骤 5
当有流量时,鼠标右键点击reviews组件,选择展开选项这时我们可以看到所有实例的被分发情况。
实例编号 1 2 3 4 5
访问次数 62 38 39 42 52
其余负载均衡算法基本一样,我们在步骤上不做赘述,直接展示结果。
轮询算法:
实例编号 1 2 3 4 5
访问次数 47 47 48 46 47
二、会话保持原理与实战
会话保持(Session Affinity)是通过设定的某个指标来计算,将哈希值相同的请求分发至某个固定的实例来处理。现在支持基于HTTP头部设定指标和Cookie键值设定指标。
我们当前还在轮询算法中,所以所有请求会均匀的分配给所有实例,设置会话保持基于HTTP请求头部,并且设为Cookie。我们后台curl的请求cookie设为了一个固定值,理论上来讲所有的请求都会分发至同一个pod。
我们依然采用流量监控,展开reviews组件来观察分发情况。
根据图中不难看出,所有的请求都分发至了第二个实例,因为cookie一致所以保持了这个会话链接。
三、故障注入原理与实战
故障注入(Fault Injection)为开发和测试人员主动向系统中引入故障,来观察系统在非正常状态下的行为,是一种可靠性,稳定性的验证手段。Istio也支持了非侵入式的注入故障,分为时延故障和中断故障。
故障注入的步骤大致相同在流量治理页面的下方,选择时延故障,并且输入触发百分比和延时时间。然后再打开productpage 手动刷新几次,能明显感觉到延迟有了变化,当然也可以打开F12调试界面,观察网络请求状况,不难发现productpage请求耗时都在2秒上下。
这时候我们打开流量监控界面观察下发现productpage与reviews受到了明显的影响。红色表示请求状态极差,虚线表示是由时延造成的。
接下来我们来测试并且使用中断故障,我们对details配置中断故障,中断返回码设为501。
配置完后,我们再去手动访问几次productpage来观察下结果。
发现现在的右侧details已经报了error
我们回到流量监控图,可以看到组件之间的访问情况。在给ratings配置了中断故障后,原本调用ratings组件的reviews组件,已经无法和ratings通信了。
本文以华为云istio服务结合APM服务为大家演示了流量治理中的主要功能。希望大家在今后的开发和测试中可以利用istio灵活的非侵入的治理功能提高开发和测试的效率。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 区块链治理与Polkadot的链上治理实践
- 国内酒店稳定性治理实践之内部资源治理
- 苏宁微服务治理架构Istio的通信和治理之道
- 企业级开源治理里程碑——开源治理论坛精彩抢先看
- 哈啰在分布式消息治理和微服务治理中的实践
- 酷家乐如何使用 Istio 解决新服务治理系统 (Serverless) 接入已有成熟自研 Java 服务治理体系
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web Data Mining
Bing Liu / Springer / 2006-12-28 / USD 59.95
Web mining aims to discover useful information and knowledge from the Web hyperlink structure, page contents, and usage data. Although Web mining uses many conventional data mining techniques, it is n......一起来看看 《Web Data Mining》 这本书的介绍吧!