---
title: 为什么 Istio 需要 Mixer？
weight: 1
---

Mixer 为 Istio 组件和服务之间提供了丰富的中介层，Mixer 作为基础设施后端服务可用于访问控制检查控制和遥测数据采集。Mixer 提供的中介层可在不修改服务二进制的情况下，帮助运维人员获得对服务内部机制的洞悉力和控制力。

Mixer 被设计为独立组件，这与 Envoy 不同。这样的设计有很多好处：

- *可伸缩性* 。
  Mixer 和 Envoy 的功能本质上不同，这也导致了对于可伸缩性要求不同。保持组件分离可实现独立的组件适当扩展。
- *资源使用* 。
  Istio 依赖于部署代理的实例，因此最小化代理的成本是非常重要的。将 Mixer 的复杂逻辑移动到独立的组件中实现可以保证 Envoy 功能的轻量和灵活。
- *可靠性* 。
  Mixer 及其开放式扩展性模型代表了数据路径处理流水线最复杂部分。在 Mixer 而不是 Envoy 中实现此功能，是因为这样可以达到故障域隔离，使得 Envoy 在 Mixer 失败的情况下也能正常运行，避免宕机。
- *隔离性* 。
  Mixer 在 Istio 和 基础设施后端之间提供了一定程度的隔离。每个 Envoy 实例都可配置为非常小范围内的互动操作，限制了潜在攻击的影响。
- *可扩展性* 。
  为使得 Istio 进行互操作的后端保持足够的健壮性，必须要求模型的简单和可扩展性。归功于其设计和语言选择，Mixer 比 Envoy 具备更好的扩展性。功能点的分离也使得 Istio 策略和遥测处理的功能可以采用不同的代理实现，例如 Envoy 和 NGINX 的混合。

Envoy 实现了复杂的缓存，批处理和预取策略，从而在很大程度上减轻了在请求路径上与 Mixer 交互的延迟影响。