关于fiddler:fiddler实现本地联调正则匹配和子表达式

背景之前曾经有一篇文章讲述通过fiddler实现本地开发联调,能够参考下。 线上环境通过fiddler代理实现本地联调毛毛虫的小小蜡笔 线上环境通过fiddler代理实现本地联调但之前的文章没怎么讲正则表达式的匹配,也没有用到$1,不够灵便。 所以在这里再介绍下正则匹配后,怎么能够用$1来动静匹配的办法。 什么是子表达式首先要理解什么是子表达式。 子表达式,指的是每一对括号表达式。没有括号的则不是。 fiddler的$1,示意匹配胜利后,将$1的局部替换为正则表达式第一组子表 达式匹配胜利的内容。 看个例子详情: fiddler实现本地联调-正则匹配和子表达式

September 25, 2023 · 1 min · jiezi

关于fiddler:对反方一辩稿的质询

对反方一辩稿的质询:(用于正方二辩对反方一辩质询)B站反方一辩稿内容: 用人岗位需要与大学生冀望和能力构造错配 -> 待业难 (这点须要批驳,待业难是个人感觉,)考研无奈解决 用人岗位需要与大学生冀望和能力构造错配 -> 考研无奈解决 待业难考研读研进步集体工作岗位预期,这些岗位竞争更强烈,高精尖岗位自身就很少。研究生造就(假如只进步前沿实践钻研能力)对待业能力(器重实际操作能力)进步有益处,论文能力对工作能力无用。本科生就足以满足需要,不须要那么多研究生。(。。。很多岗位都只有研究生,你就算本科生满足需要,我当初有个研究生和一个本科生应聘,我必定要研究生啊)预期质询问题: 反方是否认为劝阻大学生认命承受不合乎预期的工作就算解决了待业难问题?(这个其实是从情感价值上妨碍对方阐述要升高预期以达到找到工作的目标) 这个有些上价值了,对方很难答复说是。因为劝阻人任命去承受不合乎现实的事物,这在人的失常感情认知中是一种消极的劝阻。但反方还是会硬着头皮说要这样劝阻,那咱们就说正方认为这样只是消极地任命,对于促成大学生找到合乎冀望地工作没有任何益处。而考研读研却能进步集体能力,促成企业改革转型,对间接促成找到冀望工作有很大益处。 反方要不要比拟将来倒退收益?(要让反方去抵赖对将来长期收益的比拟,长期收益上考研是占有的) 反方抵赖那咱们就后续比拟,反方不抵赖,那我就说反方不抵赖间接待业的将来倒退收益能和考研的将来倒退收益进行比拟,而考研的将来倒退收益我方会阐述,在将来收益方面我方能够认为考研优于间接待业。 反方片面强调了考研的老本,那找工作也有老本,反方是否认为一件事因为有老本就不去做这件事?(默认是说有工夫有老本也要做,想让反方认可任何事都是有老本和收益的,咱们要比拟老本和收益,其实这个根本都有共识了,反方也想要达成去比拟老本和收益的共识。) 反方说很多岗位本科生就足以满足需要,这不能用来否定考研读研对于促成待业的价值,请问反方如果招聘时同时有本科生和研究生应聘,人们是否会更想要本科生?(反方不好答复) 反方无法回答,那这个点咱们结下,岗位本身的需要不能否定研究生有更高的待业竞争力,咱们后续会论证研究生有更高的待业竞争力。 考研除了能在我的项目和实习中取得实际能力之外,考研读研还能进步实践程度,反方是否认可考研读研带来的实践程度的进步要远大于间接待业?反方必定说不认可,咱们就说研究生须要实践翻新能力毕业,而间接待业不会有业余的实践的训练,反方未能侧面答复问题,因而这点咱们结下,认为实践程度的进步考研远大于间接待业。 反方说产业结构与大学生能力预期失配是主观难题,那请问反方是研究生还是本科生更容易解决这样的构造难题?(这个目标是让反方抵赖研究生的造就是有益处的,有益于促成产业结构改革,促成工作环境,有益于解决待业难。这样不便我方输入考研的益处) 反方提到高精尖岗位或者待遇好的岗位少,那请问反方认为是研究生还是本科生更容易取得这样的岗位?(这个目标是让反方抵赖研究生的能力比本科生强,更容易取得好岗位,这也是强调考研读研的价值) 反方说读研会进步预期,反方是否有证据证实?(这个实际上是无奈证实的,因为预期这种集体外在的货色怎么证实呢?) 那正方就说,因为反方无奈证实,所以这个点咱们结下,存在人读研后预期工作和本科时的预期工作是雷同的。后续咱们会数据论证研究生比本科生的待业竞争力要高很多。 反方提到产业结构与大学生能力预期失配,考研无奈解决这样的失配,请问反方是否认为产业结构与大学生能力预期失配的问题永远无奈解决?(这个也有点流氓式问题了,对方必定不会明确说问题无奈解决的) 那我就说反方无奈证实问题无奈解决,那这个点咱们结下,对方认为产业结构静止,学历无用武之地的观点前提不存在。 当今高新技术产业一直倒退,请问反方认为是研究生还是本科生在高新技术产业倒退中能施展更多作用?(这个是从所谓的高新产业倒退中突出让对方抵赖研究生的价值) 反方认为研究生造就不足实际能力,但目前国家正鼎力推动业余硕士的倒退,无论是学硕还是专硕,都会有导师带着做我的项目,也广泛都会在研三进行实习,反方是因为什么认为研究生造就对进步实际能力没有益处的?(这个反方应该脸色会比拟难看) 咱们说因为反方无奈证实,所以这个点咱们结下,反方强调研究生没有实际能力进步的说法是不符合事实的。

September 22, 2023 · 1 min · jiezi

关于fiddler:Fiddler4抓取安卓手机数据包图文教程

@TOC 1、应用背景测试的时候,有时候须要对某个app进行流量数据抓包,进行测试剖析。有很多办法,明天应用Fiddler4,介绍下如何进行安卓手机app抓包。 2、操作步骤2.1、查看记录Fiddler装置负载机的ip艰深说就是装置Fiddler电脑的ip地址:cmd命令行,输出ipconfig,如下我的是192.168.0.18 2.2、确保电脑,手机在同一个局域网内比方装置的fiddler的笔记本电脑和手机都连贯在同一个wifi网络下比方电脑是:192.168.0.18(如上图)手机的IP是:192.168.0.14(如下图) 2.3、设置fiddler点击工具栏的tools->options,弹出如下界面,默认端口是8888,并勾选如下内容: 2.4、手机wifi设置找到曾经连贯好的wifi(和电脑在同一个网络的wifi),点击批改网络: 代理:手动服务器:192.168.0.18(装有fiddler的电脑的ip)端口:8888(fiddler的端口) 3、开始测试轻易点击手机上某个app,比方qq,在fiddler上查看数据包的抓取状况,如下:

January 11, 2023 · 1 min · jiezi

关于fiddler:线上环境通过fiddler代理实现本地联调

有任何问题都能够留言征询。 背景有一个ecx线上环境,前端本地是不能间接拜访后端接口服务的。 也就是本地开发不能连上线上环境,导致本地开发联调比拟艰难。 只能在本地改好后,打包部署到线上环境,再通过log来查看。 文章不易,请关注公众号 毛毛虫的小小蜡笔,多多反对。 解决方案技术上多折腾,还是坏事来的。 借助fiddler神器,应该是能实现在本地连上线上环境,在本地开发和联调的成果。 剖析过程浏览器是先加载html文件,而后浏览器依据html内容,加载对应的js文件。 前几个申请的抓包截图: 详情 请查看:毛毛虫的小小蜡笔 有趣味的能够加群:

October 22, 2022 · 1 min · jiezi

关于fiddler:抓包工具fiddler

一、 网络常识1.1 HTMLHTML:是英文 HyperText Markup Language 的缩写,又叫做超文本标记语言.作用:将网络各种超文本通过标记模式组装在一起造成的HTML格局的文件不便浏览器查看1.2 HTTPHTTP自身是协定(网络中传输数据遵循的规定)HTTPS是平安的传输协定(ssl)1.3 http和https的区别面试题:HTTPS比HTTP要平安,多了SSL平安链接协定协定用于端口号不一样,HTTP默认80,https默认443 【端口:应用服务传输数据的出入口】HTTP传输速度比https快HTTP:是英文 HyperText Transfer Protocol 的缩写,又叫做超文本传输协定,是最罕用的协定之一(客户端和服务器进行交互的协定(应用层协定))。作用:将网络中通过HTML编辑好文件依照肯定标准(协定)进行传递的过程1.4 URL对立资源定位符:网络中任何资源寄存的地位组成: 协定:http、https、sship地址/域名:服务器地址端口号-和协定对应-80、443、22/资源门路--具体要拜访的文件地位?查问参数:发送申请时携带的参数---能够带多个,多个参数之间用&宰割1.5 http的形成1.5.1 http申请申请行 申请办法 get--服务器获取(查问)post--服务器获取(批改)put--服务器获取(新增)delete服务器获取(删除)url协定/版本申请头(形容客户端的信息)申请体(发送携带数据) **重点面试题**:get和post申请的区别?get申请没有申请体,post申请有申请体get申请传递参数在url中,post申请传递的参数在申请体中get申请传递的参数长度有限度,post申请传递参数没有长度限度post申请绝对比拟平安get申请中传递参数的编码方式是ASCII码,post申请无限度 1.5.2 http响应响应行 协定/版本响应状态码(形容服务器响应后果状态) 2XX:示意通信失常(申请曾经被响应),胜利的响应3XX:示意重定向(申请第一次晓得新地址,后续还须要申请)4XX:示意客户端谬误5XX:示意服务端谬误 后果形容响应头(形容服务器的属性信息)响应体(服务器返回的数据(后果)信息)二、 抓包(fiddler)2.1 概念抓包(packet capture) 就是将网络传输发送与接管的数据包进行截获、重发、编辑、转存等操作,也用来查看网络安全。2.2 作用剖析定位bug,判断前后端问题绕过界面限度,测试后盾应用服务(接口测试)通过工具模仿弱网测试2.3 原理 2.4 Fiddler界面介绍 2.5 设置过滤器(仅显示特定主机的抓包信息) 2.6 抓取数据包定位bugeg:联合数据库剖析定位 关上fiddler关上默认浏览器(IE),在浏览中输出 服务器地址 回查看fiddler会话窗口是否有对应的数据包 eg:抓包定位bug案例:查看线上地址后盾会员治理列表中会员的性别信息和前台页面性别信息比照是否统一问题 留神:发现前后台同一账号性别不统一,无奈定位出是前台还是后盾的bug定位bug思路: 比照页面发现不统一【前台页面有数据(后盾传输的)、后盾页面也有数据(数据库)】通过抓包工具去判断 Ⅰ、查看发送信息是否正确(申请行头体) GET http://192.168.100.130/Home/User/info.html HTTP/1.1Ⅱ、查看响应的数据是否正确(响应的行头体) HTTP/1.1 200 OK 响应体数据为HTML文件(待查看)Ⅲ、找到报错地位的关键词,比方:男/女/窃密Ⅳ、提高一判断返回的数据的起源以及对应的响应文件(html文件) Ⅴ、前台从后盾传递,后盾页面的数据来源于数据库,所以联合数据库比照 最初才确定属于谁的问题 前端的bug2.7 前后端问题定位 也能够借助于响应状态码 2XX:示意通信失常 4XX:客户端呈现谬误(url错了、必要的参数写错了) 5XX:服务端呈现谬误(网络谬误、应用服务呈现谬误)通过抓包查看申请和响应 发送方呈现问题,前端问题响应方呈现问题,后端问题申请和响应没有问题,查看响应的数据包自身查看返回的数据包内容,蕴含的数据是什么格局的(html/json) 如果是html返回出错,前端问题,如果JSON返回出错初步定位可能是后盾【须要参 数据库再确认】2.8 拦挡申请批改(绕过界面做测试)作用:相当于做接口测试,验证后盾的接口服务是否失常eg:登录 模仿12位手机号登录(界面曾经拦挡,须要绕过界面做后盾的接口测试)测试通过12位手机号拜访后盾进行登录,看是否有谬误的提醒后盾返回:账号不存在!步骤合成: 关上待测页面在fiddler中设置开启断点在待测界面中输出数据确认 登录页面输出正确的手机号、明码、验证码在fiddler中弹出断点数据包,双击关上,批改申请体数据批改结束后,点击运行实现(查看服务器的响应),后续其余数据包间接运行实现即可 测试结束敞开断点2.9 模仿弱网测试(针对客户端在不同网络环境下拜访服务器展现状态)设置弱网参数 ...

March 29, 2022 · 1 min · jiezi

关于fiddler:什么Sonic-云真机还能在线代理网络抓包

v1.3.2-beta已公布啦~ 这次Sonic云真机的版本有个很亮眼的性能,就是在线代理网络抓包。 先上应用教学1、关上对应tab页面,上面以今日头条App为例2、首次应用须要装置证书,点击下载证书按钮,手机会主动跳转到下载页,下载证书后装置即可 3、点击开始代理,就能够应用啦~ 4、点击对应接口能够看到详细信息 背景过来咱们手机抓包原本就是不太不便,连贯wifi、手动配置代理、信赖证书、开启服务等等步骤比拟麻烦。不少用户提出这个需要后决定动手做下这个事件,将http和https的抓包放到平台上,的确能解决不少用户的懊恼啊,话不多说,开干。 技术预研常见的抓包工具是fiddler、charles,桌面端的移植到Web端力量是比拟大的。根本能够马上排除。js有一个whistle,过后感觉就不错,npm能够间接部署,并且性能强,附带web页面。惋惜目前逐步排除npm依赖,缩小用户装置门槛,所以这个临时作为保底计划。python有个不错的工具叫mitmproxy,间接py部署,有证书,有web页面,都齐全了。惋惜sonic目前曾经排除了py依赖,所以同上,临时作为保底计划哎?原来还有人做了go版的mitmproxy,叫go-mitmproxy,应用起来不错,该有的都有了,而且go打包后的二进制文件能够间接运行,不须要额定依赖,行,就选你了。革新go-mitmproxy接下来对go-mitmproxy进行了定制革新与优化,当然优化的点我也会提交pr给原作者,原作者也十分满意,后续也欢送sonic一起建设。毕竟独特建设比本人二开成长会更快呀!优化点: go-mitmproxy默认证书生成在用户根目录.mitmproxy文件夹上面,这个有一个不够好的中央是用户须要先找到证书能力push给手机装置,那么sonic作为平台化的货色,这个必定是不够敌对的。于是微调了代码,给原我的项目加上了自定义证书生成目录,这样的话sonic的Agent端也能够间接做一层文件转发。手机只须要去到Agent下载页即可下载。go-mitmproxy默认没有生成cer证书,只有pem证书。然而有的安卓机器不辨认pem证书,于是我也加以优化,加上了cer证书的生成。 func (ca *CA) saveCert() error { file, err := os.Create(ca.caCertFile()) if err != nil { return err } defer file.Close() err = ca.saveCertTo(file) if err != nil { return err } return ca.saveCertTo(file) cerFile, err := os.Create(ca.caCertCerFile()) if err != nil { return err } defer cerFile.Close() err = ca.saveCertTo(cerFile) if err != nil { return err } return err}go-mitmproxy默认的web页面高低滚动时,只是接口列表的表头吸顶,然而头部比拟重要的筛选输入框没有做这个解决,于是乎咱们的前端小伙也帮忙优化,最终做成了整个吸顶。我也对表宽度加上了自定义伸缩适配,适配较小分辨率的浏览器。 ...

March 20, 2022 · 1 min · jiezi

关于fiddler:fiddler的初步使用

1、配置代理端口在https外面配置可容许抓取https的信赖证书操作,在actions外面抉择第一个: 在tools的options外面,设置代理端口号: 2、在对应浏览器配置代理后,能够通过filters进行过滤,所要抓的申请: 3、对申请进行操作1、打断点,在fillder的最下方切换模式,进行断点,即在页面的申请,在此处就被拦挡: 在inspectors外面webforms外面批改参数,点击run通comp这个按钮 2、间接把对应的申请拉入composer中,拖入composer中,而后批改参数,点击execute: 3、抉择任意申请,右击,抉择Replay->reissue and edit 则能够对申请进行编辑,再执行 PS: ctrl+x 清空所有抓取数据

January 27, 2022 · 1 min · jiezi

关于fiddler:Post请求还不知道怎么测别说你接口测试已经会了

GET办法和POST办法传递数据的异同http申请办法get和post是最常被用到的两个办法,get罕用于向服务器申请数据,post罕用于提交数据给服务器解决。GET办法其实也能够传递大量的数据。 但它存在以下问题: 1)GET 办法不蕴含body,因而以在URL中拼接字段的形式传递数据,2)GET办法中的URL参数会被显示到地址栏上,存在平安问题 3)传递的数据只能是键值对,无奈传递其余类型的数据因而出于传递大量、多种类型的数据和安全性的思考,上传数据常应用post办法。 POST办法如何传递数据POST办法提交数据给服务器,波及到Content-Type和音讯主体编码方式两局部。服务器依据申请头中的Content-Type来判断音讯主体的数据格式和编码方式,数据则存储在body参数中上传。 body反对多种数据格式,如form-data,x-www-form-urlencoded,json,xml,raw,不同的数据类型有不同的劣势,有本人善于的业务场景。 例如:application/x-www-form-urlencoded是默认的数据类型,然而在传输大型文件的时候效率低下,multipart/form-data的报文的主体内则能够蕴含多局部对象,通常用来发送图片、文件或表单等,实用于传输大型文件。 接口测试软件简介简略介绍下咱们用来做接口测试的工具——Apifox。 Postman天然是接口测试工具畛域的老大哥,但Apifox这类软件在于它整合了接口测试的整个流程——从接口文档导入到单个接口的测试,整个接口套件的治理,以及自动化测试,一站式服务省去了几个软件切来切去的麻烦,当初咱们间接用它来演示。 它的官网下载地址也顺便挂一个:www.apifox.cn 是免费软件来着,大家下载完对着界面边看思路边操作,学习效果会好些。 它的软件界面长这样,咱们间接在首页的接口治理tab进行测试即可。 POST申请接口的测试Post接口申请的测试关键在于了解各个数据类型的含意,并且能结构相应的数据,对各种失常,异样和边缘状况进行测试。接下来会一一介绍下各个数据类型的含意,并用Apifox演示一下各个类型的数据如何测试。 1.application/x-www-form-urlencoded原生的form表单,在body中的数据格式为键值对。下图所示为百度文字辨认AI的一个POST申请接口,测试这个申请接口须要填入的数据有2项。 在header处填入Content-Type: 在body处填入要上传的数据: 点击发送,能够看到理论收回的申请为: 2.multipart/form-data当数据较大的时候能够抉择multipart/form-data 理论发动的申请,Content-Type和body传输的数据能够在[理论申请tab]中查看: 3.Json在接口申请中填入Json数据 收回的理论申请的Content-Type和Body数据类型: 测试方法依据接口文档的参数形容,设计接口测试用例,造出绝对应的失常和异样数据参数,上传数据进行测试。 1.设计接口测试用例 举例:某开放平台API的接口文档参数形容如下: 依据申请参数,上传jpg,png,gif等格局的失常测试数据,再上传非图片的base64编码数据进行测试,查看申请返回。以该接口image参数测试的局部用例来作为例子: 2.Apifox中执行用例 a.间接上传未通过编码的照片 b.上传非图片的base64编码 c.上传照片的base64编码: 3.保留接口测试用例,生成自动化测试套件 在测试治理tab导入测试用例,生成测试用例并一键运行 查看并导出测试后果: 总结POST办法传递数据是接口测试中常见的测试点。这篇文章次要介绍了为什么要用post办法来传递数据,post办法body传递参数的4种数据格式;设计用例并应用Apifox进行测试,最初生成了自动化测试用例及测试报告。

January 5, 2022 · 1 min · jiezi

关于fiddler:Fiddler-Everywhere-一个有手就可以用的抓包工具-但是但是会有灵异现象

Fiddler Everywhere 一个有手就能够用的抓包工具 然而然而会有灵异景象关上利用即可应用 界面如下: 不过你真的理解它吗,思考过他是如何抓包的吗,还是和我一样能用就行,不关怀别的。当然我也能够不关怀他是如何抓包的,所以我遇到了一个灵异景象我电脑上的利用给公网发送的所有申请都失败,然而google浏览器却能够畅通无阻的拜访公网资源。 第一工夫认为是程序问题,因为是自研的利用拜访不了公网,各种排查, 无果。最初把参数放在postman中发送申请,神奇的事件产生了,拜访公网竟然能够登录,那为什么利用就拜访不了公网呢 脑袋里满满的问号。 又想到我的浏览器装置了iGuge插件(迷信上网插件)再次狐疑是插件问题,然鹅把插件卸载了客户端利用还是拜访不了公网。。 直到我偶尔看到了这里把iGuge插件删除之后,本地代理还是开启的并且端口是8866,大略意识到是这里的问题了。 http=127.0.0.1:8866;https=127.0.0.1:8866就是这个代理地址,Fiddler Everywhere 抓包的外围所在 首先关上Fiddler Everywhere 会在本地关上一个代理端口所有的非非凡设置的利用的网络申请都会走这个代理,这也是它能抓包的外围,相当于一个拦截器,拦挡所有的申请而后进行一个转发。 然而当我退出fiddler利用后,过程也没有了,这个代理还是开启着的,导致我的客户端利用不能拜访公网资源。至于为什么应用postman拜访公网接口能够胜利是因为postman默认走的利用本人的代理,没有走http=127.0.0.1:8866;https=127.0.0.1:8866当你勾选应用零碎代理也就无法访问公网了如图: 至于为什么google浏览器拜访公网接口能够胜利 要害刚刚好是因为我装置了iGuge插件,在第二张图中能够看到浏览器应用的是iGuge的代理,所以也能够失常拜访公网 仅仅手动关上零碎设置把这个应用代理服务器敞开即可恢复正常 离大谱,难道这么好用的 Fiddler Everywhere 也会有bug吗?关上利用开启代理,敞开利用就不会主动敞开代理。。肯定是我应用的姿态不对 如果真的是因为姿态不对 哪位能够通知我一下正确的应用姿态 我纠正一下 图片有点含糊,我很无奈。

September 7, 2021 · 1 min · jiezi

关于fiddler:Vue鼠标滚轮滚动切换路由效果的实现方法

个根路由组件(app下的根路由组件, 须要滚动切换的作为其子组件)在根路由组件增加鼠标滚动工夫监听, 在mounted中调用监听当跳转到其余路由(跳出这个根路由时), 根路由组件会被销毁, 因而在根路由的destroed钩子函数中革除掉事件监听 Vue路由切换过渡vue的过渡应用transition 包裹须要过渡的组件, 或者是一个div, 或者是一个路由, 当这个创立或者销毁的时候, 会加载指定的动画成果, 这个动画成果须要本人指定, 这里指定的是transitionName 而后在data外面申明这个, 然而这个值赋值为' ', 因为须要依据路由向前或者向后对应不同的name 当路由向前(这里是向下), 指定为slide-down 而后定义slide-down的不同状态下的激活成果为过渡成果随后定义进入开始动画定义来到激活动画上面是个别是固定即申明-enter-active, -leave-active为过渡成果随后写-enter, -leave-active具体须要的变动个别就是一个-enter, 一个-leave-active接着就是怎么判断路由向前还是向后首先是怎么向前向后切换路由 接着是怎么判断是前还是后, 在写路由的时候, 写上meta, 通过在"根组件"里监督路由变动时, 拿到路由信息, 比照这两个的大小来判断

August 30, 2021 · 1 min · jiezi

关于fiddler:前端面试每日-31-第825天

明天的知识点 (2021.07.19) —— 第825天 (我也要出题)[html] 应用HTML5自定义一个复选框[css] 应用css3绘制一颗仙人掌[js] 写一个办法将一个1到1000的未排序数组中找到缺失的数[软技能] 你感觉工作中是否要学会“偷懒”? 《论语》,曾子曰:“吾日三省吾身”(我每天屡次检查本人)。前端面试每日3+1题,以面试题来驱动学习,每天提高一点!让致力成为一种习惯,让奋斗成为一种享受!置信 保持 的力量!!! 欢送在 Issues 和敌人们一起探讨学习! 我的项目地址:前端面试每日3+1【举荐】欢送跟 jsliang 一起折腾前端,零碎整顿前端常识,目前正在折腾 LeetCode,打算买通算法与数据结构的任督二脉。GitHub 地址 微信公众号欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个Star, 同时欢送微信扫码关注 前端剑解 公众号,并退出 “前端学习每日3+1” 微信群互相交换(点击公众号的菜单:交换)。 学习不打烊,充电加油只为遇到更好的本人,365天无节假日,每天早上5点纯手工公布面试题(死磕本人,愉悦大家)。心愿大家在这虚夸的前端圈里,放弃沉着,保持每天花20分钟来学习与思考。在这变幻无穷,类库层出不穷的前端,倡议大家不要等到找工作时,才狂刷题,提倡每日学习!(不忘初心,html、css、javascript才是基石!)欢送大家到Issues交换,激励PR,感激Star,大家有啥好的倡议能够加我微信一起交换探讨!心愿大家每日去学习与思考,这才达到来这里的目标!!!(不要为了谁而来,要为本人而来!) 交换探讨欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个[Star]

July 19, 2021 · 1 min · jiezi

关于android:Android-网络开发抓包工具Fiddlertcpdump和Wireshark的使用

  这篇文章会依照上面思路来进行形容:   1、为什么须要抓包;    2、怎么抓包;    3、报文的简略剖析;    (ps 文章中提到的设施指的android零碎的设施) 一、为什么须要抓包 网络通信的时候,下层常常会用到http相干的协定,当初网络通信的开源框架也比拟多,相似okhttp这些框架曾经为咱们提供了非常简单的接口,可能只须要一行代码就能实现简略的上传等性能。  网络各个协定层之间的通信是通过报文来进行传递,每个协定层会有本人的报文格式。有时候咱们须要确认发送或者接管到的报文信息是否正确,这时就须要抓包进行剖析。其实还有很多场景会用到抓包,相似想通过php下载某个网站上的视频,这时也能够抓包,看下网站申请的信息,能够晓得相干视频的理论拜访地址。  我本人集体用到抓包,是在写socket通信的时候用到了,2台设施之间通过udp进行通信,而后一边是android零碎,一边是linux零碎,报文内容是依据我的项目须要定义的一套协定。在开发的时候,遇到2边联调时,对接管和发送的报文存在争议,这时抓包就是最好的形式了,以理论抓包内容为准。 二、怎么抓包 && 如何简略剖析报文  Android上抓包的很多工具,也有很多种形式,上面只介绍我本人应用过的2种。一种是pc端装置fiddler工具,在电脑端实时查看网络报文状况,另一种是通过tcpdump命令来抓包,而后再应用wireshark软件来剖析报文。实际上我应用第二种形式比拟多,间接通过命令来抓包还是比拟不便点,抓到的包也能够发给其它共事一起剖析。 1、采纳fiddler工具 应用fiddler工具是须要设施端的ip和电脑端ip在同一网段,如果是公司的对立wifi,那pc和设施都连上公司wifi即可。而后设施端连贯的wifi代理还须要设置为电脑端ip,这个目标也很显著,设施端wifi代理设为pc端ip后,设施端拜访网络,其实都是借助p c端出去的了,所以通过fiddler就能很不便的查看到网络拜访状况。  好了,理解了对于fiddler的根本状况,上面动动手,搞起来吧~~ 1) pc端装置fiddler工具(这个就自行下载安装了);2)  ipconfig 查看电脑端 ip,这个ip地址就是设施端连贯的wifi须要设置的代理ip; 3)  设施端连贯wifi,这个wifi须要和p c端的网络是同一网络,而后设置代理采纳pc端ip(也就是下面通过ipconfig查看到的ip地址); 4)   关上pc端装置的fiddler,fiddler中设置容许近程拜访;      5)  通过下面几个步骤,上面就能够应用fiddler来查看网络报文了。能够试下在设施端拜访网络,这时就能够在fiddler上看到网络拜访状况了;(上面的截图,是查看了喜马拉雅app的一次申请报文状况) 2、上面接着来看下第二种形式,采纳tcpdump命令抓包,而后通过wireshark软件进行剖析1)  tcpdump抓包命令   tcpdump -p -vv -s 0 -w /sdcard/capture.pcap    2)  应用wireshark剖析抓到的包  在window上应用 wireshark关上抓取的包 *.pcap 文件. 上面的截图,是依据本人的须要,筛选了 192.168.7.2 发送给 192.168.7.3 的包. 能够看到协定是采纳的 UDP ,端口是应用的4052. 点开其中一条数据包看下更具体的信息,这里更多时候关怀的的是报文数据局部,查看Data局部的数据,能够排除咱们发的报文数据是否正确. 自己从事Android Camera相干开发已有5年 目前在深圳下班 欢送大家关注我的微信公众号“小驰笔记” 大家一起学习交换  ------- 2020.01.12 周日

April 19, 2021 · 1 min · jiezi

关于fiddler:Fiddler过滤和弱网测试

一、设置过滤1、点击Filters页签,勾选“Use Filters”2、Hosts下方的第二个下拉框,抉择"Show only the following Hostes"3、在下方输入框中输出要抓包的主机地址(多个地址用英文分号隔开,如:localhost;127.0.0.1)4、点击右上角的"Action",抉择“Run Filterset Now”5、如果勾销过滤,去掉“Use Filters”二、设置断点 三、弱网测试 步骤:关上Fiddler,设置代理,并容许近程连贯手机连贯电脑的热点网络,或者同在一个局域网内手机网络连接中,设置网络代理,IP是电脑的同网段IP地址,端口是8888关上网速模仿模式开关(Rules → Performances → Simulate Modem Speeds )手机拜访APP,或者用手机浏览器拜访网络,察看性能响应或者页面刷新速度如果须要自定义网络的速度,须要到自定义规定中配置(Rules → Customize Rules)

March 4, 2021 · 1 min · jiezi

关于fiddler:fiddler的抓包原理

Fiddler是位于客户端和服务器端之间的HTTP代理, 它可能记录客户端和服务器之间的所有 HTTP(S)申请,能够针对特定的HTTP(S)申请,剖析网络传输的数据,还能够设置断点、批改申请的数据和服务器返回的数据。 iddler在浏览器与服务器之间建设一个代理服务器,Fiddler工作于七层中的应用层,可能捕捉通过的HTTP(S)申请。Fiddler启动后会主动将代理服务器设置老本机,默认端口为8888。 Fiddler不仅能记录PC上浏览器的网络申请数据,还能够记录同一网络中的其余设施的HTTP(S)申请数据。数据传递流程大抵如下:

January 29, 2021 · 1 min · jiezi

关于fiddler:前端面试每日-31-第653天

明天的知识点 (2021.01.28) —— 第653天 (我也要出题)[html] 如何在不同的端口间共享cookie?[css] 写的css款式是否能被js所读到?如果能够如何读取?[js] setTimeout(fn,0),提早执行吗?[软技能] 大数据的到来对前端有什么影响?《论语》,曾子曰:“吾日三省吾身”(我每天屡次检查本人)。前端面试每日3+1题,以面试题来驱动学习,每天提高一点!让致力成为一种习惯,让奋斗成为一种享受!置信 保持 的力量!!!欢送在 Issues 和敌人们一起探讨学习! 我的项目地址:前端面试每日3+1【举荐】欢送跟 jsliang 一起折腾前端,零碎整顿前端常识,目前正在折腾 LeetCode,打算买通算法与数据结构的任督二脉。GitHub 地址 微信公众号欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个Star, 同时欢送微信扫码关注 前端剑解 公众号,并退出 “前端学习每日3+1” 微信群互相交换(点击公众号的菜单:交换)。 学习不打烊,充电加油只为遇到更好的本人,365天无节假日,每天早上5点纯手工公布面试题(死磕本人,愉悦大家)。心愿大家在这虚夸的前端圈里,放弃沉着,保持每天花20分钟来学习与思考。在这变幻无穷,类库层出不穷的前端,倡议大家不要等到找工作时,才狂刷题,提倡每日学习!(不忘初心,html、css、javascript才是基石!)欢送大家到Issues交换,激励PR,感激Star,大家有啥好的倡议能够加我微信一起交换探讨!心愿大家每日去学习与思考,这才达到来这里的目标!!!(不要为了谁而来,要为本人而来!)交换探讨欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个[Star]

January 28, 2021 · 1 min · jiezi

关于fiddler:阿里云熊鹰基于融合协同系统的边缘云原生架构演进和实践

简介: 云原生和边缘计算是近两年都十分火的技术话题了,在第十届云计算规范和利用大会上,阿里云高级技术专家熊鹰分享了《基于交融、协同零碎的边缘云原生架构演进和实际》,心愿通过介绍当初阿里云在边缘计算和边缘云原生这些技术畛域的零碎架构演进,让大家理解到业务在云原生和边缘计算联合场景着落地的一些思考。 云原生和边缘计算是近两年都十分火的技术话题了,在第十届云计算规范和利用大会上,阿里云高级技术专家熊鹰分享了《基于交融、协同零碎的边缘云原生架构演进和实际》,心愿通过介绍当初阿里云在边缘计算和边缘云原生这些技术畛域的零碎架构演进,让大家理解到业务在云原生和边缘计算联合场景着落地的一些思考。 概述近几年边缘计算倒退十分迅猛,大家能够在各种规范和材料中看到各家对它的定义,这里对其中的几个根底概念做一个总结性的表述 【缘起】边缘计算概念的缘起,能够追溯到比拟长远的期间,然而真正热度衰亡,次要还是因为5G的倒退;4G的倒退使得挪动互联网大暴发,因而在5G时代边缘计算被赋予了很大的冀望,心愿成为新的产业赛道;另一方面,5G规范3GPP里定义的的三大场景大带宽、低延时、广连贯,从各个方面都会强化边缘计算的利用场景,而由此带来的电信的基础设施的革新,使计算能够进一步下沉,从互联网到核心网、进一步下沉到接入网,计算正在一步步变得离用户越来越近。 【定义】对于边缘计算的定义,身处不同的畛域和角度,运营商、云服务厂商、硬件厂商,各家对于边缘计算的定义是不一样的。在阿里云的边缘云规范里,定义边缘云为:在凑近终端(人和物)的网络节点,提供分布式、可定义、可调度、规范凋谢且平安的计算平台及服务。指标是要拓展云的边界,让计算与连贯离物更近,让它作为万物互联的基石。 【特色】与核心云来比照,边缘的节点是扩散的多级的,节点多而体量小,不止是区域级省级,还会下沉到地市级园区级,在5G场景里,更要下沉到接入网,云与边、边与边之间的网络可能都是互联网通道。 【挑战】海量的、分布式的、异构的边缘节点资源个性,会给业务带来微小的挑战:多个网络入口,代表着对立的流量监控和弹性伸缩策略是不可用;节点多而体量小,代表着繁多集群的弹性弱,而全局的弹性强;海量节点的纳管和互联网的网络环境,对于高可用、灾备、迁徙等等都是大的冲击。 总体来说,因为新基建的提出和布局,5G、物联网、工业互联网失去了宽泛的关注。5G的商业化和产业化过程的减速,使底层基础架构更加的成熟,在往年曾经催生出了一大批新行业入场,云利用、云游戏、互动娱乐、工业互联网2.0等等,同时也在推动着整体技术架构在迅速地变动和演进。 基础设施演进首先来介绍边缘基础设施的演进状况,阿里云依据业务状态,定义了三个阶段: 第一个阶段为边缘云就绪,在这个阶段,用户只是把运行在物理机下面的利用,迁徙到虚拟化环境中,这个过程是以降低成本为次要驱动力的,用户不再自建节点,将底层物理设施的运维转交给边缘云解决,而利用的开发和运维形式并没有十分不同。 第二个阶段为边缘云原生,用户心愿能再进一步升高整体领有老本,晋升零碎能力和研发效力,利用标准化、自动化的形式来治理资源、交付利用、运维零碎,用户基于K8S进行深度开发和定制,将边缘资源进行一个整合,适配边缘的个性,在之上开发搭建本人的PaaS平台,以提供给外部的业务应用。 大家对前两个阶段应该很相熟了,跟核心云的演进过程很相似; 第三个阶段为边缘交融云原生,应该算是一个比拟新的概念,这是阿里云在实际过程当中,联合对用户业务的思考,摸索进去定义的一个阶段。 开展来讲:边缘的个性是分布式、资源小而多、网络条件简单,这样用户须要随时关注基础设施的稳定性,并进行业务和数据的切换和迁徙;另外,弹性不强,那么用户的业务也很难做到按需应用;另外,边缘各种能力在技术架构上的整合,也须要用户更深刻到K8S之中,具备定制开发能力。总结来说,就是用户须要感知底层资源、基础设施,甚至库存、水位、布局等等状况,并且业务要下沉到边缘的技术挑战和难度都很大。在边缘交融云原生里,带给用户的是,在边缘也并不需要去关怀底层基础架构设施,就能享受到弹性、高可用、按需应用的能力。边缘交融云原生应该将异构资源、多集群、库存水位的边缘个性屏蔽;将资源调度、弹性伸缩、多级协同等方面的能力进行积淀和买通;利用云原生的良好的扩展性,将资源、能力进行形象交融;同时还须要针对通用业务场景和新兴业务场景,提供统一标准的接口封装;将这些能力开释给用户。 零碎架构演进在技术架构演进实际当中,同样依照方才的思路进行分层设计:基础设施层:具备异构资源纳管、多级网络架构、交融存储状态等能力,解决底层资源交融纳管、交融生产、形象屏蔽的问题;云边协同层:具备计算、存储、网络流动的能力,具备云边、边边、多云的协同能力,解决各种能力和零碎协同买通的问题;平台引擎层:具备边缘云原生形象集成能力,解决将资源、组件和利用、调度、编排等能力集成交融的问题;业务场景层:具备对立接口、业务积淀、场景深入的能力,解决开发者生态闭环的问题。 能够预料到,随着5G技术和基础设施的继续演进和欠缺,以及创新型业务的倒退,零碎架构还会随之进行演进和更迭。 纸上得来终觉浅,绝知此事要躬行。接下来,熊鹰通过介绍阿里云在理论业务实际过程中的案例,来一一解读各层的能力和设计。 利用案例——无状态利用该场景次要针对的是工作类的业务(例如压测、拨测、离线转码工作)、或者对等网络系统(P2P传输网络)等,这类业务,对弹性伸缩能力有较高要求、对老本有强烈的敏感度,然而对地位、高可用性等要求不高。因为边缘单节点弹性能力弱,然而全局资源弹性强的特点,这种场景算是考验边缘计算基础设施能力的典型利用场景。在架构上,它是须要有一个对全局资源的一个对立库存、交融调度、协同编排的能力:在计算状态上,要反对虚机、容器、平安容器等多种交融计算的状态来满足不同场景的业务诉求;在资源库存方面,要有一个交融的资源池;在调度和编排方面,也是有一个协同对立的调度能力;这样就能很好的提供在事件触发、流量突发场景下的弹性伸缩和按需应用的能力,也能让用户的应用老本大幅度降低。 利用案例——有状态利用这个场景,业务除了将计算和弹性托管以外,还将域名和调度托管了。另外,因为业务的复杂性,架构上也日趋简单。首先,在单集群内,零碎须要拆分为多个独立工作的微服务;第二,多个微服务本身和之间,都有互相编排依赖的关系;第三,在云与边(管控与业务)、边与边(集群与集群)之间会有协同通信的需要;最初,再加上域名和流量调度、SLB、数据库、中间件等通用能力和组件集成需要;从这个角度来看,在边缘的利用场景曾经不比在核心云里的利用复杂度低了,同时还要加上边缘的分布式、多集群、广调度的个性;分布式云计算是对这个场景比拟贴切的形容。 在架构上都须要如何来解决业务的需要?最底层基础架构设施层,产品能力上,引入分布式SLB、分布式DB等;网络能力上,退出了可编程可配置的云边、边边覆盖网络能力;在协同层上,云边协同、边边协同、流量和资源的动态平衡协同也是外围的能力;在引擎层上,须要有深度开发适配边缘的云原生能力,像解决海量节点纳管引入的K8S多集群治理联邦能力、解决业务多租户隔离的Virutal Cluster能力、解决微服务架构中服务发现和协同通信的Service Mesh组件、适配边缘虚构网络、虚拟存储的CNI、CSI组件等等。 熊鹰:"分布式云计算概念目前还没有太多的规范和标准,一个简单利用要做成分布式,从核心下沉到边缘,还须要做很多零碎架构革新适配的工作。这也是阿里云致力的方向,心愿积淀出更多的平台能力进去,造成一个个开发生态的闭环,让分布式云计算,也能轻松落地边缘。” 利用案例——终端上云这个业务场景在往年十分炽热,典型是云游戏和云利用这两个畛域。业务将运行在终端上的零碎或者利用,托管到云端,以升高终端老本,也能够升高高质量业务的可准入门槛。在边缘交融云原生里,这里会有一个根本性的概念转变:从资源托管、利用托管到设施托管、地位无感托管。在基础设施层和引擎层,针对各类异构资源将资源做初步的封装,形象出一层对立的规范的虚拟化的资源,提供平安和隔离的能力;在业务层上,再进行一层封装,将资源属性屏蔽掉,不再提供资源的概念,取而代之的是设施的概念;同时,在协同层上退出了协同计算、协同存储、协同网络的能力,让虚构设施可能流动起来。在业务上,不再能看到传统意义上利用和资源的概念,只能看到一个一个虚构设施的管控能力,例如设施数据、设施利用、设施调度等等。 这里强调一下数字孪生的概念,熊鹰示意:在万物互联时代,每一个物理终端的背地,最终都有一个影子终端在边缘云上,或者是数据的载体,或者是零碎的延长。 利用案例——超清视频这个场景还处在技术摸索的阶段,是真正下沉到5G MEC节点的一个场景,心愿可能打造一个可复制的5G畛域的通用技术架构模型。这个场景里最要害是要能买通协同层和运营商MEC零碎的资源协同、流量调度、网络分流协同的能力。5G/MEC时代算力的继续下沉,到接入网,到MEC节点,通用协定如DNS协定会无奈满足精准的调度需要;一方面调度将会须要依据终端的准确地区信息来决策,另一方面也要依据业务的需要场景来进行决策;例如,对于定位、AR/VR等极高实时性的业务,会放在接入机房来满足实时性的要求;视频剖析等高传输带宽节俭业务和云游戏较高实时性业务,会放在汇聚机房,兼顾性能和实时性的需要;而重计算/大存储的业务放在重汇聚机房或外围机房;多级计算、多级网络的设计能让整个零碎的能力更加弱小和丰盛。 边缘交融云原生心愿在兼顾业务时延、计算能力等需要的根底上,能分场景灵便的抉择业务的部署地位,来满足各类业务的需要。当然,这些能力应该是封装形象提供给下层,用户和业务是不应该感知到底层基础架构设施的复杂性的。 总结5G时代,终端上云、VR/AR、边缘AI、工业互联网、智慧农业的利用场景将逐步暴发起来;在一些专有畛域内,曾经有重量级的利用场景落地;然而在通用互联网技术畛域,真正的5G的Killer利用还没有呈现,或者说真正的联合5G技术还有基础设施的技术架构还待演进。熊鹰非常期待边缘计算平台可能通过共建、单干的形式,将多级网络里的资源交融调度起来,将云边端实在买通协同,基于云原生技术,为行业提供凋谢的、规范的云边协同、云网一体化能力,让更多的利用能轻松的下沉到边缘,实现万物互联的时代。 作者:樰篱原文链接本文为阿里云原创内容,未经容许不得转载

January 18, 2021 · 1 min · jiezi

关于fiddler:解读容器的-2020寻找云原生的下一站

简介: “云原生”到底是什么?它就是容器和 Kubernetes 吗?虚拟机是云原生的吗?…… 2020 年注定是不凡的。它在阴郁中开始,在惊叹中完结,也让将来变得更加错综复杂。那么,容器与云原生的 2020 年呢?你是否记得它是怎么开始的?它又将走向何方? Kubernetes:企业基础设施的规范形象在 2020 年,没有人再会去质疑一个平台团队驳回 Kubernetes 作为本人的基础设施的合理性。事实上,2020 年的 Kubernetes 我的项目曾经十分靠近于地实现了它最重要的使命,即:为云计算基础设施带来一层能够让平台团队基于此结构“所有”的平台层形象。 咱们曾经可能看到,明天的云原生社区曾经开始宽泛认可 Kubernetes 我的项目作为“The platform for platform”的定位与价值,越来越多的平台团队正在基于 Kubernetes 构建各种各样的下层平台,比方 PaaS / Serverless / AI Platform  / Database PaaS 等等。面向终态的申明式 API 与其背地“辛勤”工作的控制器,为“构建基础设施层形象”这个充斥了挑战的技术难题,提供了一个可能在复杂度与可用性之间获得均衡的解决方案。正是基于此,Kubernetes 我的项目才领有了宏大的集成生态,让这个“企业基础设施的规范形象”,逐渐成为了业界公认的事实。 而更为重要的是,Kubernetes 真正的胜利之处,在于它真正押注的是构建形象的办法而非这些形象自身。在绝大多数状况下,企业基于 Kubernetes 构建下层平台,都会引入各种各样其余的形象作为补充,甚至取代或者暗藏掉 Kubernetes 的局部内置形象:阿里巴巴开源的 CloneSet、腾讯的 GameStatefulSet 实际等扩大型工作负载等都是这个趋势的最好的案例。 随同着 Kubernetes 生态从底层到应用层能力的逐步完善,在 2020 年,更多大型互联网终端企业开始退出到了云原生的梯队当中。咱们看到本来的 Mesos 生态标杆 Apple 公司成为了 KubeCon 2020 北美上的相对配角,而金融巨头 MasterCard 则分享了他们基于 OAM、Kubernetes 和 Crossplane 我的项目构建跨云、跨运行时利用交付平台的外部落地案例。而尤为值得一提的是,这些以往在底层根底技术上给人以”激进“印象的大型非云企业,在 2020 年纷纷祭出了对很多新兴技术比方 Virtual Cluster 和规范利用模型技术上的落地与思考。云原生浪潮对整个技术产业带来的深远影响可见一斑。 此外,咱们也不难察看到,Kubernetes 的极大遍及以及基于它衰亡的下层生态,正在跟安卓(Android)的倒退门路越来越显著的趋同。安卓可能对下以一套对立的形式形象与集成不同的手机、电视、甚至汽车等硬件设施,对上则为程序员暴露出对立的一套开发接口,使他们可能以这套对立的形象去拜访或者享受到这些基础设施能力。这种定位与 Kubernetes 十分相似,这里惟一的区别在于,安卓服务的程序员是 APP 开发者,而 Kubernetes 服务的“程序员”,则是平台构建者。在这个背景下,诸如“Kubernetes 摈弃 Docker”之类的新闻会很容易了解:安卓自身就不须要专一于手机的电池是哪个牌子的。 ...

January 18, 2021 · 2 min · jiezi

关于fiddler:DTCC-2020-阿里云梁高中DAS之基于Workload的全局自动优化实践

简介: 第十一届中国数据库技术大会(DTCC2020),在北京隆重召开。在12.23日性能优化与SQL审计专场上,邀请了阿里巴巴数据库技术团队高级技术专家梁高中为大家介绍DAS之基于Workload的全局主动优化实际。 SQL主动优化是阿里云数据库自治服务重要自治场景之一,该服务撑持阿里巴巴团体全网慢SQL的主动优化,目前已累计主动优化超4900万慢SQL。阿里在构建这一能力过程中有教训也有教训,冀望从基于Workload的全局优化能力构建历程、智能化主动优化闭环实际两个方面和大家分享。SQL主动优化是阿里云数据库自治服务重要自治场景之一,该服务撑持阿里巴巴团体全网慢SQL的主动优化,目前已累计主动优化超4900万慢SQL。阿里在构建这一能力过程中有教训也有教训,冀望从基于Workload的全局优化能力构建历程、智能化主动优化闭环实际两个方面和大家分享。 演讲嘉宾简介:梁高中,阿里巴巴数据库技术团队高级技术专家,2017年退出阿里巴巴团体,目前负责阿里巴巴阿里云数据库自治服务研发负责人。退出阿里巴巴前,曾就任于IBM,华为等,领有12+年的数据库产品、数据库优化教训,曾负责数据库优化专家系统,跨源跨数据中心联邦数据库等开发团队负责人。 以下内容依据演讲视频以及PPT整顿而成。 本次分享次要围绕以下三个方面:一、SQL优化场景二、外围诊断能力构建三、主动优化闭环 一、SQL优化场景SQL优化挑战=========== 数据库诊断优化是进步数据库性能和稳定性的关键技术之一, SQL优化是其中至关重要的一环。目前约80%的数据库性能问题可通过SQL优化伎俩解决。SQL优化目前还是面临着很多挑战,首先,SQL优化须要基于多方面的数据库领域专家常识和教训。而且SQL优化耗时沉重,当面临如阿里这样的大规模的业务场景时,SQL继续优化充斥挑战。下图中有一个基于实在业务数据所画出的,随工夫变动的数据库慢SQL趋势图,T1代表着发现数据库实例因慢SQL造成性能异样的工夫点,而T2示意优化过程完结,复原常态工夫点。那么T1越短示意发现性能异样的消耗工夫越少。其次T2-T1工夫是异样解决时长,如果解决工夫过长,一方面会重大影响业务,另一方面大大增加故障危险。 SQL优化三大场景============= 如果将SQL优化性能提供给用户,次要波及三种场景。首先是单SQL工具辅助诊断。用户能够抉择以单SQL为输出,辅助诊断工具会依据给定SQL及相干环境信息,给出优化倡议(改写、最优索引倡议等),最大化减速查问。还有基于负载全局辅助诊断工具,次要以Workload负载为优化单位,综合思考Workload中影响整体性能的特色,实现负载整体性能最大化晋升同时最大化升高空间耗费。这两个场景以辅助决策形式,为用户提供SQL诊断和优化。还有一种场景是主动SQL优化,通过构建欠缺的自动化流程,实现问题SQL辨认、优化倡议生成、评估主动上线,后续跟踪、收益计算的全自动化流程。 二、外围诊断能力构建反对SQL优化,就须要对外围诊断能力进行构建。那什么是外围诊断能力?即针对问题SQL,给出十分精确的倡议。用户通常会遇到上面几种SQL优化问题。 单SQL优化诊断============ SQL优化的实质是创造条件,发现能够晋升的点,如SQL改写,创立SQL索引等,从而让数据库优化器抉择最优或者次优的SQL执行打算。下图两头外围地位的是SQL优化引擎,两边是从外围能力衍生出的对外场景,右边是对外提供的SQL主动优化的闭环,左边是为用户提供的SQL优化倡议。那么单SQL优化诊断能力的构建面临几个次要的问题,首先是应该采纳哪种优化举荐算法?是基于规定形式还是基于代价模型形式?针对WHAT-IF内核能力缺失的数据库,应该如何抉择?第二点,足够覆盖度的测试集,既如何构建一个宏大的测试案例库用于其外围能力验证?领有足够覆盖度,因为精确的测试案例库往往是外围诊断能力构建过程中至关重要的一环。第三点,如何在大规模业务场景下提供诊断服务能力,阿里须要服务于云上几十万级的数据库实例的SQL优化诊断,那么如何实现简单的计算服务服务化拆分,计算服务的横向伸缩,最大化的并行,资源拜访分布式环境下的并发管制,不同优先级的无效调度打消隔离,峰值缓冲等等?第四点,如何让SQL诊断能力继续改良。 单SQL优化诊断 —— 优化举荐算法抉择·面临挑战第一类举荐算法是基于规定式的,其显著的特点是基于当时编辑好的规定来优化。第二类是基于代价评估形式。下图左侧是目前传统商业化最优索引举荐引擎架构,SQL导入之后,对其进行剖析,生成候选索引。而后通过代价评估,这时会通过数据库服务器WHAT-IF能力取得这些候选索引的代价。基于WHAT-IF接口返回的后果进行代价评估,最初进行最终的索引合并择优。这是传统数据库中基于代价评估的最优索引举荐流程。然而,对于例如MySQL这样的数据库引擎,这个过程中还是面临几个挑战:挑战一:在MySQL中WHAT-IF性能是缺失的;挑战二:MySQL中没有残缺的统计信息可应用; 因而须要对此架构进行优化,既在SQL引擎和数据库服务器间加一个内置优化器,通过内置优化器提供WHAT-IF性能。但这种架构仍然会面临几个挑战: 挑战三:如何最大限度放大两个优化器的差距;挑战四:内置优化器中的统计信息与MySQL中的统计信息存在差别,那么应该如何放大或者优化它们之间的统计信息的差别? 单SQL优化诊断 —— 优化举荐算法抉择·基于代价评估形式首先在内置优化器局部,阿里会在物理打算根底上进行代价评估,而后从中抉择。这里与传统数据库中的优化器不同点在于退出候选索引、SQL改写的考量。另外,优化器是基于统计信息进行代价计算,因而在统计信息问题上采纳了自适应采样算法,自适应采样实现在指定误差范畴内自适应决定数据采样量。还须要留神的一点是数据采样的过程不能对指标数据库实例造成太大的压力。 单SQL优化诊断 —— 足够覆盖度的测试集·整体思路为了保障SQL优化引擎笼罩足够全面,那么就须要足够的测试集。抉择测试集时会面临三个问题,首先在抉择的测试集中要蕴含什么样的测试案例?第二点,多少测试案例可能证实曾经足够全面?第三点,目前SQL优化引擎的能力在什么地位?测试集的抉择之所以艰难是因为影响SQL优化的因素太多, 如何让这些特色一一映射到测试案例也是较为宏大的工程。还有,测试案例设计须要专业知识且信息量大,对于繁多测试案例设计也须要专业知识且测试案例中携带的信息量大。 测试案例覆盖度剖析报告是通过下图右侧的流程来生成,首先是剖析影响SQL优化的因素,将其合成为多维度的测试案例特色集。之后通过特色形式化形容,生成测试案例形式化特色库。之后借助阿里丰盛的业务场景,收集线上全量SQL及全量慢SQL。而后联合形式化的特色,抽取线上测试案例,生成测试案例库。最初联合测试案例运行零碎和测试案例剖析工具,评估测试案例覆盖度,生成剖析报告。整个过程中首先是在对多维度特色进行形式化转化,而后通过线上资源构建通往引擎测试集的桥梁,另外,对引擎测试集构建查漏补缺的一把尺子。 单SQL优化诊断 —— 足够覆盖度的测试集·测试用例特色化下图展现了测试用例特色化的构造。首先从影响索引抉择的因素登程,列出这些因素。而后将SQL分为Single Table 和Multi Table两个场景,别离从影响因素往下分SQL语句。再通过三种场景,实现特色集到能力级的映射。 这三种场景别离是L1、L2、L3。L1反对对外围标签谓词局部、聚合排序局部做全排列,保障非核心标签被笼罩,对谓词聚合排序做粗粒度排列组合。L2包含对LIMIT的反对、NOT谓词、聚合反对、函数反对、OR谓词的反对、两表的INNER JOIN、单表或两表的UNION、SUBQUERY反对、隐式转换等。L3包含三表到五表的INNER JOIN、UNION、SUBQUERY、LEFT/RIGHT JOIN、NATUAL JOIN等。 单SQL优化诊断 —— 大规模诊断能力与数据驱动反对大规模的业务场景的诊断服务,SQL优化策略的实际还须要实现很多的事件。首先对计算服务进行拆分、保障计算服务横向伸缩、还要无效保障并行采样效率、管制资源并发拜访、打消优先级调度隔离、缓冲业务峰值。这样能力满足在线上反对大规模业务场景的SQL优化的利用。 基于Workload全局优化================== 下面始终在探讨对单SQL的优化策略,那么从反对业务角度而言,还是须要从全局登程,做全局优化。全局优化是以Workload负载为优化单位,综合思考Workload中影响整体性能的特色,实现负载整体性能最大化晋升,同时最大化升高空间耗费。如下图左侧,从全量SQL中提取Workload负载状况,通过SQL全局优化引擎,在思考存储约束条件S,以及老本约束条件C的状况下,输入须要创立的新索引、须要改写的新索引、须要删除的新索引、并提供SQL改写倡议。 下图左侧的表格里是一系列简略的SQL语句和Workload特色,包含INSERT语句,SELECT语句,在每个时间段内执行次数。如果从单SQL优化的角度,会举荐SQL2-SQL6的四条优化语句。然而从Workload全局优化角度思考会举荐两项SQL优化。Workload全局优化相比与单SQL优化整体RT降落了14.45%,索引空间节俭了50%。 三、SQL主动优化闭环SQL主动优化闭环 —— 实际成果===================== SQL主动优化闭环指的是从问题SQL辨认到基于Workload全局优化倡议主动生成与评估、优化上线再到量化追踪评估的全自动优化闭环。主动优化闭环将人工的被动式优化转变为以智能化为根底的主动式优化。下图左侧展现了整个SQL主动优化闭环的几个要害优化节点。首先是继续24小时的跟踪,进行指标异样检测和Workload异样检测,发现异常点。之后通过SQL优化引擎,给出优化倡议。如果用户驳回主动优化倡议,则灰度上线。如果不驳回,则须要通过智能压测验证,再到灰度上线,而后进行优化成果跟踪。阿里实现了SQL优化的全自动化闭环,主动SQL优化持续保持数据库实例运行在最佳优化状态,目前阿里外部主动优化了4900万慢SQL,全网慢SQL显著降落了92%,全网慢SQL举荐率达到了75%。主动优化闭环在云上辅助自治了30万多的服务实例,全网实例月增长率达到90%。SQL主动优化闭环心愿从规模性、精准性、安全性、全面性、联动性等方面继续优化晋升,服务更多用户。 SQL主动优化闭环 —— 生成基于压测的优化收益报告============================== 下图左侧是基于压测的优化收益报告。依据SQL优化引擎生成的SQL优化的倡议,选取用户实在的负载数据状况,进行压测。压测实现之后生成在实在的场景下对优化倡议的综合评估,剖析优化收益。 SQL主动优化闭环 —— 演示复盘===================== SQL优化为用户提供了丰盛的测试场景,基于SQL主动优化只是其中一个场景。那如何将SQL主动优化与其它测试场景混合到一起?这又将产生什么微妙的成果?同时能够解决哪些问题?下图展现了随工夫变动的数据库性能变动图,以及过程中SQL主动优化做的事件。图中黄色线条是沉闷会话数,深蓝色线条示意CPU利用率,浅蓝色线条是IOPS利用率。第一个阶段是橙黄色局部,既在2020年9月3日21:06 数据库出现异常,此时能够1分钟内发现异常、2分钟内定位异样,并主动发现SQL限流,而后限流失效,黄色沉闷会话数回归原位,深蓝色CPU利用率降落,业务恢复正常。到第二阶段绿色局部SQL主动优化启动,在2020年9月3日21:17 发动异样SQL优化诊断,紧接着优化索引变更上线,索引变更完结,进行24小时跟踪,而后解除限流。随即推出规格升配(Autoscaling)倡议,依据负载的变化降级数据库规格。 ...

January 11, 2021 · 1 min · jiezi

关于fiddler:详细Mac使用Fiddler实现IPhone抓包支持https

【具体】Mac应用Fiddler实现IPhone抓包(反对https)Windows 同理1. 下载 装置 注册具体步骤不过多赘述下载地址:https://www.telerik.com/fiddler 2. 关上Fiddler 设置界面,依照下图设置HTTPS 证书 点击 Trust root certificate 会要求输出电脑明码Capture HTTPS traffic 勾选Ignore server certificate errors 勾选3. 依照下图设置 Connections,记住端口号 勾选 Act as system proxy on startup勾选 Allow remote computers to connect4. 查看本机IP地址 5. iPhone 与 Mac 连贯在同一个局域网6. 在iPhone safari浏览器中 输出IP地址+端口号 8. 进入手机设置 - 通用 - 形容文件与设施治理 装置形容文件 9. 进入手机设置 - 通用 - 对于本机 - 证书信赖设置 关上 针对根证书启用齐全信赖 10. 进入手机设置 - 进入曾经连贯的无线局域网 - 配置代理 - 手动 配置对应的IP与端口号 ...

December 10, 2020 · 1 min · jiezi

关于fiddler:Fiddler-配置

敞开 fiddler 主动代理默认状况下Fiddler会主动开启IE、chrome等浏览器代理服务,这样的话列表中会显示很多咱们实际上不须要的申请。咱们能够本人来指定监听哪个浏览器。关上fiddler4工具,点击【Tools】-【Options】-【Connections】 Act as system proxy on startup:默认勾选,当启动fiddler的时候就会设置为零碎代理。勾销勾选,点击确认而后重启fiddler。 装置 https 证书Tools->Option->HTTPS: 设置端口Tools->Option->Connection,设置端口号,默认是8888,不抵触就行,再勾选容许近程主机连贯即可。

December 4, 2020 · 1 min · jiezi

关于fiddler:使用抓包工具fiddler和apipost进行接口测试

一、进行接口测试筹备的货色1.接口测试工具:apipost、jmeter等2.接口文档,没有接口文档就用接口信息获取工具3.接口信息收取工具:fiddler抓包工具、浏览器开发者工具(f12)等二、web接口测试须要获取的货色web接口测试须要晓得的三个条件1.申请形式:get、post、put、patch、delete等2.url地址:分为http申请和https是申请,如:www.baidu.com和www.baidu.com3.body传递的参数:个别是以json的格局传递参数如:"name":"xiaoming","pwd":"123"。个别以post传递参数申请为多。 三、fiddler抓包工具fiddler是由 C# 开发的最弱小好用的收费web调试工具之一,可记录所有客户端和服务见的 http 以及 https 申请,可监督设断点,甚至批改输入输出数据,它还蕴含了一个弱小的基于事件脚本的子系统,并且能应用 .net 语言来拓展。fiddler就是通过咱们对网页的操作应用而进行的接口信息的抓取的。抓取之后依照下面需要的申请办法、url和body来查找须要的数据。 这是一个简略的登录申请被fiddler抓取到的信息,咱们能够用到的别离是:1.Protocol申请类型:http或https。这里是http2.host+url两个加起来造成的接口拜访地址。这里的申请地址为:127.0.0.1:8888/login3.Request Haeders(申请头部信息)中的申请办法:get、post等。这里是post申请 之后再点击Inspectors中的WebForms查看body参数。获取的参数为,参数名:参数值,name:xiaoming,pwd:111四、接口测试通过fiddler曾经收取到这个接口的具体信息之后,咱们通过接口测试工具apipost进行接口测试。抉择申请办法post、申请地址:http://127.0.0.1:8888/login、body参数:name:xiaoming,pwd:111查看申请后果 这就是通过fiddler和apipost进行接口测试的步骤。fiddler下载地址:https://www.telerik.com/fiddler apipost下载地址:https://www.apipost.cn/?dt=20201031

October 31, 2020 · 1 min · jiezi