四 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(需求分析篇)
前言 孔子说:"软件是对客观世界的抽象". 首先声明,这里的"三维导航"和地图没一毛钱关系,"四核驱动"和硬件也没关系,而是为了复杂的应用而 ...
随机推荐
- Centos6.5安装glusterfs3.6.2
硬件环境Centos6.5 glusterfs3.6.2 先安装必要的包 yum install flex bison 2. 下载glusterfs3.6.2 wget http://downloa ...
- RPC与HTTP
一.为什么需要RPC,而不是简单的HTTP接口? RPC(即Remote Procedure Call,远程过程调用),主要是基于TCP/IP协议:而HTTP服务主要是基于HTTP协议的.我们都知道H ...
- spark学习5(hbase集群搭建)
第一步:Hbase安装 hadoop,zookeeper前面都安装好了 将hbase-1.1.3-bin.tar.gz上传到/usr/HBase目录下 [root@spark1 HBase]# chm ...
- 树分治learning
学习了树的点分治,树的边分治似乎因为复杂度过高而并不出众,于是没学 自己总结了一下 有些时候面对一些树上的结构 并且解决的是和路径有关的问题的时候 如果是多个询问 关注点在每次给出两个点,求一些关于这 ...
- Teamviewer_相关
1.官网下载:https://www.teamviewer.com/zhcn/download/windows/,里面选择 "Portable"的版本来下载(按钮"下载P ...
- 阿里云分布式缓存OCS与DB之间的数据一致性
[分布式系统的数据一致性问题] OCS概要介绍 据AlertSite网络分析公司表示,Facebook的响应时间在2010年平均为1秒钟,到2011年中期已提高到了0.73秒.对比来看,响应时间占 ...
- SQL必知必会 记录
登录数据库mysql -u root -p查看所有数据库 show databases:选择数据库 use 数据库名:查看所有表 show tables查看表结构 descri ...
- 1、C#中Hashtable、Dictionary详解以及写入和读取对比
在本文中将从基础角度讲解HashTable.Dictionary的构造和通过程序进行插入读取对比. 一:HashTable 1.HashTable是一种散列表,他内部维护很多对Key-Value键值对 ...
- 《Advanced Bash-scripting Guide》学习(九):备份最后一天所有修改的文件
本文所选的例子来自于<Advanced Bash-scripting Gudie>一书,译者 杨春敏 黄毅 Example 3-4. 备份最后一天所有修改的文件 #!/bin/bash # ...
- OSX 10.11.1 预览照片绿屏的问题
最新版本的El Capitan仍然会出现Finder预览多张照片时,会几率性出现绿屏或者部分绿色的照片: 这是新版“预览.app”的bug,解决方法有两个,一个是等待升级补丁,暂时一个一个文件预览,就 ...