四 Mixer
Mixer在应用程序和基础架构后端之间提供通过中介层。它的设计将策略决策移出应用层,用运维人员能够控制的配置取而代之。
Mixer的设计目的是改变层次之间的边界,以此降低总体复杂性。从服务代码中剔除策略逻辑,改由运维人员进行控制。
Mixer提供三个核心功能:
- 前提条件检查:服务在响应在处理请求前验证一些前提条件。
- 配额管理:
- 遥测报告:服务能上报日志和监控。
这些机制是基于一组属性的,每个请求都会将这些属性呈现给Mixer。在Istio中,这些属性来之与Sidecar代理的每一次请求。
适配器
Mixer是高度模块化和可扩展的组件。他的一个关键功能就是把不同后端的策略和遥测系统的细节抽象出来,让Envoy以及基于Istio的服务能够独立于这些后端,从而保证可移植性。
配置状态
Mixer的核心运行时方法check和report都接受来自输入的一组属性。Mixer的当前配置会根据输入属性决定每个方法的工作内容。为此服务运维的工作:
- 配置一组Handler。 Handler是配置完成的Adapter。
- 基于属性和常量。为Mixer配置一组instance,instance表达了一套提供给Adapter处理的数据。
- 配置一套Rule。 Mixer在每次请求时都会执行这些Rule。Rule由匹配表达式和对应的Action构成。Action中设置了需要生成的Instance和处理这些instance所需要的Handler。
需要上述配置状态才能让Mixer知道如何处理传入的属性并分发到适当的基础设置后端。
请求阶段
请求进入Mixer时,处理阶段:
- 生成补充属性
- 决议
- 属性处理
- 适配器调度
Mixer配置
Mixer的配置模式可以利用其所有功能和灵活性。主要功能:
- 专为运维人员设计:运维人员通过操纵配置资源来控制Mixer部署中的所有操作和策略切面。
- 灵活:配置模型围绕Istio的属性构建,
- 健壮:
- 扩展:
Mixer概念
Mixer是一种属性处理机器。请求到达Mixer时带有一组属性,基于这些属性,Mixer会生成对各种基础设施的调用。这些后端包括频率限制、访问控制、策略实施等各种系统。该属性集确定Mixer为给定的请求用哪些参数调用哪些后端。为了隐藏后端的细节,Mixer使用称为适配器的模块。
Mixer的配置有几个中心职责:
- 描述哪些适配器正在使用以及他们的操作方式。
- 描述如何将请求属性映射到适配器参数中。
- 描述使用特定参数调用适配器的时机。
配置基于适配器和模板来完成:
- 适配器封装了Mixer和特定基础设施后端之间的接口
- 模板定义了从特定请求的属性到适配器输入的映射关系。一个适配器可以支持任意数量的模板。
配置使用YAML格式表示,围绕几个核心抽象构建:
- Handler: 就是一个配置完成的适配器。
- 实例:一个请求实例就是请求属性到一个模板的映射结果。
- 规则:规则确定了何时使用一个特定的模板配置来调用一个Handler.
Hanler
适配器封装了Mixer和特定外部基础设施后端进行交互的必要接口
实例:
四 Mixer的更多相关文章
- 转载——用Mixer API函数调节控制面板的音频设置
关键词:Mixer函数,控制面板,音频设备调节 如果你用过windows的音频设备,比如播放音乐或者录音,聊天,调节麦克或者声音的大小,以及设置静音,都可以通过控制面板中的音频设置面板来调节,你对于下 ...
- 从零开始学习PYTHON3讲义(十四)写一个mp3播放器
<从零开始PYTHON3>第十四讲 通常来说,Python解释执行,运行速度慢,并不适合完整的开发游戏.随着电脑速度的快速提高,这种情况有所好转,但开发游戏仍然不是Python的重点工作. ...
- 云原生 - Istio可观察性之监控(四)
作者:justmine 头条号:大数据与云原生 微信公众号:大数据与云原生 创作不易,在满足创作共用版权协议的基础上可以转载,但请以超链接形式注明出处. 为了方便阅读,微信公众号已按分类排版,后续的文 ...
- 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)
通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...
- 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...
- 如何一步一步用DDD设计一个电商网站(四)—— 把商品卖给用户
阅读目录 前言 怎么卖 领域服务的使用 回到现实 结语 一.前言 上篇中我们讲述了“把商品卖给用户”中的商品和用户的初步设计.现在把剩余的“卖”这个动作给做了.这里提醒一下,正常情况下,我们的每一步业 ...
- 从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点)
从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...
- MVVM设计模式和WPF中的实现(四)事件绑定
MVVM设计模式和在WPF中的实现(四) 事件绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...
- “四核”驱动的“三维”导航 -- 淘宝新UI(需求分析篇)
前言 孔子说:"软件是对客观世界的抽象". 首先声明,这里的"三维导航"和地图没一毛钱关系,"四核驱动"和硬件也没关系,而是为了复杂的应用而 ...
随机推荐
- HDU 4000 Fruit Ninja (树状数组+反向思维)
题意:给你一串数且每个数都不同,问你(x,y,z)出现 x<z<y 的总次数 首先我们直接想的话不能使用O(n*log2 n)解决,所以可以正难则反 可以求得x<(y,z)的值,减去 ...
- 树分治learning
学习了树的点分治,树的边分治似乎因为复杂度过高而并不出众,于是没学 自己总结了一下 有些时候面对一些树上的结构 并且解决的是和路径有关的问题的时候 如果是多个询问 关注点在每次给出两个点,求一些关于这 ...
- hdu 5877 Weak Pair dfs序+树状数组+离散化
Weak Pair Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Prob ...
- 在openrc中从keystone V2 到 V3
#!/bin/bash ] then echo "Usage $0 <keystone.rc>" exit fi . $ NEW_OS_AUTH_URL=`echo $ ...
- 如何激活Windows10系统
Win10正式企业版系统的激活方法: 按住 win+x 就会出现如下,右击桌面的左下角的“Windows”图标,从其右键菜单中选择“命令提示符(管理员)”项,以便打开 MSDOS界面. 待打开MS ...
- nyojb 2359 巴什博弈变形
http://acm.nyist.me/JudgeOnline/problem.php?id=2359 2359: 巴什博弈? 时间限制: 1 Sec 内存限制: 30 MB提交: 237 解决: ...
- Android Studio开发技巧
为了android更有效率的开发,总结学习android集成开发环境(android studio1.3为例) android studio 1-打印log及配置ec快捷键 2-代码提示及移动快捷键 ...
- idea更换git地址操作
更换地址: git remote set-url origin XXXXXXXXXXXXXXX 查看远程地址: git remote -v
- @angular/cli项目构建--http(2)
客户端GET设置参数查询: search() { const params = new HttpParams() .set('userName', this.userName) .set('fullN ...
- mysql数据库优化。(强力推荐)
本文转自:https://m.aliyun.com/yunqi/articles/38809 一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善 ...