Istio组件Mixer介绍

Posted key_3_feng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Istio组件Mixer介绍相关的知识,希望对你有一定的参考价值。

​Mixer是负责提供策略控制和遥测统计的Istio组件。

一、Mixer基本概念

Mixer处理不同基础设施后端的灵活性是通过使用通用插件模型实现的。每个插件都被称为Adapter,通过通用插件模型可以方便地扩展新的基础设施后端,通过配置可以指定运行时使用的具体适配器。Mixer当前内置了不少Adapter,常见的有Fluentd、Prometheus、Statsd、Redis Quota等。

属性是Mixer中一个非常重要的基础概念,用于描述服务请求的特征,具体包含请求内容和请求环境相关的一些参数,比如请求大小、请求头、请求的来源IP地址、目标产生响应的时间戳、响应的状态码等。绝大多数属性数据由Envoy负责生成,但也有一些Mixer适配器会生成属性数据。

Mixer的属性有一个显著特点,属性是固定的,当前均由Mixer指定,不能随意设定。Mixer当前定义了50多个通用属性,具体可以查看Istio官方文档的属性词汇(Attribute Vocabulary)。Mixer整体架构和功能逻辑都是围绕属性处理展开,Mixer中的每个Adapter会配置自身关注的属性,Mixer接收到Envoy发过来的请求时,会根据请求对应的属性列表,根据一定的匹配规则,调用匹配的Adapter。

Istio通过Mixer提供统一的抽象层,屏蔽基础设施后端的差异,提供强大的插件化扩展能力,基于Mixer可以非常方便地增加新的基础设施后端,同时由于Mixer仅仅提供机制,而不负责具体的实现策略,使得Mixer架构稳定后的变化比较少,可用性会比较高,通过Mixer提供的缓存机制,不仅可以减少调用后端基础设施的频率,减少延迟,同时在后端基础设施无响应的时候也能继续工作,一定程度上屏蔽了后端基础设施的故障,保证了系统的整体稳定性。

通过引入Mixer,解决了Istio策略控制和遥测统计方面的扩展性问题,通过Mixer可以在不影响Envoy核心架构的基础上,灵活方便地支持新的插件和策略,但Mixer的引入也带来了实实在在的性能问题,Mixer采用的通用属性匹配策略,并且几乎每次请求都需要和Mixer Server进行交互,都会带来一定的性能损耗。Mixer虽然在性能改进方面做了大量的工作,截至目前为止,仍然没有交出一份满意的答卷,这也导致不少对性能有很高要求的场景无法使用Mixer。

二、Mixer基本功能

具有如下几个功能:

(1)调用前置检查Envoy将请求透传给下游服务前,会通过调用Mixer判断该请求是否满足一定的前置条件,具体比如黑名单检查,访问权限校验等。

(2)配额检查配额检查调用时机和前置检查类似,由Envoy调用下游服务前调用Mixer进行检查,不同的是配额检查聚焦资源的管理,以实现对资源的有效管理,具体比如限流、连接数检查等。

(3)统计观测信息上报服务处理完请求后,Envoy将请求相关的统计信息上报到Mixer,Mixer及其Mixer相关的基础设施,会基于上报数据进行监控、性能分析等,也可以基于对数据的精细化分析,产生相应的策略对链路进行管控,具体的上报信息包含Log、Metric和Trace等。


以上是关于Istio组件Mixer介绍的主要内容,如果未能解决你的问题,请参考以下文章

idou老师教你学istio2:监控能力介绍

idou老师教你学Istio 27:解读Mixer Report流程

必读!Istio Service Mesh中的策略与遥测概念详解

idou老师教你学Istio 20 : Istio全景监控与拓扑

Kube:Istio:在Mixer中上报metrics数据

Istio 1.3 发布,HTTP 遥测不再需要 Mixer