关于又拍云:用户-IP里面藏了多少秘密

大家都晓得,要邮寄一封信给正确的收件人,须要提供精确而精密的地址,这个地址须要从国家和城市准确到邮政编码,街道和门牌号码。只有这样,邮局的工作人员能力晓得将信送到那里。 Internet 上也是如此,每个设施都须要一个惟一的“门牌号”能力与其余设施进行网络通信替换数据,这个“门牌号”就是 IP 地址。在设施建设连贯期间,IP 地址会被主动或手动地调配给联网设施,调配过程中 Internet 协定(IP)起着重要作用。 互联网协议地址(也被称为“IP 地址”或简称为“IP”)是互联网的根底。它基于 Internet 协定,是指外部或内部网络中的设施(例如计算机,Web 服务器或打印机等)的惟一可辨认地址。IP 地址能够指定整个设备组,也能够为一台计算机调配多个地址。同时网络中的每个 IP 地址在任何给定工夫只能应用一次。上面咱们来具体说说 IP 地址的运作原理。 IPv4、IPv6 及 IP 的类型IP 地址当初有两个版本,别离是 IPv4 和 IPv6。 IPv4 地址 大多数设施以后次要应用 Internet 协定版本 4(IPv4)的地址。它由 32 位二进制数组成,例如 11000000 10101000 10110010 00011111。为了使此数字好分辨,通常将这 32 位二进制数示意为四个十进制数字的组合,其值从 0 到 255,以点 . 分隔。例如:192.168.178.31。 IPv4 总共能够形成约 43 亿个不同的地址。对于晚期寰球互联网设施而言,因为所有设施不会同时应用,而某些设施也仅在专用网络中应用, IP 地址数目就显得很短缺。但当初越来越多的日常设施须要连贯到互联网,尤其是物联网(IoT)的呈现让很大一部分设施都须要有本人的 IP 地址,IPv4 地址数量曾经应用结束,并且无奈满足数量需要。 曾经到来的 IPv6 IPv6 的地址具备 128 位,因而必须写为 128 位的二进制数。因为这样的数字太长且不切实际,所以采纳十六进制表示法将 128 位压缩为 16 位的 8 个块,并用冒号 : 分隔。例如 0000:0000:0000:0000:0000:ffff:c0a8:b21f。字母 a 至 f 也用作十六进制数字。如果咱们在每个块的结尾省略零,并用两个冒号“:: ”替换一系列间断的 0000 块,则能够进一步简化格局。下面的例子能够简写为 :: FFFF:c0a8:b21f。 ...

May 26, 2021 · 2 min · jiezi

关于又拍云:Redis-存储对象信息是用-Hash-还是-String

Redis 外部应用一个 RedisObject 对象来示意所有的 key 和 value,RedisObject 中的 type,则是代表一个 value 对象具体是何种数据类型,它蕴含字符串(String)、链表(List)、哈希构造(Hash)、汇合(Set)、有序汇合(Sorted set)。 日常工作中咱们存储对象信息的时候,个别有两种做法,一种是用 Hash 存储,另一种是 String 存储。但如同并没有所谓的最佳实际,那么实际上到底用什么数据结构存储更好呢? 首先简略回顾下,Redis 的 Hash 和 String 构造。 StringString 数据结构是简略的 key-value 类型,value 其实不仅是 String,也能够是数字。Redis 中的 String 能够示意很多语义: 字符串(bits)整数浮点数这三种类型,Redis 会依据具体的场景实现主动转换,并且依据须要选取底层的承载形式。String 在Redis 外部存储默认就是一个字符串,被 RedisObject 所援用,当遇到 incr、decr 等操作时会转成数值型进行计算,此时 RedisObject 的 encoding 字段为int。 在存储过程中,咱们能够将用户信息应用 Json 序列化成字符串,而后将序列化后的字符串存入 Redis 进行缓存。 因为 Redis 的字符串是动静字符串,能够批改,内部结构相似于 Java 的 ArrayList,采纳预调配冗余空间的形式来缩小内存的频繁调配。如上图所示,外部为以后字符串理论调配的空间 capacity,个别高于理论字符串长度 len。 假如咱们要存储的构造是: { "name": "xiaowang", "age": "35"}如果此时将此用户信息的 name 改为“xiaoli”,再存到 Redis 中,Redis 是不须要重新分配空间的。而且咱们在读取和存储数据的时候只须要对做 Json 序列化与反序列化,比拟不便。 ...

May 20, 2021 · 2 min · jiezi

关于又拍云:云计算的背后到底是什么

对于中小型企业来说,为了业务倒退,公司外部的 IT 基础架构必须始终“跟上时代的潮流”,常常须要提供比以后所需资源更多的资源。因而一个性能齐备的数据中心对于大多数公司显得至关重要。然而建设本人的数据中心并雇用业余人员保护须要大量的老本,另外也难以按需缩放灵便调整,适应于这类需要,云计算应运而生。 借助云计算能够不必购买硬件服务器,通过 Internet 在云上间接应用应用服务,包含存储空间,解决能力,数据库和软件环境等等。 云计算的历史这类为用户提供更多解决能力和存储空间的联网计算机并不是一项新发明。1950 年代的计算机大型机就曾经朝着云计算迈出了第一步。那时,用户能够通过组织中的其余多个终端拜访大型机并应用其性能,只管过后的用户须要计算好工夫能力应用该大型机。 在随后的几十年中,虚拟化技术的呈现让计算机实例能够形象重建。随后这种虚拟环境可供所有网络用户应用,并在 1990 年代对更多的用户进行了商业销售。之后云的概念变得越来越风行,到 2000 年后,许多公司都开始逐步对云技术产生趣味。 现在大多数智能手机(或物联网)始终与云连贯,云计算不仅为公司带来了很多便捷,也成为许多人日常生活的一部分。那什么是云计算? 云计算是通过互联网提供的硬件和软件服务的统称,通常以大型数据中心或服务器集群为核心,将多台计算机或服务器的资源会集在一起,造成网格计算以实现高性能。它涵盖了从近程服务器提供的云存储空间到云中的基础架构各方面,通过与虚拟化联合,能够为网络中的单个用户创立单个虚构实例。尽管云计算蕴含的内容十分多,然而能不能被称之为云计算却是有明确规定的。 依据美国国家标准技术研究院的论文表述,服务必须满足以下特色能力被称为云计算: 按需自助服务:用户应始终能够独立申请所需的资源,而不用与服务提供商分割。宽泛的网络拜访:随时随地用任何网络设备拜访云计算。多人共享资源池:资源池化多个计算资源是云计算的根本要求。该资源池能够动态分配和重新分配资源,例如解决能力和存储,以满足多个用户的需要。疾速重新部署灵便度:资源交付必须疾速且基于需要。在某些状况下能够主动进行放大和放大,而无需客户或服务提供商的干涉。可掂量的服务:始终监控云服务的应用状态,为单方都减少了透明度。各种云计算类型在云服务日益增多的明天,市场上呈现了各种各样的云解决方案。除了提供的价格和反对外,这些计划的次要区别还在于所提供的层和部署模型。“层”是指服务的级别,而部署模型则决定了提供的服务类型。 服务级别 “层”是指对应的特定服务级别,个别通过各种“即服务”级别形容服务的范畴。因而,通常应用金字塔模型来出现它们。基础架构即服务具备最大的范畴,而软件即服务仅专一于特定的应用程序。 这些“即服务”的具体涵盖范畴如下: 基础架构即服务(IaaS):在此级别上,供应商提供残缺的硬件解决方案:计算能力,存储空间和网络。用户应用的实例齐全是虚构的,并划分了资源池。IaaS 能够用作其余层的根底,也能够作为独立产品提供。平台即服务(PaaS):提供不只是硬件的残缺的云环境。PaaS 次要针对软件开发人员。服务提供商在托管于硬件上的云中提供已建设的开发环境。因而,程序员能够节俭保护此类环境的工夫和费用。软件即服务(SaaS):为用户提供了软件解决方案。SaaS 次要面向典型的最终用户,他们不用放心装置和保护软件,并且能够释怀硬件足够弱小。所有即服务(XaaS):XaaS 能够归于不同的级别。因为除了下面提到的三层,是出于一些非凡起因(比方营销伎俩),个别提供商还提供额定服务 XaaS。这通常是出于一些非凡起因(比方营销伎俩)。实际上,XaaS 能够归于不同的级别。人即服务(HuaaS):是一种众包模式,一群人通过 Internet 进行工作。当然,咱们日常最所见的次要是 Iaas、PaaS 和 SaaS 这三种服务模型。 部署模型 部署模型形容了服务的类型,有以下四种: 公有云:服务器仅由一位客户应用。公有云能够是本地的(外部云)。即便应用了服务器集群的托管程序,其余应用该程序的客户也无法访问该专用硬件。私有云:私有云被认为是云计算的次要状态,其外围属性是共享资源服务,即大家一起共享服务器资源。作为用户,咱们无奈查看谁在应用服务器资源及更改。混合云:此模型是公有云和公共云的混合。这意味着用户能够确定将其操作的哪些局部设为公有(例如,平安方面)以及哪些局部放弃公开状态。社区云:社区云的性能相似于公有云,不同之处在于多个用户共享一个专用的硬件实例。然而,用户资源池不是随机的,通常是来自雷同业务畛域或具备类似趣味的客户被组合在一起。此外,社区云能够在公司外部或内部进行治理。与运行多个公有云相比,更能节俭资源。云计算的优缺点云计算的呈现为中小型企业对于自建 IT 基础架构老本过高的问题提供了解决方案。硬件的应用和保护由服务提供商接管,企业只须要投资价格便宜的终端拜访云计算服务即可。此外,业余的服务器集群比大多数组织本人治理的安全性要高得多,有专门的平安人员和服务器专家对数据中心进行物理层面的爱护。除此之外大多数云计算服务提供商都对所有数据进行强制备份,可能无效防止数据失落造成的隐患。 作为一个还算新兴的服务性能,云计算也有一些毛病。例如,依据服务提供商的不同,在配置方面的可定制性程度可能会有很大的差别,可能无奈满足特定企业的需要。同时,应用云服务会过分依赖提供商,一旦他们遇到技术问题,就会间接影响企业的业务经营。云计算的应用还依赖于弱小而稳固的互联网连贯,否则企业员工将无奈高效地工作。 除去以上的毛病,对云解决方案最大的关注是数据隐衷问题。只管云服务商能保障存储数据的平安,然而通过 Internet 传输数据始终会带来平安危险。 云计算毕竟不是收费的,企业必须认真思考所需的资源容量应用工夫,从而最大可能地节省成本。在这方面,又拍云以场景化 CDN 为外围业务,为客户提供云存储、云解决、云平安、流量营销等云服务,帮忙用户实现内容散发减速、产品研发减速、业务成长减速,而且按需计费,领有 WebP、H.265、码率适配限速等多种老本管制相干的性能,帮忙企业节俭收入。 举荐浏览辞别DNS劫持,一文读懂DoH 【文言科普】聊聊 DNS 的那些小常识

May 19, 2021 · 1 min · jiezi

关于又拍云:白话科普上网时遇到的-404-是什么意思

随着网络时代的倒退与提高,咱们的学习工作和生存早已离不开互联网,智能家居、网上购物、日常出行都须要互联网的反对。互联网切切实实地给生存带来了诸多便当。 那大家有没有碰到过这么一个状况呢?当咱们在应用手机或者电脑浏览一些信息的时候,或者在搜索引擎中搜寻材料,点击搜寻后果跳转后,浏览器跳出一个 404 Not Found 的空白页。 置信各位老网民都很相熟“404”这个数字了,这个错误代码代表着服务器未找到文件,通常出拜访的页面曾经被更改或者移除,或是输出了谬误的拜访地址谬误。 那为什么用 404 而不是其余的数字来代表拜访资源不存在呢?互联网上对 404 的诞生有这么一个“传说”。据传在第三次科技反动前,整个互联网的状态就像是一个大型的地方数据库,并设置在一个叫 404 的房间里。那个时候,所有的互联网拜访申请都由人工手动实现,若在 404 房间中没有找到请求者所须要的文件,或是因为请求者写错了文件编号,工作人员就会返回一个“Room 404 : File Not Found”的信息。 当然,经理论考据后发现传说中的 Room 404 其实并不存在,而 404 的真正起源则要从互联网之本 -HTTP 协定说起。 状态码的由来家喻户晓,互联网的建设突破了地区限度,通过浏览器与服务器之间的交换让咱们足不出户知天下。而浏览器与服务器之间的交换则是通过 HTTP 协定。 HTTP(Hypertext Transfer Protocol),超文本传输协定,它是应用层协定。因为其简捷、疾速的形式,实用于分布式和单干式超媒体信息系统。自 1990 年起利用于万维网(WWW)寰球信息服务零碎。 用户上网的过程,就是浏览器通过 HTTP 协定向服务端发送申请,而后将服务端主机上的内容显示到本地。 撑持着 HTTP 协定工作的是 TCP/IP 协定这个典范打工人,它负责了底层的数据传输工作。单从这一点上来看,所谓的“超文本传输协定”其实和传输没什么分割,有点徒有虚名。那为什么 HTTP 还被称为传输协定呢?答案就是它是传输报文内容的。 HTTP 协定在标准文档里具体定义了报文的格局,规定了组成部分,解析规定,还有解决策略,所以能够在 TCP/IP 层之上实现除了数据传输外,更灵便丰盛的性能。 TCP 的协定报文,在理论要传输的数据之前附加了一个 20 字节的头部数据,存储 TCP 协定必须的额定信息,例如发送方的端口号、接管方的端口号、包序号、标记位等等。有了这个附加的 TCP 头,数据包才可能正确传输,到了目的地后把头部去掉,就能够拿到真正的数据。 HTTP 协定也须要在理论传输的数据前附加这类头数据,不过与 TCP 不同的是,它是一个“纯文本”的协定,头数据都是 ASCII 码的文本,能够很容易地用肉眼浏览,不必借助程序解析也可能看懂。 HTTP 协定的申请报文和响应报文的构造基本相同,次要由三大部分组成: ...

May 13, 2021 · 2 min · jiezi

关于又拍云:5招减少网站恶意文件上传

在网络上进行分享的时候有一个操作必定是无奈防止的,那就是“文件上传”。咱们常常发微博、发微信朋友圈等等,发送过程就用到了文件上传中的图片上传性能。将本地图片、视频、音频等文件上传到程序服务器上,再供其余用户浏览或下载。这就造成网站每天都会有大量数据的流入,海量数据带来用户的同时,也带来了一些平安问题。 而网站的开发者在网站存储空间中,常常会发现各类 xml、html、apk 等垃圾文件,这些文件或是注入广告,或者散播涉黄视频等资源,重大影响网站业务的经营。这些垃圾文件都是通过文件上传性能上传到网站存储空间的。如果网站上传程序没有对用户提交的数据进行测验或严格过滤,服务器就很容易被上传批改过的数据。 文件上传是数据安全中最容易被利用的一个环节,要缩小歹意文件上传打搅,咱们首先须要弄清楚它的原理。 文件类型和文件扩展名的作用计算机的数据内容个别寄存在例如硬盘等等这类存储硬件上。因为硬盘自身空间微小,就像一个大仓库,为了不便数据存储以及治理,咱们发明了文件的概念,也就是操作系统用文件的格局来封装存储于空间中的一段数据。 然而随着互联网的倒退,从最开始的纯文本文件,倒退到明天各个类型的多媒体文件,如图像、音频、视频等等,咱们存储的文件越来越多,品种也越来越丰盛,文件体积也越来越大,如果不对这些文件进行辨别,查找起来极为麻烦。所以文件格式(或文件类型)也就应运而生。每一类文件,都能以一种或多种文件格式保留在电脑存储中。每一种文件格式通常会有一种或多种扩展名能够用来辨认,扩展名能够帮忙用户和应用程序辨认的文件格式。 例如,有一个文件被命名为 README.txt ,.txt 就是这个文件的扩展名,而 txt 实用于纯文本文件。这类文件可能是一份文件内容为纯文本的阐明文档。 除此之外,扩展名还能够帮忙操作系统判断以何种形式读取文件。例如 score.doc 这个文件,doc 文件能够用 Word 关上,那么 Windows 用户在双击一个 .doc 文件后, Windows 零碎会依据文件扩展名“doc”,在自保护数据库表中查找“能够关上这个扩展名文件的程序”,如 Word 程序,之后零碎会主动启动 Word 程序,并告诉 Word 去加载这个文件。 从这里能够看出,Windows 零碎在关上一个文件的时候,只须要文件名中的扩展名就能够找到对应的程序。所以,扭转一个文件的扩展名,也会更改这个文件在零碎中的默认打开方式。而且如果文件自身内容不合乎程序对文件内容格局的预期,则关上会出错,或者呈现意料之外的后果。 浏览器如何辨认关上文件因为互联网工具性能的逐步欠缺,相比在本地关上文件,应用浏览器关上文件的几率也逐步增多了。那么,浏览器是如何确认拜访的资源是什么文件类型的呢?其实是通过响应头来判断的。 当用户输出 URL 后,资源所在服务器会进行响应,并给出 Content-Type 响应头,其值就是文件对应的类型(MIME 类型)。如果浏览器反对该格局,则浏览器会尝试渲染显示对应文件。 与 Windows 零碎中相比,浏览器通常应用 MIME 类型,而不是文件扩展名来解决 URL。因而在响应头中增加正确的 MIME 类型就显得十分重要,如果配置不正确,浏览器可能会误解文件内容,下载的文件也会被错误处理,进而影响网站的失常运作。 歹意文件是如何上传的最开始咱们提到一些歹意资源会通过上传文件的形式上传,这些歹意资源的文件格式明明是失常格局,然而关上后却会呈现跳转网页等非凡拜访成果。这是怎么做到的呢? 其实原理很简略,就是通过批改 MIME 类型作出的操作。比方上图的 test.jpg 图片。尽管 URL 链接的资源后缀是 jpg,然而实在的资源的文件类型是 text/html ,也就是网页类型。 而这种网页类型的文件反对 JS 代码地嵌入,并能够通过这些代码让关上文件的用户跳转到指定网站。只管这个景象看起来和 DNS 劫持有些类似,然而其实是不同的。对于 DNS 劫持的问题,大家能够查看【文言科普】聊聊 DNS 的那些小常识》理解更多。 ...

May 12, 2021 · 1 min · jiezi

关于又拍云:白话科普网站图片不显示背后的原因你都清楚吗

浏览网页的时候,什么才是最重要的?是充斥信息的文字么?没想到吧,是我图片哒!在这个快节奏的时代里,图片才是碎片化工夫中最容易传递信息的存在。因而在网页中,图片是不可或缺的存在。然而常常有敌人反馈,关上网页的时候不显示图片,这是为什么呢?是什么起因导致了图片无奈加载呢? 图片不显示的常见起因网速问题 如果关上网页的时候无奈关上图片,首先应该查看的就是网速问题,如果网速太慢或某张图片提及过大,就会呈现图片加载失败的状况。 查看办法:网速过慢本人可有间接感觉,如关上百度、新浪之类的网站都比较慢,能够的话,能够间接百度搜“网速测试”进行间接在线测试本人的网速。 Flash Player 问题 有的时候关上网站后,图片会显示须要 Flash Player,遇到这种提醒后,咱们能够点击控制面板,双击 Flash Player 选项,电脑桌面显示出了 Flash Player 设置管理器,而后抉择高级,点击立刻测试。咱们点击浏览器右上角的工具。抉择治理加载项,启用 shockwave flash object,而后点击确定。 Internet 选项设置不当 当浏览器过滤了图片,或者将咱们所拜访的网站增加到受限站点,也可能导致图片无奈显示。咱们能够点击浏览器工具,点击 Internet 选项,针对第一种状况,咱们抉择高级抉择,点击显示图片,最初抉择利用,在从新拜访网站就能够了。如果是后一种状况,咱们能够抉择平安选项,点击受限站点,删除受限站点的列表中咱们所拜访的网站,最初抉择下利用就好了。 除去从新刷新拜访外,咱们也能够用浏览器自带的抓包工具来看下拜访成果,能够在页面按 F12 或者在页面上右键点“查看”,就能够看到开发者工具的内容。 之后关上 Network 面板,该面板记录页面上每个网络操作的相干信息,包含具体的耗时数据、HTTP 申请与响应标头和 Cookie。 点击资源名称,能够查看与资源无关的更多信息。 可用标签会因您所抉择资源类型的不同而不同,但上面四个标签最常见: Headers:与资源关联的 HTTP 标头。Headers 标签能够显示资源的申请地址、HTTP 办法以及响应状态代码。此外,该标签还会列出 HTTP 响应和申请标头、它们的指以及任何查问字符串参数。Preview : JSON、图像和文本资源的预览。 Preview 标签会显示该资源的预览信息,也可能不显示,具体取决于您所抉择资源的类型。Respones : 显示资源未格式化的 HTTP 响应内容(如果存在)。Timing : 资源申请生命周期的精密合成。 能够在控制台看下图片响应的状态以及响应的工夫来判断不显示的起因,以便于更快的解决问题。 当然也有一些比拟非凡的起因,比方当初十分风行的 WebP 格局的图片,因为不是所有浏览器反对,有时候也会呈现图片不显示的状况,上面咱们来细看下。 浏览器不反对WebP 为了缩小互联网上图片的发送工夫和流量耗费,当初很多网站都抉择了 WebP 格局的图片。WebP 汇合了多种图片文件格式的特点。它像 JEPG 一样适宜压缩照片和其余细节丰盛的图片,像 GIF 一样能够显示动静图片,像 PNG 一样反对通明图像。同时 WebP 在性能上也比其余格局的图片更强劲,依据 Google 的测试,WebP 无损压缩图片比 PNG 图片少了45%的文件体积。 ...

April 29, 2021 · 1 min · jiezi

关于又拍云:你已经用上-5G-网络了吗

随着各大手机厂商陆续推出 5G 手机,智能手机全面迎来 5G 浪潮。可能有人会提问:如此推崇 5G,5G 能为咱们带来什么,咱们的生存又会因而而扭转多大呢? 什么是 5G?简略地说,5G 就是第五代通信技术。次要特点是波长为毫米级,高带宽,超高速度,超低延时,其峰值实践传输速度可达 20 Gbps,合 2.5 GB 每秒,比 4G 网络的传输速度快 10 倍以上。实践来说,一部 1G 的电影可在 4 秒之内下载实现。 5G 时代又被称为“物联网时代”、“万物互联时代”。而所谓物联网,则是将任何物体与网络相连,实现物体间的信息替换。 打个比方,挪动通信零碎相似高速公路,而生存中的媒体和物体都是车。从 2G 时代开始,这条高速公路就一直拓宽,可能承载的媒体和物体越来越多、运行的速度越来越快。而到了 5G,这条高速公路曾经能够承载简直所有的媒体和物体并将它们相连,最重要的是,畅通无阻,能够让人类体验到前所未有的“快”感!这就是 5G 与物联网的特点,也是万物互联的外围。 说起 5G ,它的倒退是绕不开的话题。首先咱们先来明确下从 1G 到 5G 的改革。 1G 实现了模仿语音通信,大哥大没有屏幕只能打电话;2G 实现了语音通信数字化,性能机有了小屏幕能够发短信了;3G 实现了语音以外图片等的多媒体通信,屏幕变大能够看图片了;4G 实现了局域高速上网,大屏智能机能够看短视频了,但在城市信号好,老家信号差。1G ~ 4G 都是着眼于人与人之间更方便快捷的通信,5G 将实现随时、随地、万物互联,让人类敢于期待与地球上的万物通过直播的形式无时差同步参加其中。应用 5G 须要哪些条件呢?随着 5G 技术地使用,在我国抢占数字经济高点发明了许多机会。它被广泛应用到泛滥畛域,包含云、人工智能、大数据等。在咱们的生存上 5G 也带来了以下改革: - 5G 可能实现高速度、低提早的流式传送,边下载边运行:看视频、拖进度条不须要缓冲;下载电影、游戏根本秒速;在线游戏不卡顿、VR(虚拟现实)游戏更遍及;而且还能看到简直所有 Live 直播,甚至能够通过 VR 领有最前排视角。有网好谈话,网快你就是老大! - 5G 也是很多黑科技的敲门砖,比方全息通信:早在去年 9 月,流动通信网络公司“沃达丰”就实现了英国首个 5G 全息视频通话。英格兰女足队长 Steph Houghton 在曼城与纽伯里 11 岁的小球迷胜利连线,并“现场”领导球技。 ...

April 27, 2021 · 1 min · jiezi

关于又拍云:聊聊风口上的-eBPF

eBPF 是一个用于拜访 Linux 内核服务和硬件的新技术,因为其灵活性和高性能等特点,被迅速用于网络、出错、跟踪以及防火墙等多场景。目前国内已有多数企业开始尝试将 eBPF 引入生产实践,又拍云也是其中一个。专为技术开发者提供常识分享的 Open Talk 公开课邀请了又拍云开发工程师周晨约直播分享 eBPF 的学习教训与开发心得,并对其分享内容进行整顿,下拉至文末点击浏览原文可回看原视频。 大家好,明天分享的主题是《eBPF 探索之旅》,围绕三局部开展: eBPF 是什么eBPF 能做什么如何编写 eBPF 程序意识 eBPFeBPF 是什么,从字面上来看是扩大伯克利包处理器,那伯克利包处理器是什么呢? 在此之前先来理解一个性能优良的罕用抓包工具:tcpdump tcpdump 图中展现了两个罕用指令 指令一:指定 IP 和端口,能够抓到 IP 为 220.173.103.227,端口为 80 的包 指令二:加上 grep,能够过滤出带有 route 字段的数据 那么 tcpdump 又是如何做到通过用户提供的规定解决网络上收到的包,再 copy 给用户的呢?如果放在用户层,就须要在零碎里所有 socket 读写的时候做一层解决,把规定放上去,这样做难度太大。而 tcpdump 是基于 libpcap 库实现的,libpcap 能做到在驱动将包交给内核网络时,把包取过去,通过用户传给 libpcap 的规定将须要的网络包 copy 一份给用户,再把包传给内核网络栈,而之所以 libpcap 能做到这点全靠 BPF。 BPF BPF 是基于寄存器虚拟机实现的,反对 jit,比基于栈实现的性能高很多。它能载入用户态代码并且在内核环境下运行,内核提供 BPF 相干的接口,用户能够将代码编译成字节码,通过 BPF 接口加载到 BPF 虚拟机中,当然用户代码跑在内核环境中是有危险的,如有处理不当,可能会导致内核解体。因而在用户代码跑在内核环境之前,内核会先做一层严格的测验,确保没问题才会被胜利加载到内核环境中。 ...

January 6, 2021 · 3 min · jiezi

关于又拍云:聊聊-HTTP-常见的请求方式

在互联网曾经浸透了生产、生存各个角落的明天,人们能够登录微信语音聊天,能够顺手“扫”到各种性能的二维码,能够通过方便快捷的无人超市购物……这种互联网畛域的跨越式倒退,不仅满足了人们生存中各种各样的需要,也催生了一个个新兴畛域的诞生,为经济增长注入了强劲能源。 上网的过程,其实是浏览器向服务端发送申请,之后将服务端主机上的内容显示到本地的一个流程。而浏览器与服务器之间的申请走的就是 HTTP 协定。 自 1990 年以来,超文本传输协定(HTTP) 就成为了互联网数据通信的根底,它是分布式合作超媒体信息系统的应用层协定,是一种通用的无状态协定。具体来讲就是让服务器不保留与客户交易时的任何状态,由客户端单方面向服务器发送申请数据。 HTTP 次要有 0.9、1.0、1.1、2.0 版本,其中 1.1 版本定义了 9 种 Method(办法),别离是: 这些办法中,最常见的便是 GET 和 POST,然而可能很少有人关注两者都有什么作用,咱们一起来看一看吧。 GET vs POST MethodGET 和 POST 都是 HTTP 协定的一种申请规范,同样基于 TCP 传输层协定。两者次要区别在存放数据的形式不同,进而造成的传输量、安全性等差别。 GET 咱们先来看一下 GET 是怎么传送信息的: <form method="get" action=""><input type="text" name="id" /><input type="submit" /></form>如上实现代码点击“提交”之后,浏览器的网址就会变成 http://www.a.com/a.html?id=11111,浏览器会主动将表单内容转为 Query String 加在 URL 前面进行申请。这样,从浏览器的网址里就能够看见表单要传送的材料。 POST 接下来咱们看看 POST 的传送: <form method="post" action=""><input type="text" name="id" /><input type="submit" /></form>提交之后,地址并无变动,然而通过查看 HTTP Request 的内容能够发现,POST 是将表单材料放在 Message Body 进行传送。 看不太懂代码的小伙伴也不要焦急,咱们以现实生活中寄信的机制来举例。如果说信封的撰写格局是 HTTP,咱们能够将信封外的内容称为 Http-Header,信封内的书信称为 Message Body。 HTTP Method 就是你要通知邮差的寄信规定。 ...

December 23, 2020 · 1 min · jiezi

关于又拍云:云原生网络代理MOSN的进化之路

本文系云原生利用最佳实际杭州站流动演讲稿整顿。杭州站流动邀请了 Apache APISIX 我的项目 VP 温铭、又拍云平台开发部高级工程师莫红波、蚂蚁金服技术专家王发康、有赞中间件开发工程师张超,分享云原生落地利用的教训心得,以下是王发康《云原生网络代理(MOSN)的进化之路》分享内容。 王发康(毅松), 蚂蚁金服可信原生技术部技术专家,专一于高性能网络服务器研发,MOSN、Tengine 开源我的项目核 心成员,目前关注云原生 ServiceMesh、Nginx、Istio等相干畛域。 明天次要分享 MOSN 在蚂蚁金服的 Service Mesh 大规模落地后,通过对接 UDPA 打造为 Istio 的数据面之一,其在演进过程中遇到的问题及思考,我从以下三方面开展: MOSN 介绍云原生演进总结与瞻望MOSN 介绍我先从 MOSN 的诞生背景、MOSN 在蚂蚁团体的倒退历程、MOSN 的架构解析和落地状况等维度向大家介绍 MOSN。 MOSN 诞生背景 说到 Service Mesh 为什么会呈现,咱们须要先回顾服务演进历程,大体经验如下阶段: 单体服务:晚期网站小、流量少,业务简略,可在同一个服务中实现所有部署; 分布式:当用户达到肯定规模且日益增长,须要进行服务拆分; 微服务:随着服务数量的继续减少,呈现了服务治理的需要,如限流、鉴权、熔断等,于是一些治理组件便被以 SDK 插件的模式集成到不同的利用中; Service Mesh:因为服务治理的 SDK 多语言、中间件组件开发适配老本高,以及其自身较弱的服务治理能力,开始尝试将 SDK 和业务剥离,解耦出一个独自的 Sidecar,从而解决多语言开发、业务迭代等难题。 总的来看,业务侧有如下痛点: 多语言,中间件组件开发适配老本高SDK 降级艰难服务治理能力弱技术不通用,无奈复用现有业界计划: Envoy (C++)Linkerd (活跃度较低)NginxMesh (活跃度低)基于上述业务的痛点以及对业界相应的解决方案评估过后,最终咱们决定自主研发 MOSN。MOSN(ModularOpen Smart Network) 是用 GoLang 语言开发的网络代理软件,作为云原生的网络数据立体,旨在为服务提供多协定、模块化、智能化、平安的代理能力。 MOSN 倒退历程 MOSN 从 2017 年 12 月开始 Service Mesh 技术调研,到产品孵化,历经重重困难,最终通过 2019 年双 11 规模化验证,实现蚂蚁团体外围领取链路笼罩。MOSN 在外部落地后,咱们认为借力开源也要反哺开源,因而着手进行 CloudNative 生态交融,和业界多种开源规范组件联结走标准化路线,从而实现共享并最大化的开释其技术红利。 ...

December 17, 2020 · 3 min · jiezi

关于又拍云:服务器标配-SSH-协议你了解多少

年初,新冠肺炎疫情的呈现,全国数千万名员工在家近程办公,应用集体设施通过家庭网络拜访公司材料。因而,IT 平安团队面临了泛滥新挑战:如何施行更加平安的身份验证计划,以确保只有受权人员和设施能力拜访公司敏感资产? 不少小伙伴想起了 SSH,其实大家对它都比拟相熟。大到虚拟机、服务器,小到手机、家电,Linux 设施遍及越来越广,SSH 的使用也越来越宽泛。不仅攻城狮、程序猿离不开它,普通用户也根本都在应用。SSH 能够说是各服务器的标配,有了 SSH,咱们不用每次都要蹲到机房里连贯服务器配置服务器,间接近程就能够操作,同样,有了 SSH,也能解决近程办公的一些安全性问题。 上面咱们就来具体理解一下 SSH 的传奇故事。 什么是 SSHSSH(Secure Shell)是一种加密的网络传输协定,它容许用户通过 Internet 管制和批改近程服务器。该协定的呈现代替了未加密的登录协定(例如 telnet/rlogin)和不平安的文件传输办法(例如 FTP),并应用了加密技术来确保与近程服务器之间的所有通信都以加密的形式进行。它提供了一种机制,用于验证近程用户,将输出从客户端传输到服务器,以及将输入中继回客户端。 SSH 提供了弱小的加密和完整性爱护。在客户端和服务器之间建设连贯后,SSH 将依据设置中协商的参数对传输的数据进行加密。在协商过程中,客户端和服务器依据应用的对称加密算法达成统一,并生成将要应用的加密密钥。通信单方之间的通信受到行业标准的强加密算法(例如 AES(高级加密规范))的爱护,并且 SSH 协定还包含一种机制,该机制通过应用规范哈希算法(例如 SHA)来确保传输数据的完整性。 SSH 除了提供弱小的加密性能外,网络管理员还宽泛应用 SSH 近程管理系统和应用程序,交付软件补丁或执行命令并挪动文件。 SSH 协定如何工作任何 Linux 或 macOS 用户都能够间接从终端窗口通过 SSH 进入其余近程服务器。而 Windows 用户能够利用 Xshell、Putty 之类的 SSH 客户端。进入之后就能够与间接操作近程计算机雷同的形式执行 Shell 命令。 SSH 默认在 TCP 端口 22 上运行(能够依据需要批改)。服务器在 22 端口上监听传入的连贯。如果验证胜利,它将对客户端进行身份验证并关上正确的通道来进行平安连贯。客户端必须通过与服务器启动 TCP 握手,确保安全的对称连贯,验证服务器显示的身份是否与以前的记录(通常记录在 RSA 密钥存储文件中)匹配,并提供所需的用户凭据来开始 SSH 连贯。 服务器(主机)身份验证 SSH 协定内置于 Unix 和 Linux 服务器中,以实现零碎之间的平安连贯。该连贯由申请连贯到 SSH 服务器的客户端建设。SSH 客户端启动连贯建设过程,并应用公共密钥加密技术来验证 SSH 服务器的身份。在设置阶段之后,SSH 协定应用弱小的对称加密和哈希算法来确保客户端和服务器之间替换数据的私密性和完整性。 ...

December 16, 2020 · 1 min · jiezi

关于又拍云:白话科普系列网站靠什么提升加载速度

随着生活节奏的一直放慢,工夫变得极其贵重,期待页面加载的工夫也随之缩短。这样一来如何留住客户变成了一项重要的考验。而缩小页面加载等待时间,放慢加载速度,就成了进步用户参与度S,晋升业务可靠性的无效策略。 依据 Google 的一项钻研,有 40% 的人放弃了某网站,是因为该网站的加载工夫超过 3 秒,而页面加载工夫减少1 秒,转化就相应缩小了 7%。可见,互联网中的每一秒都至关重要。 那么如何晋升网站速度呢?能够通过网页“压缩”也就缩小网页体积来实现。至于要如何能力压缩网站,咱们须要先理解两个算法, Gzip 和 Brotli 压缩算法。 Gzip 压缩算法Gzip 基于 DEFLATE 算法,它是 LZ77 和霍夫曼编码的组合,最早用于 UNIX 零碎的文件压缩。HTTP 协定上的 Gzip 编码是一种用来改良 Web 应用程序性能的技术,它要求 Web 服务器和客户端(浏览器)必须独特反对 Gzip。而当下支流的浏览器,包含 IE6、IE7、IE8、IE9、FireFox、Google Chrome、Opera 等都曾经开始反对 Gzip 压缩。可见 Gzip 的应用曾经成为了互联网倒退的必然趋势。 作为 Internet 上应用十分广泛的一种数据压缩格局,Gzip 对个别纯文本内容可压缩到原大小的 40%,这大大减少了网站文件中反复代码和空白的数量。它还能够提供 9 个压缩级别,能够不便使用者微调压缩量和压缩工夫。 在用于进步 Web 应用程序的性能这一点上,Gzip 压缩始终是最受欢迎的。直到另一种压缩算法 Brotli 的呈现,它成为了 Gzip 最大的竞争对手。 Brotli 压缩算法Brotli 是 Google 在 2015 年 9 月推出的一种压缩算法,Google 认为互联网用户的工夫是贵重的,他们的工夫不应该耗费在漫长的网页加载中,因而与其余压缩算法相比,Brotli 有着更高的压缩效率。它通过变种的 LZ77 算法、Huffman 编码以及二阶文本建模等形式进行数据压缩。 ...

December 9, 2020 · 2 min · jiezi

关于又拍云:统一接入层架构的演进

本文系云原生利用最佳实际杭州站流动演讲稿整顿。杭州站流动邀请了 Apache APISIX 我的项目 VP 温铭、又拍云平台开发部高级工程师莫红波、蚂蚁金服技术专家王发康、有赞中间件开发工程师张超,分享云原生落地利用的教训心得,以下是张超《有赞对立接入层架构演进》分享内容。 张超,有赞中间件团队开发工程师,网关、Service Mesh 畛域的专家,热衷技术,对 Golang、Nginx、Ruby 语言等有深刻的钻研。 大家好,我是来自有赞的张超,有赞中间件团队的开发工程师。明天给大家带来有赞接入层架构演进的分享。 先简略给大家介绍下有赞接入层,外部名为 YZ7,从概念来讲它与网关比拟靠近,是基于 OpenResty 和 Nginx 来实现的,次要是有规范 C 模块,自研发的 Nginx C 模块,以及基于 lua 实现的模块。它作为有赞业务流量的公网入口,提供 Traffic Shaping,包含限流、平安相干的像 WAF、申请路由等性能,申请路由蕴含规范的蓝绿公布、灰色公布性能,负载平衡等方面的性能。明天的分享,次要是从上面从三个方面来深刻解析: 旧版接入层架构痛点新架构设计剖析新架构设计总结旧版接入层架构痛点首先从旧版接入层架构的相干痛点登程,开始新架构的设计剖析。 上图是旧版接入层架构的纵向切面,计划是早几年之前的。过后风行用 redis 做配置同步,它人造的主从同步协定的确非常适合。其中黄色箭头线是配置同步,数据从 redis master 同步到每个实例上的 redis slave,而后本级的 YZ7 会去轮巡本级的 redis,并把数据读到本身内存中。 为什么有右下方的 k8ssync controller 呢?因为前几年 K8S 逐步的成为热门,很多利用都开始走向容器化的路线。 YZ7 是基于 OpenResty 来开发的,整个技术栈都是基于 lua,在 K8S 的生态里 lua 并不在其中。如果想要 watch K8S 外面的服务,须要实时晓得它有哪些 endpoints。尽管通过 lua 也能够实现,然而须要重头做一个相似像 K8S 规范的 client-go 库,这就得失相当了。因而会利用一个应用 GoLang 编写的 k8sssync controller,它负责向 K8S 获取它所感兴趣的后端服务 endpoints 数据,再通过 YZ7 配置的 API,再次写入到 redis master,最初由 redis master 散发到每个 YZ7 的实例上。 ...

November 25, 2020 · 3 min · jiezi

关于又拍云:这些表情包你有吗来-Battle-啊

“能用表情包解决的问题,绝不多说一个字。” “当不晓得回复什么的时候,甩过来一个表情包就好了。” 放眼望去,谁的 QQ/微信 珍藏中没有几页代表性的表情包,那真的是 out 了。在当代网络社交生活中,当呈现“只可意会不可言传”的情绪和外延时,表情包大略是最合适的载体。 常见的表情包有动态图片和动静图片两种。 动态图片最常见的格局是 jpg/png,动静图片则是 gif。在平时工作生存中,不仅仅表情包,图片在网页设计中也是重中之重。 常见的三种图片格式图片格式品种繁多,咱们日常应用最多的图片文件格式是 jpg、png 和 gif。这些格局因为与目前浏览器的兼容性,客户端的网络速度以及用户的广泛需要而成为最受欢迎的格局。 在理解这三种格局的图片之前,咱们须要先理解一个概念,就是图片压缩。 有损 vs 无损 图片文件格式有可能会对图片的文件大小进行不同水平的压缩,图片的压缩分为有损压缩和无损压缩两种。 有损压缩:指在压缩文件大小的过程中,损失了一部分图片的信息,也即升高了图片的品质,并且这种损失是不可逆的,咱们不可能从有一个有损压缩过的图片中复原出原来的图片。无损压缩:只在压缩文件大小的过程中,图片的品质没有任何损耗。咱们任何时候都能够从无损压缩过的图片中复原出原来的信息。在理解这个简略的状况后,咱们具体来看看这三种图片格式的区别和特点。 JPEG 格局 JPEG(Joint Photographic Experts Group)即联结图像专家组,是用于间断色调动态图像压缩的一种规范,文件后缀名为 .jpg 或 .jpeg,是最罕用的图像文件格式。 JPEG 图片格式的设计指标,是在不影响人类可分辨的图片品质的前提下,尽可能的压缩文件大小。这意味着 JPEG 去掉了一部分图片的原始信息,也就是进行了有损压缩。JPEG 的图片的长处,是采纳了间接色,得益于更丰盛的色调,JPEG 非常适合用来存储照片,用来表白更活泼的图像成果,比方色彩突变。 然而,JPEG 不适宜用来存储企业 Logo、线框类的图。因为有损压缩会导致图片含糊,而间接色的选用,又会导致图片文件体积更大。 PNG 格局 PNG(Portable Network Graphics)即便携式网络图形,是一种采纳无损压缩算法的位图格局,文件后缀名为 .png。PNG 应用从 LZ77 派生的无损数据压缩算法,个别利用于 JAVA 程序、网页中,它的压缩比高,生成文件体积小。 PNG 格局是咱们在数字设计我的项目中最常应用的格局。PNG 通常具备比其余格局更大的文件大小,然而它保留了硬性边缘成果,且能够解决大量色彩。另外 PNG 有个比拟乏味的个性,那就是反对通明背景,这也是大多数网站将 Logo 创立为 PNG 格局的次要起因。 GIF 格局 GIF(Graphics Interchange Format)即图像调换格局,是在 1987 年由 Compu Serve 公司为了填补跨平台图像格式的空白而倒退起来的。家喻户晓,它最大的特点就是“能动”。因而,GIF 通常用于从图像文件创立动画。通过在压缩中合并无损品质,能够无损传输和存储这些文件,并且对图像库的存储影响较小。 ...

November 18, 2020 · 1 min · jiezi

关于又拍云:实战分享从选型到项目落地漫谈-gRPC

什么是 gRPC?gRPC 的几种常见模式 在学习 gRPC 的时候,置信大家对于它的四种模式都有理解,咱们来简略回顾一下: 简略模式(Simple RPC):这种模式最为传统,即客户端发动一次申请,服务端响应一个数据,这和大家平时相熟的 RPC 没有什么大的区别,所以不再具体介绍。服务端数据流模式(Server-side streaming RPC):这种模式是客户端发动一次申请,服务端返回一段间断的数据流。典型的例子是客户端向服务端发送一个股票代码,服务端就把该股票的实时数据源源不断的返回给客户端。如果是应用咱们容器云性能的同学应该会发现,咱们的容器实时日志流就是应用了这个典型模式。客户端数据流模式(Client-side streaming RPC):与服务端数据流模式相同,这次是客户端源源不断地向服务端发送数据流,而在发送完结后,由服务端返回一个响应。典型的例子是物联网终端向服务器报送数据。双向数据流模式(Bidirectional streaming RPC):顾名思义,这是客户端和服务端都能够向对方发送数据流,这个时候单方的数据能够同时相互发送,也就是能够实现实时交互。典型的例子是聊天机器人。接下来咱们通过一个小例子来看看 gRPC 具体的应用流程。 假如咱们有一个聊天机器人,现须要减少一个对外提供服务的接口。具体需要为,接口传入参数是一个人名,返回一段内容是“Hello 人名”的音频。如果这个是让你在不应用 gRPC 的状况下,你会怎么做?大家可能会抉择应用 restful api 来实现这个性能,传入人名,返回音频二进制数据。 那么如果应用 gRPC,咱们须要怎么来设计呢? 第一步,须要定义一个接口文档,也就是 proto 文件。在定义内会定义一个 Service,接下来再在 Service 里定义一个 SayHello 的办法。上面定义传入参数,输出 name 返回 message,须要留神 message 是 bytes 类型,即返回的格局是二进制数据。对于 Golang 底层对应的是一个 bytes 数据,对于其余语言可能是字节流或二进制。 syntax = "proto3";package helloworld;// The greeting service definition.service Greeter {// Sends a greetingrpc SayHello (HelloRequest) returns (HelloReply) {}}// The request message containing the user's name.message HelloRequest {string name = 1;}// The response message containing the greetingsmessage HelloReply {bytes message = 1;定义实现后 ,下一步就是应用 protoc 命令行工具生成代码。下图左侧是初始化的我的项目,你会发现,有一个独自的目录 protoc,寄存了 hello.proto 这个文件,这个文件就是后面定义好的。 ...

November 12, 2020 · 2 min · jiezi

关于又拍云:白话科普系列最好用的浏览器-Chrome你用了么

市面上的浏览器多种多样,而浏览器的王者——IE 浏览器,它在 2002 年市场份额高达 95.4%。直到后续 Firefox,Safari,Chrome 相继问世才波动了 IE 浏览器的位置,其中 Chrome 在 2008 年一经问世便体现出了不凡的天才,一路乘风破浪所向无敌。 最近,国外统计公司 Statcounter 颁布了寰球浏览器市场份额考察数据。 从下面两张图中能够看出,无论是挪动端还是桌面端,谷歌 Chrome 浏览器都名列第一,大幅当先其余品牌。 为何 Chrome 浏览器会有如此高的市场占比,咱们一起来看下 Chrome 浏览器都有哪些长处。 Chrome 浏览器的长处界面简洁 浏览器的实质是一个展现网络资源的工具,一个简洁的界面会让用户更加专一于内容,而不被浏览器的外观所烦扰。毫无疑问,Chome 在这一点上就战胜了不少对手。 整合了 Google 服务 Chrome 作为 Google 公司开发的浏览器,必定会给本人的产品打打广告,然而 Google 的产品的确品质过硬,咱们能够在 Chrome 上体验到很多优质的 Google 产品,比方在线文档表格编辑器、网页的主动翻译、Gmail 的离线版与桌面揭示等。 弱小的开发者控制台 Chrome 具备功能强大的开发者控制台,能够监控网络带宽,查看源代码并抉择色彩以在线调整设计,还能够进行前端的断点调试。正是因为这弱小的开发者控制台,Chrome 受到了许多开发者的青眼。 丰盛的扩大程序 Chrome 具备大量扩大性能,从简略的广告拦挡到各种小工具的自定义扩大,一应俱全,能够加强浏览器的性能以满足非凡需要。其中大部分的扩大程序都能够在 Chrome 网上利用商店上找到。还能够雇用开发人员来构建本人的应用程序,以改善我的项目的工作流程。 这里简略介绍一个拓展程序:Adblock Plus,常常应用 Chrome 浏览器的小伙伴应该对这个扩大程序十分相熟。 这是一款收费的广告拦截器,性能十分弱小。上面咱们来测试看看。 首先咱们不关上这个插件随便拜访一个网站,能够看到单顶部地位就有3个广告。 此时咱们关上插件再次拜访,很显著的,广告就隐没了,而且右侧的滚动广告栏中也变成了空白,界面一下清新了许多。 Adblock Plus 插件还能够自行设置网站白名单,即对某些网站不做屏蔽广告操作。也能够自行添加或移除过滤列表等。 ...

November 11, 2020 · 1 min · jiezi

关于又拍云:白话科普系列双十一竟然是一场有预谋的DDoS攻击

随著互联网与信息技术的倒退,所有人都在享受互联网带来的舒服和便当。现在,无论是集体社交行为,还是商业活动都早已离不开互联网。 然而,网络空间在发明时机的同时,也带来了威逼。随着企业价值、知名度的进步、官方网站、线上交易平台、使用者登入页面皆为攻击者之首选指标,而最常见的攻打手法就是 DDoS 。DDoS 攻打让许多厂商与企业感到大刀阔斧的同时,还蒙受了微小的损失。而且通过这些年的倒退,DDoS 攻打手法还变得越来越多元且难以防备,它曾经成为不同组织和集体的攻打模式之一,用于网络中的勒索、报复,甚至网络和平。 本篇文章就带大家认识一下常见的 DDoS 攻打手法,以及遇到攻打后要如何进行进攻应变。 什么是 DDoS 攻打?DDoS 攻打全名为 Distributed Denial-of-Service Attack,又称为分布式拒绝服务攻打,是旧时 DoS 攻打(Denial-of-Service Attack,拒绝服务攻打)的扩充版,其目标是以各种攻打手法,让网络系统的性能瘫痪或资源耗尽,迫使网页或服务器中断服务,导致失常的用户无奈应用网页性能和应用服务。 晚期的电脑不如今日发达,只有攻打方电脑性能高于被攻打方,一对一的 DoS 攻打很容易达到目标。现如今很多大型企业具备较强的服务提供能力,所以应酬单个申请的攻打曾经不是问题。 既然一打一行不通了,那就群殴。攻击者会组织很多同伙,同时提出服务申请,直到服务无法访问,这也就是名称中“分布式”的由来。然而,在事实中,个别的攻击者无奈组织各地搭档协同“作战”,所以会应用“僵尸网络”来管制泛滥计算机进行攻打。 僵尸网络感化了恶意软件的计算机,以及其它可联网资源,例如 IoT 设施。这些僵尸主机接管攻击者管制命令,从而构建出一只数量宏大的僵尸主机(Bot)军队,同工夫对同一指标动员特定类型攻打,将被攻击者的网络资源及系统资源耗尽,导致无奈为真正的用户提供服务。这也是名称中“阻止服务”的由来。 因为僵尸主机的数量很大而且散布宽泛,又都是非法的网络设备,因而很难将攻打流量与失常流量离开,其危害水平和进攻难度都很大。 上图是每年双十一淘宝服务器瘫痪的新闻。泛滥用户应用服务造成的流量洪峰,某种角度来说等同于一次大型的 DDoS 攻打。 如何辨认 DDoS 攻打DDoS 攻打最显著的特色就是站点或服务忽然变慢或不可用。然而,理论业务中,因为多种起因(如业务流量的正当激增,例如游戏文件更新)也会造成相似的性能问题,因而通常须要进一步确认。以下是 DDoS 攻打的一些显著迹象: 来自单个 IP 地址或 IP 范畴的可疑拜访;对单个页面或接口的申请数量激增;不寻常的流量模式,例如一天中在凌晨忽然呈现流量顶峰,或某种不合乎业务的流量顶峰(例如,每 10 分钟呈现一次顶峰)DDoS 攻打还有其它更具体的迹象,具体取决于攻打的类型。 DDoS 的攻击方式带宽消耗型攻打 通过传送大量有效、或歹意放大流量的数据申请,梗塞被攻打的服务器带宽,使其达到饱和状态,让失常用户无奈进入,甚至造成网页宕机瘫痪,达到拒绝服务的目标。 像是常见的 UDP 洪水攻打(即发送用户数据报协定的大包或小包)、ICMP 洪水攻打(即发送大量 ICMP 相干报文);生成超过 IP 协定中规定的最大的数据长度,导致系统宕机的死亡之 Ping,皆属于此类。 资源消耗型攻打 有别于带宽消耗型的 DDoS 攻打,资源消耗型攻打是让被攻打方的服务器一直进行重复的有效运作,导致网页资源被耗尽,无奈再响应失常用户的申请,从而达到拒绝服务的目标。 这种类型的典型 DDoS 攻打手法,如 SYN 洪水攻打。咱们都晓得创立 TCP 连贯须要客户端与服务器进行三次交互,也就是常说的“三次握手”。而这个信息通常被保留在服务器连贯表构造中,然而表的大小无限,当超过存储量时,服务器就无奈创立新的 TCP 连贯。 ...

November 11, 2020 · 1 min · jiezi

关于又拍云:白话科普10s-了解-API

作为一名又拍云的技术支持工程师,小拍每天都会接管到很多客户的发问。这其中,有很多客户会问:“小拍,请问云存储上传除了应用控制台的文件治理和 FTP 工具之外,有没有其余的路径进行上传呢?” “有哒,您能够调用 API 接口来进行上传哦。” “请问,什么是 API 接口呢?我要怎么调用呢?” 别着急,这就为您介绍 API 接口。 什么是 API 接口首先,咱们先来看一看 API 接口的定义: API(Application Programming Interface,应用程序编程接口)是一些事后定义的函数,目标是提供应用程序与开发人员基于某软件或硬件得以拜访一组例程的能力,而又无需拜访源码,或了解外部工作机制的细节。 从定义中,咱们先划下重点:函数、 提供应用程序与开发人员、无需拜访源码、例程 。其中,例程是某个零碎对外提供的性能接口或服务的汇合。 看完这个定义是不是感觉本人看了个寂寞,这解释跟不解释没有差异啊?好啦,不要放心,小拍来给大家直接了当的说一说。 API 其实能够了解为是接管要求的信差,通过 API 接口,咱们通知零碎(例程)想要做什么,零碎再把处理结果响应回来。 如果用一个现实生活中的场景来举例说明,那么餐厅的服务员其实就是一个典型的 API 。设想一下你正坐在餐桌前,背后桌子上有一张点菜用的菜单,点好菜后,交由厨房进行解决。但当初少了一个要害的链接点,如何把咱们的单子送到厨房,再把食物送到我的桌上呢? 这就是服务员(API)退场的时候了。服务员就是这个信差,他会传递你的要求或者餐点,把这些信息通知厨房(零碎),厨房就会晓得怎么做,而后把餐品通过服务员端(响应)给你。 当初咱们把这个原理利用到真正的 API 例子上来。 快递单号查问,这大家应该很相熟吧。敌人通过顺丰寄了一箱零食给你,并告知你了快递单号,你就能够在顺丰的官网上,输出快递单号进行查问。顺丰的零碎接管到查问,就会在零碎中查找对应快递的信息,响应给你。 然而,很多时候咱们并不是间接通过快递公司的网站去查问快递信息的。比方说通过淘宝买的衣服,卖家通过顺丰发货,但咱们能够在淘宝上查问到顺丰快递的信息。那么淘宝是怎么获取到寄存在顺丰服务器上的快递数据呢? 没错,这里就是应用了 API 。淘宝能够通过顺丰提供的 API 接口,来获取寄存在顺丰服务器上的快递信息,最初显示在咱们背后。 当初再看上边的定义,是不是感觉好了解一些了呢?API 接口就是事后定义好的函数逻辑,提供给其余零碎申请,而后返回后果的一个货色。 为什么要应用 API 接口在晓得了 API 接口的作用后,应用 API 接口的起因也就高深莫测了。举个例子:你打算开发一个打车软件,须要在页面上展示地图,那你会怎么做呢? 如果说本人来开发地图,开发工夫就会大大缩短,老本也会减少许多。这个时候,其实能够在高德开放平台或者百度地图的开放平台,找到地图 API,购买他们的服务,部署调用相干的 API ,这样就能够疾速在咱们软件中上线地图功能了。 所以,对于软件提供商来说,凋谢 API 并让别的应用程序来调用,造成生态,软件能力施展最大的价值,能力更有生命力,同时他人也看不见代码,不会挫伤商业秘密。 对于利用开发者来说,有了凋谢的 API ,就能够间接调用多家公司做好的性能来做本人的利用,不须要所有的事件都本人操刀,节俭精力。 如何应用 API 接口当初市面上凋谢的 API 接口,个别都是通过 HTTP 申请调用的。例如,一些第三方提供的查问天气的性能,咱们就能够依据第三方提供的 API 地址以及相干的阐明文档,携带上申请参数,在浏览器中间接拜访应用。 ...

November 4, 2020 · 2 min · jiezi

关于又拍云:网页内容无法访问可能是跨域错误

5G 时代的宣传热气腾腾,万物互联的生存沉迷到方方面面,网络资源的拜访成了人们生存中不可或缺的存在。拜访应用的多了也常常会遇到无法访问的状况,这个时候关上 Console 往往会看到上面这种红艳艳一片。 红艳艳的报错信息多种多样。然而图上这个谬误置信大家必定常常见到,其实这就是在开发过程中常常遇到的跨域谬误。那跨域报错到底是怎么产生的呢?又要怎么解决呢? 什么是 CORSCORS,即 Cross-Origin Resource Sharing (跨源资源共享)。当一个资源从与该资源自身所在服务器不同的域、协定或端口申请一个资源时,就会发动一个跨域申请。比方, http://domain-a.com 的 HTML 页面通过 <img> 的 src 申请 http://domain-b.com/image.jpg。因为域名不同,就会触发跨域。这是因为浏览器的同源策略造成,当然,这也是为了避免一些 XSS、CSRF 攻打。目前的许多 HTML 页面都会加载来自不同域下的 CSS 样式表,图像和脚本等资源。因而,解决跨域问题显得尤为重要。 CSRF 攻打: Cross-site request forgery, 跨站申请伪造。是指黑客诱惑用户关上黑客的网站,在黑客的网站中,利用用户的登录状态发动跨站请 CORS 是当初使用率较高的一种网络浏览器技术规范,它为 Web 服务器定义了一种形式,容许网页从不同的域拜访其资源。跨源资源共享规范通过新增一系列 HTTP 头,让服务器能申明那些起源能够通过浏览器拜访该服务器上的资源。此时须要在 Response Header 中减少跨域相干配置,这样就能够使得资源的平安拜访成为可能。 另外,对于那些可能对服务器数据产生副作用的 HTTP 申请办法(除 GET/POST/HEAD 办法),浏览器必须首先通过 OPTIONS 办法发动一个预检申请(preflight),从而获知服务端是否容许该跨域申请。服务器确认容许后,才会发动理论的 HTTP 申请。 # curl -X OPTIONS http://v0.api.upyun.com -v* Trying 58.222.18.54:80...* Connected to v0.api.upyun.com (58.222.18.54) port 80 (#0)> OPTIONS / HTTP/1.1> Host: v0.api.upyun.com> User-Agent: curl/7.72.0> Accept: */*> < HTTP/1.1 200 OK< Server: marco/2.13< Date: Thu, 17 Sep 2020 05:59:03 GMT< Content-Type: application/octet-stream< Transfer-Encoding: chunked< Connection: keep-alive< Access-Control-Allow-Origin: *< Access-Control-Allow-Headers: Authorization, Content-Secret, Content-Length, Content-Type, Content-Md5, X-Date, X-Requested-With, Origin … ...< Access-Control-Allow-Methods: PUT, GET, POST, HEAD, OPTIONS, DELETE< Access-Control-Expose-Headers: X-Upyun-Multi-Uuid, X-Upyun-Remain-Size, X-Upyun-Next-Part-Id, X-Upyun-Next-Part-Size< * Connection #0 to host v0.api.upyun.com left intacAccess-Control-Allow-Origin:容许的域Access-Control-Allow-Methods:容许的跨域的申请办法Access-Control-Allow-Headers:在响应预检申请的时候应用,用来指明在理论的申请中,能够应用哪些自定义 HTTP 申请头Access-Control-Expose-Headers:设置浏览器容许拜访的服务器的头信息的白名单Access-Control-Max-Age:这次预申请的后果的有效期是多久,单位为秒如何配置 CORS目前所有的支流浏览器都已根本提供对跨域资源共享的反对,挪动浏览器也简直全副反对,当然咱们的老朋友 IE 浏览器有一点特殊要求,不能低于 IE10。 ...

October 14, 2020 · 2 min · jiezi

关于又拍云:秋天的第一份干货-I-Referer-防盗链为什么少了个字母-R

Referer 为什么叫 Referer?它代表什么意思?在诸多防盗链竞争中它有什么劣势? 明天,在聊 Referer 防盗链之前,先来聊聊咱们在现实生活中经常碰到的推荐人(Referrer)信息。 咱们在购买服务或退出会员时,有些会问你:“你从哪里晓得了咱们?” Referrer 和 Referer下面所说的就是所谓的推荐人(Referrer)信息。 对于公司来说,这是很有用的信息,企业依据这些信息,能够剖析理解到数据由来,以此来调整推广渠道。 大部分用户可能都不会间接拜访到某个生疏的网站,个别是通过关键字搜寻再进去。那么能够去哪里查找到相干信息,服务器也想晓得你的“推荐人”是谁?所以 HTTP 协定在申请头(Request-Header)里设计了 Referer 字段,来给出 “推荐人” 的 URL 地址。 Referer 是一个可选申请头,用于标识起源地址(URL) 来理解拜访从何而来。Referer 正确拼写应该是「Referrer」,只是在写入规范时,人们没有发现短少一个 ‘r’ 字符,前面想改曾经来不及。所以就一误再误,就始终沿用到明天。 Referer 头因为能够指明起源地址,所以人们能够依据这些数据进行剖析。比方,对于营销,市场,推广人员来说,通过 Referer 字段,能理解拜访都是通过哪些搜索引擎“推荐人”引流而来,以此根据,对各大搜索引擎进行广告投放。 浏览器在拜访资源时,会依据不同的场景,来带上不同的 Referer 参数值来进行申请,所以咱们能够依据信息对申请进行过滤判断——Referer 防盗链, 设定对应规定,让合乎援用规定地址能够拜访,不合乎规定通过 403 进行权限管制。 Referer 防盗链实用小技巧在又拍云,咱们能够依据 Referer 黑白名单,是否容许 Referer 为空等配置规定对拜访进行权限配置。 如果只想指定网页内(*upyun.com)援用资源,其它域名回绝盗链拜访。可设置 Referer 白名单并且不容许 Referer 为空拜访形式(当 Referer 不能为空时示意,回绝浏览器间接指定 URL 资源,必须通过 Referer 头援用进行拜访,不然也会被限度拜访),以防止其余域名进行资源盗链。 在此,咱们应用 HTTP 客户端命令行工具 HTTPie[https://httpie.org/](工具反对语言高亮,能够更加清晰表明拜访形式) 来进行测试。 当未指定 Referer 值, Referer 为空时,无奈通过 Referer 访问控制,拜访响应 403 回绝拜访。 ...

September 29, 2020 · 1 min · jiezi

关于又拍云:荔枝微课基础架构的演进与实践

本文整顿自又拍云举办的微服务架构设计与实际|Open Talk 线上公开课,荔枝微课基础架构负责人王诚强做的题为《荔枝微课基础架构的演进与实际 》 的分享。本次流动还邀请了Apache APISIX 和又拍云等企业的技术专家分享 API、Service Mesh 等相干实战经验。 近几年,云原生技术和理念失去宽泛承受,泛滥企业开始摸索云原生架构转型落地。本文将会具体讲述荔枝微课是如何做云原生下的微服务基础架构设计。 王诚强,荔枝微课基础架构负责人。次要从事根底技术钻研开发、基于云原生的基础架构设计以及基础架构团队的治理建设。致力于云原生理念下,以微服务搭建中台。 云原生:将来架构的演变方向云原生(Cloud Native)是将来架构的演变方向,蕴含了一组利用模式,用于帮忙企业疾速、继续、牢靠、规模化地交付业务软件,由微服务架构、DevOps 和以容器为代表的麻利基础架构组成,其中蕴含很多有利于咱们做更多扩大继续演进的理念。我认为云原生是一种文化、一种理念, 也是一种生态,既包含技术(微服务、麻利基础设施 K8S),也包含治理(DevOps、继续交付), 范畴极其宽泛,总得来讲是一种围绕云计算时代的架构。 虽说呈现得绝对比晚期的 Spring Cloud 要晚一些,但也是十分先进的,像谷歌最晚期奉献进去的 K8S,之后各大公司也都是在这个开源我的项目上一直去迭代更新,因而它的生态很欠缺。下图中残缺的展现了云原生的整个生态,包含了很多不同的环节,比方数据库,还有音讯流,网关、服务网格等等,这里就不再一一列举了,大家有趣味能够去深刻理解。 云原生的演进历程 2001 年虚拟机进入到了一个可商用的阶段, 2013 年 Docker 公布后会发现很多开源我的项目、集体开发者都开始用 Docker 去公布本人的利用;2015 年 CNCF(云原生计算基金会)成立,2018 年 Kubernetes 从 CNCF 毕业,到了 2019 年咱们会发现它已是大家时常议论的热点。云原生开始大热,因为它曾经造成了一个比拟成熟的体系,各大云厂商也开始把本人的云服务、容器服务等开始推向市场,这时大家也不必从零开始自建,这也通知咱们要去把握技术倒退的趋势,懂得借势,而不是什么都是从零开始。 荔枝微课架构的演进历程荔枝微课架构的演进历程,这里将它分为了五个阶段,如下图所示,咱们具体开展来说。 上古期间:单体架构,业务优先 所谓的上古期间能够了解成公司的开创期间,这时优先以业务为主,如果连业务都没起来又谈何去做更多的技术倒退,这个阶段可能应用单体架构更容易做到迭代。不过它的长处是业务起步快,一个人人多势众就能够把整个我的项目给建起来了,可能就那么一两个服务,它的部署保护也要简略很多,目标就是先把业务做起来。 单体架构的毛病也很显著,一个单体我的项目性能太多,新人就不易上手,我的项目越做越简单,耦合度越来越高,会给前期新进人员带来很多难题,咱们私下称之为“死伤”,不利于扩大新性能。其中最麻烦的是前面的新人要去接手并发展新性能,如果代码品质有问题,可能一个部分 BUG 就会影响到整体。而且有很多曾经实现的性能,会重复使用到新的业务中,比方领取、账号等这些同样的性能,难道又要从新做一遍吗? 不过上古期间的整体架构也不肯定只有一个服务器、一个服务,也是有一些伸缩性的。上图中的Users、Threads、Posts 形成了整个单体构造的利用,它是可复制的,比方在负载平衡上面挂多个。另外它是无状态的,所谓无状态是指不会因为多一台服务伸缩进去而导致服务不可用,其中须要特地留神的是一些须要设置白名单的,比方 IP 白名单,多一台机器,可能 IP 就对不上了,会导致其余的环节报错。不过这能够通过一些软件设计的办法,比方代理、生产生产这种模式去解决。 初期:初步微服务,解耦化 初期阶段单体构造会变得越来越简单,保护起来也会越来越难。设想一下,一个零碎外面可能有几十甚至上百个不同的模块,不同的文件夹,一个新人看完这些代码都须要花很多的工夫,又谈何理解整体并做保护呢?甚至整个要跑起来所要理解的常识也很多。因而前面就须要会做解耦化,也就是咱们所说的初步微服务化。不过初期还是由业务来推动的,这个时候的指标还是拓展不同的我的项目,解耦的话也不会一步就到容器化。该阶段须要先对服务做松耦合,不便新人进来后去保护代码,另外就是做很多像监控这类兜底的能力。 说到服务做松耦合(解耦),因为晚期没有很好的兼顾,很多利用是解耦了,但它的技术栈多而杂,甚至连部署形式也都不一样,如果是原来保护我的项目的开发人员走了,由你来接手,它的语言、框架、部署形式都不同,保护工作会很难进行。拆分后也会面临到服务关系问题,服务少的时候还能明确服务之间的调用关系,当服务多了后,调用关系就会比拟乱,特地是为了不便调用,疾速上线将配置跟代码混合一起的状况,这样拆分后反而会带来更多麻烦。因而上古期间以业务为主,须要掂量一下是否拆分,业务有没有这个需要,不能因为做拆分而影响业务,另一个是如果人员不够也不适宜去做拆分,保护起来会更麻烦。 整体式架构拆分如上图所示,这里写到是 Container Ports,与以前相比更理想化了一些,须要先进行容器化,拆分之后将 Users 服务、Threads 服务、Posts 服务别离对应不同的 API 入口,别离去扩大会更利于去保护。比方负责 Posts 开发的,就只需专一于这一块。 ...

September 16, 2020 · 1 min · jiezi

关于又拍云:如何制作出让女朋友满意的大片

还在被女朋友厌弃摄影技术吗?还在困惑怎么能力拍出让人称心的大片么?你须要这篇文章 自从上次二狗子把美美的向日葵照片发给美美的女神婷婷之后,婷婷始终对二狗子颇有好感,毕竟嘴上对本人好的人很多,然而像二狗子口头派的人却不多。二狗子也察觉到了婷婷不经意间流露出的好感,为了能和婷婷有进一步的倒退,也为了有更多话题,二狗子钻研起了摄影摄像的一些常识。 八月了,杭州的梅雨季曾经过了,蓝天白云,美景良辰,二狗子想抓住机会邀请婷婷去西湖玩耍。没有一技之长傍身怎么敢邀请女神出游呢?二狗子为此做了短缺的筹备,“如何制作出让女朋友称心的大片?”。 Excuse me?女朋友? “好吧,当前会是的!”二狗子心想,二狗子一边想着,一边开始钻研起了相干常识。 通过几天的潜心研究,二狗子总结出了一套为女神拍摄大片的完满教程: 后期构图切换到视频模式后不要急着开始拍,这是导致画面难看的一大起因。要不就是角度没选好,要不就是画面凌乱主体不突出。所以要慢慢来,先思考主体物是什么,要从什么角度拍它,要把它居于画面的什么地位,而后再按下录像键开始拍摄。 找出难看的角度抉择难看的角度,能够充沛展示场景的漂亮和人物的身材。角度选好后,会把一些不称心的小毛病奇妙地覆盖过来。抉择角度不能刻意,感觉看着难受就能够了,这样拍出的视频更天然。 光线暖暖的光线会给人一种亲和感和舒适感,同时也能够将人物或者风物的不足之处,因为光线亮堂的缘故被美妙掉。光线也能够提亮整个场景的明艳度,显得更加阳光踊跃。另外也不要让画面太暗或太亮,这两种状况都会令人看不清画面的细节。 手要稳这对于拍视频来说尤为重要。如果拿手机的手在抖,拍进去的画面就晃来晃去,让人看着好受。一旦画面安稳,你的作品就离怀才不遇更近一步了。能够给手找个支撑物固定一下,如果身边没有适合的撑持,能够张开双腿站稳,将手臂贴在胸前,这样比手全往外伸出去要稳固许多。 教程曾经get,二狗子战战兢兢地去邀请婷婷,原以为婷婷会犹豫或者回绝。出其不意,女神婷婷痛快地许可了邀约。二狗子跃跃欲试,蠢蠢欲动,一边查找哪里风光更柔美,一边想着当天要配什么衣服、发型才够帅。 不过邻近邀约的前一天,他忽然想到了一个问题: “万一拍视频的时候太紧张手一抖,或者角度没选好,把 1 米 7 的婷婷拍成了 1 米 5 怎么办?必定要解决一下能力发给婷婷呀。” “视频解决,emmm … ”,二狗子眼前一亮,之前应用了又拍云的图片解决,那视频解决必定也有的呀。他关上了又拍云的产品文档,找到了“云解决”。 “音视频解决,Perfect!又拍云几乎是哆啦 A 梦的百宝箱,要什么它都有。转码、加水印、剪辑、截图 … 妈妈再也不必放心我解决视频啦!” 理解视频的一些概念二狗子首先点开了“视频转码”的性能,发现转码的罕用参数里包含了很多参数,每个字都意识,合到一起就看不懂了。只有个别参数有所耳闻,“看来解决视频之前还须要学习一下视频的一些概念,奇怪的常识又要减少啦!” 视频码率(比特率) 视频码率是指数据传输时单位工夫内传送的数据位数。个别咱们用的单位是 kbps ,即千位每秒。艰深一点的了解就是取样率,单位工夫内取样率越大,精度就越高,解决进去的文件就越靠近原始文件。 视频码率是掂量视频文件大小的要害指标。码率大小和视频品质成正比,高码率能够进步视频品质,而低码率会导致视频品质较差。然而,码率超过肯定数值,对图像的品质没有多大影响,应用极高的比特率只会节约带宽。 码率的根本算法是:码率(kbps)=文件大小(KB)*8/工夫(秒) 举例: 例如视频文件的容量为 3.446 G,视频长度 100 分钟(6000 秒),计算结果为:码率约等于 4818 kbps(3.446*1024*1024*8/6000=4817.857)。 视频分辨率 平时咱们观看视频,常常会依据本人的网络状况来调整视频的晦涩度,个别视频平台都会有“晦涩(SD)”“标清(LD)”“高清(HD)”“1080p”“4K/8K”等选项,视频画面清晰度会有很大的差异,这个指的就是视频分辨率。 视频分辨率是指能够在每个维度上显示的不同像素的数量。通常援用为“宽度×高度”,例如:“ 1024×768”。其中,1024 示意宽度,而 768 示意能够解析像素的高度。咱们通常看到的分辨率(360p,480p,720p 或 1080p)则代表视频从上到下的水平线数。因而,一个 480p 视频由 480 条线组成,每条线重叠在一起,每行宽 852 像素。也就是说,480p 视频的分辨率为 852×480 像素。 ...

September 9, 2020 · 1 min · jiezi

关于又拍云:HTTP3-来了你了解它么

作为咱们网上冲浪最为常见,也常常被人漠视的 HTTP 曾经更新换代到了 HTTP/3。本文简单明了的带你意识 HTTP/3 的作用。 最近二狗子看到本人存储女神婷婷照片所用的云服务商——又拍云推出了 HTTP/3 尝鲜性能。作为喜好学习的二狗子同学既惊喜又好奇,他对 HTTPS、HTTP/2 十分相熟,然而对于 HTTP/3 却是少了一些理解。 “HTTP/2 都还没遍及,没想到又拍云居然连 HTTP/3 性能都上了,真不愧是业界良心,果然他们常说的技术气氛不只是说说的。看样子这段时间本人不够勤快,是时候去学习下 HTTP/3 相干常识了。”二狗子一边心里想着,一边就开始找材料学习了。 HTTP/3 是什么?要深刻理解 HTTP/3,那首先要晓得什么是 HTTP/3。 如上图所示,HTTP/3 是基于 QUIC 的协定。而 QUIC 协定是 Google 提出的一套开源协定,它基于 UDP 来实现,间接竞争对手是 TCP 协定。 另外,要聊 HTTP/3,HTTP 的倒退历程是怎么也绕不过来的,而且能够讲很久。 如果想要具体理解 HTTP 的前世今生与倒退历程,能够查看之前的内容《当我谈 HTTP 时,我谈些什么》。 HTTP/3 的长处及有余明天咱们在这里简略说一下 HTTP/3 相比拟 HTTP/2 提高的那些点。 回归正题,相比 HTTP/2 而言 HTTP/3 有以下几点晋升: HTTP/3 应用 stream 进一步扩大了 HTTP/2 的多路复用。在 HTTP/3 模式下,个别传输多少个文件就会产生对应数量的 stream。当这些文件中的其中一个产生丢包时,你只须要重传丢包文件的对应 stream 即可。HTTP/3 不再是基于 TCP 建设的,而是通过 UDP 建设,在用户空间保障传输的可靠性,相比 TCP,UDP 之上的 QUIC 协定进步了连贯建设的速度,升高了提早。通过引入 Connection ID,使得 HTTP/3 反对连贯迁徙以及 NAT 的重绑定。HTTP/3 含有一个包含验证、加密、数据及负载的 built-in 的 TLS 平安机制。拥塞管制。TCP 是在内核区实现的,而 HTTP/3 将拥塞管制移出了内核,通过用户空间来实现。这样做的益处就是不再须要期待内核更新能够实现很不便的进行疾速迭代。头部压缩。HTTP/2 应用的 HPACK,HTTP/3 更换成了兼容 HPACK 的 QPACK 压缩计划。QPACK 优化了对乱序发送的反对,也优化了压缩率。没有哪项技术是白璧无瑕的,更不用说是还在倒退中的 HTTP/3 了。 ...

August 27, 2020 · 2 min · jiezi

关于又拍云:看视频常见的-720p1080p4k这些分辨率到底包含了什么

从晚期的420p,到起初的720p,到当初的非1080p不看。视频的清晰度飞快晋升,然而在看到色调越来越丰盛清晰度越来越高的画面时,你有关注过他们的到底是怎么做到的么?咱们一起来理解一下吧。 想必大家在日常生活中都会看到或听到“分辨率”这个词,比方在视频网站会有几个分辨率选项供咱们抉择。 咱们都晓得选不同的分辨率会带来不同的清晰度,然而他们为什么要叫这个名字,720p、1080p 这些分辨率中到底蕴含了什么呢?可能有不少小伙伴不甚了解,明天咱们就来一起学习下吧。 不同分辨率之间的区别及含意不同的分辨率之间具体有什么区别呢?咱们上面就以 720p、1080p 为例进行阐明。 咱们常说的 1080 和 720 其实是指垂直像素数,分辨率除去垂直像素,还须要思考到程度像素数。依照 16:9 (宽 : 高) 的比例计算,720p 的程度像素数为 720 ÷ 9 × 16 = 1280,总计像素为921600像素即大概为 92 万像素。1080p 具备 1920 个程度像素,总计2073600像素即约 200 万像素,是 720p 的两倍多。 而像素越多视频就越清晰,所以 1080p 比 720p 的视频更加清晰。 曾经解释了 720 和 1080 这两个数字的含意,那前面跟着的 p 又是指什么呢?甚至还有些网站的分辨率显示是 720i 和 1080i,这个 i 又指的是什么?同样都是1080,1080i 和 1080p 哪个会更清晰? 其实 i 和 p 是指扫描形式,i 示意隔行扫描,p 则示意逐行扫描,以 1080 的视频举例: 1080i:1920 x 1080 分辨率。隔行扫描模式下的高清图像是隔行显示的。每一个奇数行图像都在每一偶数行图像前面显示进去。比方将 60 帧分成两局部,奇数帧只扫描 1,3,5,7,9… 行,偶数帧只扫描 2,4,6,8,10… 行。实践上人眼是觉察不进去画面不间断,反而是因为视觉残留,能主动将两帧叠加在一起。1080p:1920x1080 分辨率。和 1080i 的区别就在于 1080p 不是隔行扫描,是逐行扫描。每一线都同时体现在画面上,因而比隔行扫描电视更加的平滑。咱们能够从下图看到各种分辨率的差异: ...

August 26, 2020 · 1 min · jiezi

关于又拍云:大侠稍等URL-中为何出现奇怪的字符

为什么中文名称的图片关上后网址是一串乱码?为什么好好的短网址复制粘贴就变长了一大长串?罪魁祸首竟然是…… 杭州终于出梅了!二狗子看到气象台公布的音讯,开心的不得了。杭州的雨从五月底始终下,每天除了雨还是雨,天空都是灰蒙蒙的,都快把人搞抑郁了。出梅了,天晴了,二狗子的心也随着蓝天上的白云浮荡进来了。 共事小峰峰通知二狗子,公司后边的皇后公园,向日葵开的正好,一大片一大片的绵延进来,阳光下金灿灿的,可难看了。“要不要一起去看看?你拍点照片给婷婷呗~” 二狗子一想起女神婷婷很喜爱向日葵,拍点漂亮的照片,能看到婷婷甜甜的笑,就急不可待地拉着小峰峰往公园跑。 二狗子拍了好多照片,精挑细选了好几张,上传到本人的图片网站了。他用浏览器关上图片看了看,没有问题,十分完满,就复制了图片地址发给婷婷。 二狗子有点难堪,明明在浏览器中是失常显示的 URL 地址,怎么复制进去就变成一堆奇怪的字符了呢? 二狗子百思不得其解,得,还是问一下本人的存储服务商——无所不能的又拍云吧。 客服乔巴接待了二狗子,并通知了二狗子这个问题的由来。 URL - 网络资源定位符通过互联网来拜访网络中资源的时候,最常见就是通过浏览器输出资源的 URL 地址来进行拜访。 URL(Uniform Resource Locator),是互联网中的一个外围概念,官网名称叫做对立资源定位符。简略的来说,URL 就是一个由网站开发者给资源在互联网上调配的地址。一般来说,每个无效的 URL 都指向独自的一个资源,这个资源能够是HTML 页面、CSS 文档,又或者是一幅图像等。 一个 URL 由不同的局部组成,其中一些是必须的,而另一些是可选的。上面咱们来看下 URL 的具体组成部分: 上图就是残缺的 URL 构造展现。很多时候其中的一些局部是用不到的,例如 user information。作为参考,咱们能够来看一下又拍云存储的 URL 地址。 https://www.upyun.com/product... https:// ,申请协定(scheme),指定了浏览器须要应用何种协定来与指标服务器进行通信。常见的协定有 HTTP 和 HTTPS。www.upyun.com,域名(host),表明申请的资源所在的服务器地址。/products/file-storage ,资源门路地址(path),服务器通过门路来确认拜访资源在服务器上的哪个地位。个别常见的 URL 地址由这三个局部组成,其余的局部依据开发的须要,能够进行自定义。 理解 URL 的概念后,就晓得二狗子的图片链接 http://fileupload-upyun.test.... 的由来了。通过这个地址,婷婷能够拜访到二狗子服务器上拍摄的向日葵图片。然而,为什么二狗子复制了浏览器地址栏中的地址,发送给婷婷的时候,URL 却变成了 http://fileupload-upyun.test.... 了呢? 奇怪的字符 - URL 编码咱们能够看到,二狗子发给婷婷的链接,扭转了的局部属于 URL 的 path 局部,而且,英文局部其实没有改变,只有中文的局部被转成 %XX 的这种编码格局了。 ...

August 13, 2020 · 2 min · jiezi

关于又拍云:QUIC协议详解之Initial包的处理

从服务器发动申请开始追踪,细说数据包在 QUIC 协定中经验的每一步。大量实例代码展现,扼要易懂理解 QUIC。 前言本文介绍了在 QUIC 服务器在收到 QUIC 客户端发动的第一个 UDP 申请— Initial 数据包的剖析、解决和解密过程,波及Initial数据包的格局,数据包头部爱护的去除, Packet Number 的计算,负载数据的解密,client hello 的解析,等等。本文的 C 实现采纳 OpenSSL,并基于 IETFQUIC Draft-27。 术语PacketNumber :数据包序号 Initial Packet:初始数据包 Variable-length Integer Encode:可变长度整型编码 HMAC:Hash-based messageauthencation code,基于 Hash 的验证信息码 HKDF: HMAC-based Extract-and-Expand KeyDerivation Function,基于 HMAC 的提取扩大密钥衍生函数 AEAD: authenticated encryption withassociated data, 带有关联数据的认证加密 ECB: Electronic codebook,电子密码本 GCM: Galois/Counter Mode,伽罗瓦/计数器模式 IV: InitialVector, 初始化向量 基本概念介绍 Initial 数据包的构造 Initial 包是长头部构造的数据包,构造如图 3.1 所示,在 CRYPTO 帧前面须要跟上 PADDING 帧,这是 QUIC 协定预防 UDP 攻打的伎俩之一。个别状况下,CRYPTO 帧太短了(的确也有比拟长“一锅炖不下”的状况,可参阅 QTS-TLS 4.3节),服务端为了响应 CRYPTO, 必须发送数据长度大得多的握手包(Handshake Packet),这样就会造成所谓的反射攻打。 ...

August 12, 2020 · 8 min · jiezi

关于又拍云:又拍云网关速率限制实践

速率限度 (Rate Limit) 通过限度调用 API 的频率避免 API 适度应用,爱护 API 免受意外或歹意的应用,在诸多业务场景中失去广泛应用。日前,又拍云零碎开发工程师陈卓受邀在 Open Talk 公开课上作了题为《又拍云网关速率限度实际》的分享,具体解读以后罕用的算法以及基于网关 nginx/openresty 的实现和配置细节。以下是直播分享内容整顿,查看视频请点击浏览原文。 网关速率限度是一种进攻服务性措施,公共服务须要借其爱护本人免受适度应用,应用速率限度次要有三个益处: 晋升用户体验:用户在应用公共服务时总会面临一些资源加强和共享的问题,例如 CPU,当一个用户不论是无意或无心地适度应用 API 时,势必会对其余的用户造成一些影响。更加平安:咱们的服务、CPU、内存其实都是有肯定的限度,适度拜访势必会影响到服务的稳定性。如果有四个服务,每个服务能承载 100 个申请,当其中一个服务超过 100 个申请时就可能会宕机,其它三个服务在接管到超过 100 个服务申请时,也会接着间断宕机,这会造成服务不可用。缩小开销:当初很多服务都是放到私有云上,内存、CPU 和流量都是有老本的,有一些按量计费,应用多少花多少钱,这种状况会产生一些不必要的开销。RateLimit 的几种算法首先介绍四种速率限度的算法,别离是漏桶(Leaky Bucket)、令牌桶(Token Bucket)、固定窗口(Fixed Windows)、滑动窗口(Sliding Windows),很多限度措施都是基于这些算法进行的。漏桶和令牌桶尽管直观了解看似不太一样,然而在底层实现中这两种算法十分类似,达到的成果差不多。固定窗口和滑动窗口属于另外一类,滑动窗口是基于固定窗口做的。 漏桶(Leaky Bucket) 如上图所示,用户申请都被放进桶里,当桶满了当前,申请会被回绝掉。桶的底部有一个孔,申请会以肯定的速率被放过,比如说当初是限度每分钟 10 个申请,意味着每隔 6 秒钟就会有一个申请通过。漏桶算法的特点在于其通过申请的速率是恒定的,能够将流量整形的十分平均,即使同时有 100 个申请也不会一次性通过,而是按肯定距离缓缓放行,这对后端服务迎接突发流量十分敌对。 令牌桶(Token Bucket) 令牌桶,顾名思义桶里放的是一些令牌,这些令牌会按肯定的速率往桶里放,如果每分钟限度 10 个申请,那么每分钟就往桶里放 10 个令牌,申请进来的时候须要先在令牌桶里拿令牌,拿到令牌则申请被放行,桶为空拿不到则意味着该申请被回绝掉。 须要阐明的是,令牌的个数是按肯定的速率投放的,每分钟放 10 个令牌,那么能通过的申请必定也是每分钟 10 个。如果匀速放令牌, 6 秒钟放一个令牌,最终后果和每分钟放 10 个令牌是一样的。 漏桶(Leaky Bucket)算法实现 因为令牌桶跟漏桶的实现成果差不多,这里次要细讲漏桶的算法和实现。先假如速率限度是每分钟 3 个申请,即每 20 秒钟放行一个申请。如图所示,假如第 10 秒进来第一个申请,因为之前始终都没有申请进入,所以该申请被容许通过。记录下最初一次的拜访工夫,即为本次申请通过工夫点。 ...

August 5, 2020 · 3 min · jiezi

关于又拍云:视频网站节约流量的小妙招

当初社会大家不是在看视频就是在筹备去看视频的路上,那些花样百出的视频播放、敞开时你有留神过下方那个小小的进度条么?在进度条里其实暗藏着大大的明码,你晓得是什么么? 2020 年初,一场从天而降的疫情突破了咱们以往失常的生存,也阻挡了大家出行的脚步。抗击疫情,最重要的防护措施就是缩小外出,做好隔离,大家每天待在家里,流动范畴仅限“卧室 - 客厅 - 卫生间”,因为鸿鹄之志呈现了许多“宅家趣事”。 比方某“土豪”网友在家里钓鱼,不晓得远道而来的热带鱼会不会“愿者上钩” … ... 也有某网友很有“商业头脑”的自制套圈游戏,放在当初肯定很适宜摆摊 … … 俗话说有急躁的人肯定能成就一番小事,这不就有网友把整袋果干数了一遍,揭开了哪种干果最便宜了的机密…… 宽广网友集思广益发明了很多宅家趣事的同时,肯定也有很多的小伙伴一朝无暇疯狂“追剧、看视频”补齐剧情和娱乐进度。特地最近,各大综艺纷纷官宣首播工夫,各视频平台也上线了新剧,好像后宫三千佳丽静待垂怜,让人乐不思蜀。 工夫无限,而抉择却越来越多。为了用户可能在无限工夫内看更多的内容,各视频平台推出了各种“花色节约工夫老本”的性能,比方倍速、只看 TA 等等。对于一些剧情拖沓的电视,或者想快进又舍不得的人,这些性能几乎好用到爆。 那大家在用这些好用的性能疯狂追剧的同时有没有留神到,有时咱们观看的网络视频,它的进度条不是一次性全副载入,而是一段一段的加载?同时必定也有小伙伴困惑为什么看视频咱们能快进,下载文件的时候就不能够?上面咱们就来一一解密。 视频缓冲技术在播放视频的时候,咱们个别不须要期待全副加载实现后再开始观看,而是在咱们关上视频的时候就能够点击观看,同时视频加载的进度条是随着播放继续加载。这里使用的就是视频缓冲技术。 缓冲是指将数据预加载到内存保留区(或称为缓冲区)的过程。在流式传输视频或音频的状况下,缓冲能够让客户端(或浏览器)在开始播放视频或音乐之前,先下载肯定数量的数据。这样当流媒体的下一部分在后盾加载时,您能够观看存储在缓冲区中的数据。这种预加载过程能够确保视频在网络稳固的状况下不收烦扰的放弃晦涩播放。 应用这项技术后观看视频就能够免去等待时间,不必全副下载完能力观看,大大提高了观看体验。 视频分段加载 目前支流的大型视频网站(例如腾讯、优酷、爱奇艺、blibli)在进行视频点播时,都应用了视频分段加载和播放的技术。比方咱们关上一个视频观看时,能够发现缓冲条在缓冲一段后进行,期待播放一部分后再持续缓冲,这个就是分段加载。 分段是将一个残缺的视频切割成若干小段视频。观看视频时,会跟随着播放的工夫一阶段一阶段地去加载剩下的小段视频,并不需要一下全部加载完。如果观看者看到了视频的 50%,忽然不想看了,没有应用分段技术可能会加载全副的视频。;有了分段,视频可能只须要加载 55%,剩下的45%在进行观看后就不会持续加载,这样就节俭了 45% 的流量。这也是分段加载最大的益处,既缩小带宽和流量的节约。 如果你在观看网络视频时关上了浏览器的开发者模式,你会看到除了开始申请视频返回的 200 状态码,上面还会有一串 206 状态码。 这种响应是当客户端表明本人只须要指标 URL 上的局部资源时返回的。点开任意一个 206 申请,都能够通过 Content-Range 响应头辨认出该局部内容的申请。Content-Range 响应头用于表明具体加载了资源的哪一部分。例如下图的申请就是加载的 3375104-16313201 字节的数据。 Content-Range: bytes 3375104-16313201/16313202 3375104-16313201 是指分段的数据 16313202 是指总文件大 将视频缓冲和分段技术相结合,既能使视频在客户端播放晦涩,又能无效的节俭带宽和流量,同时因为缓冲在本地的是小段视频,也为盗取视频减少了难度,可能更好的爱护视频版权。 又拍云 CDN 之分段缓存随着网络速度的一直放慢,视频播放的带宽需要也越来越大。经调研,一些视频网站的带宽老本仅次于影视剧版权费用,可见视频网站在带宽上老本之昂扬。 在针对视频网站的需要上,除去又拍云 CDN 的传统缓存技术,又拍云还开发了多种性能,为视频网站提供一些“节约流量的小妙招”。 CDN 的传统缓存技术是将残缺文件作为最根本缓存单位的,因为“点播和下载”减速业务中大文件(上百 M 甚至几十 G) 随处可见。如果客户端通过 HTTP 协定中的 Range 申请获取文件的局部内容,实现并发下载和断点续传。那么依照传统缓存个性,文件要么被残缺缓存,要么不缓存。 ...

July 30, 2020 · 1 min · jiezi

当我谈-HTTP-时我谈些什么

当咱们关上网站时兴许不会去注意网站后面的HTTP是怎么来的。然而它毫无疑问在网络中有着无足轻重的位置。本文从起源到倒退,详说HTTP从1到3的演变。 说在后面本文不致力于讲完 HTTP 的全部内容,事实上短短的篇幅也不可能讲完。本文也无心于深挖 HTTP 中的某一点,这是像 《HTTP 权威指南》或者是 RFC 协定做的事。 本文指标是帮忙读者理清 HTTP 的演化过程,说说 HTTP 变动的那些事。 HTTP 的起源HTTP 最后是 Tim BernersLee 1989 年在欧洲核子钻研组织(CERN)所发动的。Tim BernersLee 提出了一种能让远隔两地的研究者们共享常识的构想。这个构想的根本理念是:借助多文档之间互相关联造成的超文本(HyperText),连成可互相参阅的 WWW(World Wide Web,万维网)。用于传输的超文本传输协定(HyperText Transfer Protocol),即 HTTP 由此诞生。 WWW 这一名称,是 Web 浏览器当年用来浏览超文本的客户端应用程序时的名称。当初则用来示意这一系列的汇合,也可简称为 Web。 HTTP 自身是一个简略的申请-响应协定,它通常运行在 TCP 之上。从整个网络模型来看,HTTP 是应用层的一个协定。在 OSI 七层模型中,HTTP 位于最上层。它并不波及数据包的传输,只是规定了客户端和服务器之间的通信格局。定了客户端可能发送给服务器什么样的音讯以及失去什么样的响应。申请和响应音讯的头以 ASCII 码模式给出。 HTTP 采纳 BS 架构,也就是浏览器到服务器的架构,客户端通过浏览器发送 HTTP 申请给服务器,服务器通过解析响应客户端的申请。就是这个简略实用的模型,使得 HTTP 这个基于 TCP/IP 的协定迅速推广。 HTTP/0.9 到 HTTP/1.1HTTP 的演变并不是欲速不达的。当年 HTTP 的呈现次要是为了解决文本传输的难题。因为协定自身非常简单,于是在此基础上构想了很多利用办法并投入了理论应用。当初 HTTP 曾经超出了 Web 这个框架的局限,被使用到了各种场景里。 ...

July 15, 2020 · 6 min · jiezi

三分钟了解-Python3-的异步-Web-框架-FastAPI

疾速编码,功能完善。从启动到部署,实例详解异步 py3 框架抉择 FastAPI 的起因。 FastAPI 介绍FastAPI 与其它 Python-Web 框架的区别 在 FastAPI 之前,Python 的 Web 框架应用的是 django、flask、tornado 三种 Web 框架。 django 自带 admin,可疾速构建,然而比拟轻便。如果是 mvc 模式的开发,很多曾经封装好了,确实蛮适合。但如果是 restful 格调设计,则 django 就显得有一些轻便了。flask 疾速构建,自由度高。因为它非常轻捷,插件即插即用,很适宜用来做 restful 格调的设计tornado Python Web 框架和异步网络库,它执行非阻塞 I/O , 没有对 REST API 的内置反对,然而用户能够手动实现。FastAPI 疾速构建,异步 IO,自带 Swagger 作为 API 文档,不必后续去内嵌 Swagger-Ui我集体认为 FastAPI 是一个专门为 restful 格调设计,全面服务于 API 模式的 Web 后端框架。 FastAPI 官网定位 在 FastAPI 官网文档中,能够看到官网对 FastAPI 的定位: 疾速:十分高的性能,向 NodeJS 和 go 看齐(感激 Starlette 和 Pydantic)疾速编码:将性能开发速度进步约 200% 至 300%。谬误更少:缩小约 40% 的人为谬误(开发人员)。* (FastAPI 内置很多 Python 高版本的语法,比方类型正文,typing 库等等,因而被要求的 Python 版本为 3.6+)繁难:旨在易于应用和学习。缩小浏览文档的工夫。功能完善: 自带 Swagger 作为 API 文档Framework Benchmarks ...

July 9, 2020 · 5 min · jiezi

原来我在4年前就开始体验雾游戏了

前有云游戏后有雾游戏,游戏的方式看来起来越来越多种多样。那么“震撼业界”的雾游戏到底是什么来头?它依靠什么改变游戏界?它的原理又是什么? 本月月初,著名的日本游戏杂志《Fami通》表示有一个能够“震撼业界”的大新闻将在6月4日发行的期刊中公布。这一宣言毫无疑问吸引了许多游戏玩家和吃瓜群众的关注。毕竟前两年“用游戏重新定义游戏”的Apple Arcade和“云游戏”Stadia,都没有说自己是“震撼业界”。这么大的口吻让二狗子觉得自己看到了全息游戏,头号玩家这类游戏在向自己招手。 后经过多方消息探明,这个震撼业界的大新闻是指世嘉正在研发一种名为“雾游戏(Fog Gaming)”的技术。简言之就是使用类似雾计算的概念,将全日本游戏厅转换为云来使用,让游戏中心升级为“数据中心”,将云游戏原本十几毫秒的延迟降低到 1 毫秒以内。在此技术的支持下,街机厅在非营业时间也能获得收益。 看完了新闻消息的二狗子只有一个反应:就这?你拿着一个4年前就体验过的东西说什么“震撼业界”呢?你不要以为换个名字二狗子就不认识你了,这不就是利用边缘计算来实现的所谓”雾游戏”嘛“! 边缘计算与云计算要说边缘计算,那就不得不提到云计算。 云计算是一种基于互联网的计算方式,通过云计算,共享的软硬件资源和信息可以按需提供给各种终端。云计算常见的应用场景有云服务器、云存储、数据处理等。 这里也可以简单解释下,为什么世嘉研发的是“雾游戏”,而不是云游戏。云游戏是将游戏内容的运行都放到了云端服务器,用户只需要用屏幕来接受游戏画面及进行游戏操作即可。但是这会产生一个问题,那就是数据传输之间的延迟。从客户端上传操作数据到云端,由云端计算完毕后再返回给客户端,这来来回回高达数百毫秒的延迟,无法让你在进行游戏的时候享受丝滑流畅,画面大概率会卡成 PPT。这也是为什么云计算如此好用,但是在部分需要极速交换信息的方向没有办法使用的原因,当然这也是世嘉研发“雾游戏”的原因。 造成延迟的原因有很多个,其中一个是云计算无法解决的光纤传输所跨越的物理距离。无论你使用多么好的光缆,只要物理距离在增加,那么来回数据的传输时间也会增多,延迟自然也就同步上升了。当然这个问题可以通过增多云服务来解决,可是这又涉及到高额的成本,并不是轻易就能实现的。 什么是边缘计算 为了在不增加大额成本的同时又能有效降低云计算延迟问题,边缘计算诞生了。而边缘计算其实就是世嘉研发“雾游戏”的核心技术本质。 边缘计算是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供最近端服务。其应用程序在边缘侧发起,在靠近数据输入或用户的地方提供计算、存储和网络带宽。 使用一个贴近生活的举例来讲就是膝跳反射。当你叩击膝盖下方韧带时,你的小腿抬起会快于你的大脑发现被敲击这个事情。这是因为叩击韧带时,叩击这一数据优先传达到位于脊髓的低级神经中枢,而脊髓一边直接下达让小腿抬起的指令,一边将这个数据反馈给大脑。大脑是云计算,而脊髓则是边缘计算。 边缘计算的优点 相较于云计算,边缘计算有着以下几个优点: 低延迟:部署在设备附近的计算能力,避免了长距离数据传输从而完成设备请求的实时响应。成本小:不是依靠大量部署昂贵的云服务器,而是利用多台价格便宜的边缘节点组成数据网络。降低带宽压力:因为部分计算数据将由边缘节点完成,不再需要传输大量数据到站点,有效降低了站点带宽更安全:数据的采集、分析、处理都在本地网络完成了,避免了在公共网络传输时导致的泄露可能性。又拍云与边缘计算看到这里相信大家已经对边缘计算有了大概了解,也能了解为什么文章开头说它可以“震撼业界”了,因为它确实让随时随地玩各种大型游戏的梦想更加靠近了我们。当然也有人会觉得二狗子在吹牛,毕竟连世嘉都今年刚刚公布这个消息,你4年前是从哪里体验的? 这就不得不提到二狗子的老朋友——又拍云了。 早在 2016 年又拍云就意识到边缘计算与云计算是一种互补关系。云计算侧重“云”,边缘计算侧重“端”。云计算可以进行非实时、长周期数据的分析,适合集中业务的处理和复杂计算,边缘计算可以进行实时、短周期数据的分析,适合本地业务的处理与执行及简单计算。 因此又拍云瞄准 5G 物联网时代,早早就开始了对边缘节点的容器化改造,将又拍云的云存储、云处理、云安全、人工智能等云端的能力拓展至边缘节点和网络,满足用户对边缘计算节点远程管控、数据就近处理、数据分析决策以及智能化的诉求,帮助用户将业务下沉至边缘,提供完整的边云协同的一体化解决方案。 目前,又拍云边缘计算平台已经在视频监控、智能充电桩等领域落地实践。同时也会在未来让边缘计算和云计算在资源、数据、服务等领域形成“边云协同”,共同打造便捷快速的 5G 时代。 推荐阅读从 301 跳转,聊聊边缘规则的那些小妙用 企业如何高效平稳实现数据迁移

June 29, 2020 · 1 min · jiezi

QUICHTTP3-协议简析

从 HTTP 的进化历史讲起,细说使用协议的变迁,了解原因发现问题,解码 QUIC 在 HTTP3 中的支撑作用,共同探讨 HTTP3 的未来。 HTTP、HTTP2 和 HTTP3先和大家来回顾一下 HTTP 的历史,看看 HTTP3 相比 HTTP、HTTP2 都有哪些改进和升级的地方。 HTTP VS HTTP2 多路复用:多路复用时,多文件传输有时只需维护一个 TCP 连接。如果是 HTTP1 协议下,每份资源的传输对应一个 TCP 连接,一般最多只能开启 6 个 TCP 连接来传输多路数据,后续每增加一个新链接就会因为拥堵问题卡死,进而导致整个进程无法运行。因此HTTP/2解决了 HTTP 的队头阻塞问题。 头部压缩和 Server Push:HTTP2 会通过 HPACK 做头部压缩。同时 HTTP2 是二进制协议,在解析上相比基于文本的 HTTP解析效率上有所提升,并且 HTTP2 还增加了 Server Push。 在 TCP 下,依然无法解决延迟问题,比如为防止初始阻塞而引入的慢启动;TCP 队头阻塞,比如由于发生丢包,整个连接涉及的传输数据都需要重传而引起的阻塞。 尽管 HTTP2 相比 HTTP 已经有了改进的地方,但是如果你有 2% 的丢包率,那 HTTP2 在性能上就没有优势了。 上图是造成 TCP 队头拥塞(Head of line blocking)的原因。HTTP2 协议是基于 TCP 的,但是 TCP 本身是无法解决队头拥塞,为什么呢?因为 HTTP2 会把一次传输所有的文件都放在一个 TCP 连接中,只要这个 TCP 中发生一个丢包,连接就必须重新建立,之前所有传输内容进行必须重传,从而造成拥塞。 ...

June 29, 2020 · 2 min · jiezi

从-301-跳转聊聊边缘规则的那些小妙用

为什么明明输入的网址是A,但是打开的网站是B?为什么别的站点随便什么网址打开都是同一个页面?为什么别人换了网址也不需要单独说明?让我们走进边缘规则的妙用解开谜底。 经常会有朋友来问,网站访问时会自动从 HTTP 跳转到 HTTPS 并反馈 301 状态码。这时可以检查一下是否开启了又拍云的——HTTPS 强制跳转功能。也有不少朋友会认为 301 状态码就是代表从 HTTP 跳转到 HTTPS。其实不完全是,尽管返回 301 状态码进行跳转被Google认为是将网站地址由 HTTP 迁移到 HTTPS 的最佳方法,但是 301 跳转能做到的东西其实很多。 301 跳转又是什么呢?首先我们先来认识一下什么是 301 跳转。301 Move Permanently 是 HTTP 协议中的一个状态码(Status Code),可以简单地理解为该资源已经被永久改变了位置,由网址 A 永久性的更改为了网址 B。301 跳转主要有以下几个功能: - HTTPS 跳转,增加网站安全性 网站 HTTPS 已是大势所趋,HTTP 协议是通过明文传输,使用 HTTP 访问可能会有数据泄露等安全性问题,而 HTTPS 是加密传输,能够保证的传输数据的安全性。以 Chrome 为例,在新版的 Chrome 中,在使用 HTTP 访问时会显示为 ! 不安全。而使用 HTTPS 访问,会显示一个安全的锁的头标志。 而正如文章开头所说的那样,将网址从 HTTP 迁移到 HTTPS 的最优解就是通过301跳转。 ...

June 18, 2020 · 1 min · jiezi

IPv6-优于-IPv4-的十大功能

现在是 9102 年,有一个严重的问题,困扰着资深宅男二狗子。那就是偶像团体没新名了。今年开始,偶像团体 XKB48 已经在无法取更多的新名字了,排列组合的所有方式都已经经过了历史长河的洗礼,除非偶像们的人数从 48 改变,不然今年开始都得叫“XXKB48”。 除了偶像名字不够用了,二狗子还发现用于粉丝网站的服务器公网 IP,也不够了。虽然现在已经是 9102 年,二狗子还是喜欢用 IPv4,用爱发电的粉丝网站,一定要用吉利的数字才行,可二狗子在找到一篇 2019 年的文章后,毫不犹豫的选择了 IPv6。 文章标题很直白,《IPv6 优于 IPv4 的十大功能》。下面来看看文章中具体说了些什么吧。 更大的 IP 地址空间需要连接到 Internet 的每台计算机或在线设备都需要全球唯一的 IP 地址。IPv4 使用 32 位作为 IP 地址长度,允许大约 40 亿个唯一 IP 地址。当 IPv4 在 20 世纪 70 年代被引入并作为互联网协议被接受时,他们没有预见到互联网的普及程度。因此当时的人们坚信这 40 亿个地址足以应对未来的互联网环境。 今天,地球人口约为 66 亿,而互联网的人口仅为 13 亿,甚至不到全世界人口的 22%。很明显,在不久的将来会有越来越多的人连接到互联网。此外,随着通过 IP 融合通信技术(如数据,音频,视频和语音)的巨大进步,互联网的发展和扩展仍有巨大的空间。网络地址转换(NAT)等方法用于在唯一的全局IP地址和多个私有 IP 地址之间进行转换。例如,与每个用户具有唯一全球 IP 地址的情况相比,具有拨号服务的人在十个用户之间共享一个调制解调器,从而节省了大约 90% 的地址。此外,甚至企业用户也采用相同的方法让许多计算机共享一个地址,从而节省地址。然而,这在网络硬件和软件中带来了额外的复杂性。 而 IPv6 使用 128 位用于 IPv6 地址长度,允许 3.402823669 × 10³个唯一地址。要了解所涉及的规模,可以将整个 IPv4 空间视为一台经典 iPhone 4 大小,那么 IPv6 空间将是地球的大小。从这些数字可以看出,使用 IPv6 后,可以为每个人提供数十亿个地址,并确保必须连接到 Internet 的任何设备都具有唯一的 IP 地址。 ...

July 10, 2019 · 1 min · jiezi

WebP-大战-JPEG谁才是真正的王者

目前在互联网上,图片流量仍占据较大的一部分。因此,在保证图片质量不变的情况下,节省流量带宽是大家一直需要去解决的问题。传统的图片格式,如 JPEG,PNG,GIF 等格式图片已经没有太多的优化空间。因此 Google 于 2010 年提出了一种新的图片压缩格式 — WebP,给图片的优化提供了新的可能。 WebP,JPEG 的升级版WebP 就像 JPEG 的升级版。它是 Google 推出的图片文件格式,它的目的就是为 Web 上的图片资源提供卓越的有损、无损压缩。在与其他格式同等质量指数下提供更小,更丰富的图片资源,以便资源在 Web 上访问传输。 WebP 图片格式来源于 VP8 视频编解码器,也就是 WebM 视频容器,是 WebM 视频格式地单个压缩框架。VP8 编解码器的一个强大功能就是能够进行帧内压缩,或者更确切地说,能将视频的每个帧都被压缩,再压缩帧与帧之间的差异。 WebP 特性 有损压缩:有损压缩基于 VP8 关键编码。VP8 是 On2 Technologies 创建的视频格式,是 VP6 和 VP7 格式的后续版本。无损压缩:采用预测变换,颜色变换,减去绿色,LZ77 反响参考等技术进行压缩。透明度:8位 Alpha 通道对图形图像很有用。Alpha 通道可以于有损 RGB 一起使用。与其它格式图片所不支持的 WebP 特有的功能。动画:它支持真彩色动画图像,即可以支持动态图( 类Gif 图)元数据:它可能具有 EXIF 和 XMP 元数据颜色配置文件:它可能具有嵌入式 ICC 配置文件。关于压缩 为什么可以对图片进行有损压缩,因为使用有损压缩的一个关键原则是:人类的感知能力并没有计算机那么精确。科学证明,人的眼睛只能区分 1000 万种不同的颜色,并且人眼对亮度比色度更敏感,这意味着我们会忽略较大的色度变化,而不影响我们对图片的敏感度。这就是为什么“黑蓝白金裙”事件能引起那么大的讨论,它一定上也是受到我们人类的视觉敏感度所影响。 有损压缩 WebP 的压缩是使用与 VP8 相同的方式来预测帧。VP8 基于块预测与任何基于块的编解码器一样,VP8 将帧划分为称为宏块(MarcoBlocking)的小块。在每个宏块内,编码器可以基于先前处理的块来预测冗余运动和颜色信息。图像帧是“关键”,意思是它仅使用已经在每个宏块的直接空间邻域中解码的像素。并试图对它们的未知部分进行赋值。这就称为与预测编码。然后可以从块中减去冗余数据,进而有效压缩。 ...

June 27, 2019 · 1 min · jiezi

Old-Driver-的自信让-CDN-加速再加速

CDN 的存在,加快了用户的访问速度,使用户可以在不提升网速下,获得更好的访问体验。购物时,可以更快的显示商品图片;看电影时,可以随意的拖拽浏览。如果把数据资源比作是一件件包裹,那么用户的带宽就像是一辆拥有最大容量限制的货车。在未使用 CDN 加速前,货车只能行驶在普通的道路上,被各种红绿灯以及堵车所迫。当采用 CDN 之后,货车就像是获得了 VIP 特权,驶上了高速公路,能够更加的通畅高效。 那么是否有曾想过,如何让这辆货车能够行驶的更快一些,货物能够运送的更快一些呢? 智能压缩 - 将货物打包得更小巧在 HTTP 访问中,资源压缩通常需要客户端和服务端两者的配合,例如用户发起请求时,将会携带 Accept- Encoding 头字段,来表明客户端可以支持的压缩算法。而另一端服务端,则需要识别该头字段,同时选择出一种支持的算法来压缩资源,并返回给用户 Content-Encoding 头字段,表明服务端已经采用某种算法对资源进行了压缩。 例如使用 chrome 访问 http://Upyun.com 时请求头中携带的 Accept-Encoding 头字段: 与之对应的响应头中,Content-Encoding: gzip 表明服务端采用的压缩算法,Vary 头字段则用于内容协商。 又拍云的智能压缩包括 Gzip 和 Brotli 两大主流压缩算法,支持 1-5 的压缩等级。即使源站不支持 Gzip 和 Brotli 算法,也能响应出对应的内容,同时减少源站压缩时的 CPU 消耗。 智能压缩功能开启后,文件大小变化可以直接在访问时看到。 302 调度-选择更合适的路线DNS 的解析错误会导致用户的访问出现较高延迟,例如用户本可以直接访问上海节点,却从山东绕一大圈返回到上海访问,从而增加了用户的访问耗时,影响访问体验。 例如当用户第一次访问到广东珠海时(图1,2中的 113.106.98.34 节点),边缘节点会根据内部准确的 DNS 解析出用户应该访问的节点(图1,2中的58.222.18.2 节点),然后放置在 Location 头字段中,客户端接受到 302 响应之后,会访问 Location 中的位置,从而实现加速。 需要注意的是:302 跳转本身需要一定的消耗,因此只有当用户客户端支持 302 调整,并且资源均为大文件的情况下,开启 302 调度,才能够拥有较好的效果。 ...

June 26, 2019 · 1 min · jiezi

一文读懂-IPv4-到-IPv6-的过渡技术

在介绍 IPv4 到 IPv6 过渡技术之前,我们先来简单了解一下 IPv4 和 IPv6。什么是 IPv4?IPv4 全称为 Internet Protocol version 4,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,IP 地址是一个 32 位的二进制数,算下来其实也只有 2^32 个地址,这些地址中有分为 A、B、C、D、E 5 类,而比较常用的只有 B 类 和 C 类,这两类地址算起来数量就更加有限,在加上现在互联网迅猛的发展,在 2011 年 2 月 3 日 IANA 中 IPv4 地址池已全部耗尽,这就严重制约了互联网的发展。而对于 IPv6 来说,是用于替代 IPv4 的下一代 IP 协议,IPv6 地址长度是 128 位,长度是 IPv4 地址的 4 倍,IPv6 具体有多少地址呢?IPv6 128 位的地址长度可以提供 3.402823669 × 10³ 个地址,小编的数学不好,算不出来到底有多少,就借用一句话来形容,IPv6 可以为全世界每一粒沙子分配一个地址。这要是分配的是 GirlFriend 那该多好啊,这样工程师就能构建更厉害的技术,小编也能拥有一个 GF 了。 IPv4 VS IPv6除了充沛的 IP 地址数量,IPv6 相比 IPv4 还有其他诸多的优势。 ...

June 14, 2019 · 2 min · jiezi

CDN-访问控制的那些事

网络已经成为生活中必不可少的一部分,无论是清早手机翻看的新闻八卦,还是公交地铁里刷的停不下来的短视频,又或是你闲逛的购物网站,热追的电视剧,都与 CDN 有着密不可分的联系。无论你在互联网上做什么,或者消费什么类型的内容,其实每个文本字符、每一帧图像背后都会有 CDN 的助力。 CDN(Content Delivery Network,即内容分发网络)主要通过将访问内容缓存在边缘节点,缩短用户与网站的距离,来提高站点渲染速度和性能。很显然,CDN 发挥的作用主要由边缘节点来呈现,边缘节点作为用户与源站的桥梁,其实不仅仅只起到加速的作用,同时还可以作为恶意访问的“屏障”。这也就是我们今天着重要讲的 —— 访问控制。 又拍云 CDN 访问控制包含访问限制、各种防盗链、安全防护等功能,全方位满足用户需求。 访问限制访问限制分别包括 IP 黑白名单和地区访问限制,也是两种比较基础的访问控制功能。 IP 黑白名单 由于某些行业竞争激烈,因此常常会遇到一些竞争对手利用恶意 IP 占用网站资源,影响网站访问。为了能够保护站点数据和流量负载,需要网站运营者对这些恶意 IP 进行屏蔽。 若需要禁止某些 IP 或只允许某些 IP 访问,可以使用 IP 黑白名单功能。并且在同一时间内,又拍云只支持生效一种规则,比如:要么禁止某些 IP 访问,要么允许某些 IP 访问。支持 通配符,如 10.11.12.,将禁止或只允许 10.11.12.0 ~ 10.11.12.255 范围的 IP 访问。 地区访问限制 地区访问限制是指根据加速网站的需求,允许或禁止特定区域的终端用户对网站资源的访问。即网站指定地区,允许该地区终端用户访问,而限制其他地区用户访问,或者相反。 防盗链在讲防盗链之前,先来了解一下什么是盗链。 盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向终端用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。 简单来说,就是其他网站上“盗”用了你网站的资源,去增加他的网站点击率,但最后流量却算在你身上,让你花“冤枉钱”。这个当然不能忍!怎么办?由于各网站性质不同(游戏/新闻等),需求也是不尽相同的。所以又拍云提供多种防盗链功能,满足用户的需要。 Referer 防盗链 最常用的防盗链手段,就是通过对 HTTP 请求中的 Referer Header 进行判断,来决定用户是否可以访问该资源。 白名单:仅允许名单中的域名网站访问文件,其他域名网站都不允许访问。 黑名单:仅禁止名单中的域名网站访问文件,其他域名网站都允许访问。 Referer 为空:若禁止即不允许用户直接访问该资源,因为直接在浏览器的地址栏中输入一个资源的 URL 地址,请求是不会包含 Referer 字段的。 ...

June 12, 2019 · 1 min · jiezi

性感与色情有多远——你不知道的图片鉴黄那些事

图片鉴黄服务市场容量巨大,作为移动互联网行业最为热门的创业领域,移动社交类App每天生产大量图片,并有无数色情图片混杂其中,所以高效准确地鉴别和剔除淫秽色情信息成为一项十分艰巨的任务。此外,移动直播的大热也导致图片鉴黄需求大增,尤其对于中小开发团队而言,直播平台很可能因为人力监管问题而在涉黄审核方面出现风险。而自主研发鉴黄功能或增加审核人员又会增加产品和服务外的支出,给前期开发造成额外压力。利用人工智能图像识别技术进行高效准确的自动化鉴黄服务,能降低企业使用鉴黄服务的技术门槛,帮助企业有效减少相关人力成本的投入。如何界定性感与色情△ 传统神经网络与深度神经网络机器学习是人工智能的核心,简单来讲它就是:运用一套通用的算法——泛型算法,建立起数据逻辑,利用模仿人脑的机制来解释数据,让机器自动学习良好的特征,从而减少人工审核的过程。举例来说,想要教会机器去识别色情图像,需利用成千上万的图片样本去“训练”它,提取色情图片特征并不断记忆。每张图片中的任何一个点都包括亮度值、色相值、饱和度值,通过设置这三个值的大小范围,机器能识别出“肉色”,进而猜测出图片里裸露的人体皮肤区域。色情图片最明显的特点就是画面中人体皮肤颜色所占比例较大,当机器识别图片中有类似人体肤色区域后,需要进一步确认区域的来源,看他们是没有穿衣服的女主角还是正常物体。假设两块黄色区域分别是两条腿或者两只胳膊,另一块区域是人的身体,这些区域的长度值、宽度值符合人体大小比例,且彼此位置满足一定的几何关系,则有很大可能是色情图片,如果这些区域之间大小和位置不像是人的身体,则可以排除色情图片的嫌疑。△ 计算肤色区域的几何关系△ 图片区分标准色情:裸露敏感部位,包含露骨镜头,描述性交行为和色情场景的图片。性感:衣着暴露但没有裸露敏感部位。正常:非色情,非性感图片。色情与艺术的鉴定标准是人定的,理论上讲可以通过刻意训练、调整阈值等手段让机器更符合自己的标准,色情图片数量越多,风格和场景越多样化,机器学习结果越准确。机器学习的一个主要优势在于可以利用大数据样本,在学习的过程中不断提高识别精度。得益于今年来计算机速度的提升、大规模集群技术的兴起、GPU 的应用以及众多优化算法的出现,耗时数月的训练过程可缩短为数天甚至数小时,机器学习可以被广泛运用,大大提升鉴黄效率。人工智能图片鉴黄:机器学习与人工审核相结合△ 又拍云智能鉴黄工作流程又拍云“智能鉴黄”功能将自动对直播、视频、图片等内容进行鉴别。目前在一张图片鉴黄的完整过程是将它拿到鉴黄中心鉴别,完毕后,再把结果发送至图片审核平台进行最终确认。对于疑是色情图片将由人工审核确认,而这部分将会随着训练次数的增加而不断减少,帮助运营团队节省人工审核成本。如何进行直播鉴黄通常情况下,视频直播鉴黄服务利用视频截图、图像识别、语音审核、弹幕监控、关键词提取等方式识别色情内容。其中视频直播的鉴黄可按照以下步骤:识别图像中是否存在人物体征并统计人数;识别图像中人物的性别、年龄区间;识别人物的肤色、肢体器官暴露程度;识别人物的肢体轮廓,分析动作行为;提取音频信息关键词,判断是否存在敏感信息;实时分析弹幕文本内容,判断当前视频是否存在违规行为。每分钟视频采集关键帧的频率可由客户自主设定,从1秒到几十秒均可,例如可以默认5秒采集一次关键帧用于识别。推荐阅读:“人机"对战:电脑太简单了,我是射手 skrskrskrAI 这么优秀,连我鉴黄师的饭碗都抢了

March 29, 2019 · 1 min · jiezi

我眼中的 Nginx(五):Nginx — 子请求设计之道

张超:又拍云系统开发高级工程师,负责又拍云 CDN 平台相关组件的更新及维护。Github ID: tokers,活跃于 OpenResty 社区和 Nginx 邮件列表等开源社区,专注于服务端技术的研究;曾为 ngx_lua 贡献源码,在 Nginx、ngx_lua、CDN 性能优化、日志优化方面有较为深入的研究。子请求、父请求和主请求Nginx 所处理的大部分请求,都是在接收到客户端发来的 HTTP 请求报文后创建的,这些请求直接与客户端打交道,称之为主请求;与之相对的则是子请求,顾名思义,子请求是由另外的请求创建的,比如主请求(当然子请求本身也可以创建子请求),当一个请求创建一个子请求后,它就成了该子请求的父请求。从源码层面来说,当前请求的主请求通过 r->main 指针获取,父请求则通过 r->parent 指针获取。使用子请求机制的意义在于,它能够分散原本集中在单个请求里的处理逻辑,简化任务,大大降低请求的复杂度。例如当既需要访问一个 MySQL 集群,又需要访问一个 Redis 集群时,我们就可以分别创建一个子请求负责和 MySQL 的交互,另外一个负责和 Redis 的交互,简化主请求的业务复杂度。而且创建子请求的过程不涉及任何的网络 I/O,仅仅是一些内存的分配,其代价非常可控,因此在笔者看来,子请求机制是 Nginx 里最为巧妙的设计之一。子请求创建与驱动通常需要创建子请求时,模块开发者们可以调用函数 ngx_http_subrequest 来实现,默认情况下,子请求会共享父请求的内存池,变量缓存,下游连接和 HTTP 请求头等数据。当子请求创建完毕后,它会被挂到 r->main->posted_requests 链表上,这个链表用以保存需要延迟处理的请求(不局限于子请求)。因此子请求会在父请求本地调度完毕后得到运行的机会,这通常是子请求获得首次运行机会的手段。我们知道 Nginx 针对一个 HTTP 请求,将其处理逻辑分别划分到了 11 个不同的阶段。当一个子请求被创建出来后,它首先运行的是 find config 阶段,即寻找一个合适的 location,然后开始后续的逻辑处理。通常,如果一个子请求不涉及任何的网络 I/O 操作,或者定时器处理,一次调度即可完成当前的子请求;而如果子请求需要处理一些网络、定时器事件,那么后续该子请求的调度,都会由这些事件来驱动,这使得它的调度和普通的主请求变得无差别。既然除第一次外,子请求的驱动可能是由网络事件来驱动的,那么子请求的调度就是乱序的了。假设当前主请求需要向后端请求一个大小 2MB 的资源,我们通过产生两个子请求,分别获取 0-1MB 和 1MB - 2MB 的部分,然后发往下游,因为网络的不确定性,很有可能后者(1MB - 2MB)先获取到并往下游传输。那么此时下游所得到的数据就成了脏数据了。为了解决这个问题,Nginx 为子请求机制引入了另外一个称为 postpone_filter 的模块。该模块的目的在于,判断当前准备发送数据的请求,是否是“活跃的”,如果当前请求不是“活跃”的,则它期望发送的数据会被暂时保存起来,直到某一刻它“活跃”了,才能将这些数据发往下游。怎么判断一个请求是否是“活跃”的?我们需要先了解父、子请求之间的保存形式。对于当前请求,它的子请求以链表的方式被维护起来,而前面提到,子请求也可以创建子请求,因此这些请求间完整的保存形式可以理解成一颗分层树,如下图所示。上图中,每个红圈表示一个请求,每一层的请求分别是上一层请求的子请求。从树遍历的角度讲,在这样一棵树上,哪个节点应该最先被处理?结合子请求机制的实际意义来分析,子请求是为了分摊父请求的处理逻辑,降低业务复杂度。换而言之,父请求是依赖于子请求的。很大程度上父请求可能需要等到当前子请求运行完毕后根据子请求反馈的结果来做一些收尾工作。所以需要采用的是类似后序遍历的规则。即上图最右下角的请求是第一个“活跃”的请求。从源码层面来说,这颗分层树的保存用到了两个数据结构,r->postponed 和 r->parent这两个指针,遍历 r->postponed 来按序访问当前请求的子请求(树中同层的兄弟节点);遍历 r->parent 访问到父请求(树中上一层的父节点)。postpone_filter 模块会判断当前请求是否“活跃”,如果不“活跃”,则把将要发送的数据临时拦截到它自己的 r->postponed链表上(所以这个链表上其实既有数据也有请求);如果是活跃的,则遍历它的 r->postponed 链表,要么把被临时拦截下来的数据发送出去,要么找到第一个子请求,将其标记为 “活跃”,然后返回。等到该子请求处理结束,重新将其父请求标记为“活跃”,这样一来,当父请求再一次运行到 postpone_filter 模块的时候,又可以遍历 r->postponed 链表,循环往复直到所有请求或者数据处理完毕。感兴趣的同学可以自行阅读相关源码(http://hg.nginx.org/nginx/file/tip/src/http/ngx_http_postpone_filter_module.c)。使用了子请求机制的模块目前整个 Nginx 生态圈,有很多使用子请求的例子,最著名的便是 ngx_lua 的子请求和 Nginx 官方的 slice_filter 模块了。ngx_lua 提供给用户的 API (ngx.location.capture)灵活性非常大。 包括针对是否共享变量也可自行选择。特别地,ngx_lua 的子请求运行时,会阻塞父请求(挂起其对应的 Lua 协程)。直到子请求运行完毕,子请求的响应头、响应体(所以如果响应体比较大,则会消耗很多内存)等信息都会返回给父请求。ngx_lua 的子请求是不经过 postpone_filter模块的,它在一个较早的 filter 模块(ngx_http_lua_capture_filter) 里就完成了对子请求响应体的拦截。Nginx 官方提供的 slice_filter模块,可以将一个资源下载,拆分成若干个 HTTP Range 请求,这样做最大的好处是分散热点。这个模块允许我们设置一个指令 slice_size,用以设置后续 Range 请求的区间大小。该模块会陆续创建子请求(在前一个完成后),直到所需资源下载完毕。另外, Nginx/1.13.1 也引入了一个称为 Background subrequests 的机制(用以更新缓存)。基于这个机制,Nginx/1.13.4 引入了一个 mirror 模块,通过创建子请求,可以让用户自定义一些后台任务。比如预热一些资源,直接将它们放入 Nginx 自身的 proxy_cache 缓存中。陷阱与缺陷前文说到,子请求创建出来时,复用了父请求的一些数据,这无形中引入了一些坑点。比如变量缓存,如果在子请求中访问并缓存了某个变量,当后续在父请求中使用时,我们就会得到之前的缓存数据,这可能造成工程师们花费大量的时间和精力去调试这个问题。另外笔者认为一个非常重大的缺陷是,子请求复用了父请求的内存池,以 slice_filter 模块举例,它将一个 HTTP 请求划分成若干个的子请求,每个子请求向后端发起 HTTP Range 请求,在资源非常大 ,而配置的 slice_size 相对比较小的时候,会造成有大量的子请求的创建,整个资源下载过程可能会持续很长一段时间,这导致父请求的内存池在一段时间内没有释放,加之如果并发数比较大,可能会造成进程内存使用率变得很高,严重时可能会 OOM,影响到服务。因此在考虑使用的时候,需要权衡这些问题,有必要的话可能需要自行修改源码,以满足业务上的需要。虽然一些缺点是在所难免的,但是子请求机制很大程度上简化了请求的处理逻辑,它分而治之的处理思想非常值得我们去学习和借鉴,无论如何,子请求机制也将是后续进行系统设计时的一大参考范例。《我眼中的 Nginx》系列:我眼中的 Nginx(一):Nginx 和位运算我眼中的 Nginx(二):HTTP/2 dynamic table size update我眼中的 Nginx(三):Nginx 变量和变量插值我眼中的 Nginx(四):是什么让你的 Nginx 服务退出这么慢? ...

March 27, 2019 · 1 min · jiezi

又拍云 API 使用的那些小事

又拍云提供了丰富的 API 调用,为了减少用户在初次接入时可能会遇到的坑”,本文将对又拍云常用的 API 使用方法做个简单的梳理,力求让业务接入变得更简单,更高效。目前我们的 API 主要有四大类,分别是:云存储 API,云处理 API,人工智能 API,后台管理 API。前三类 API 都有主流编程语言对应的 SDK 或可视化的集成工具。SDK 的使用遵循说明文档配置环境,然后对方法进行引用,一般不会遇到太多的问题。不过有时我们需要抛开 SDK,自行根据文档来实现某个接口的某个功能时可能会遇到一些“坑”,调试的过程中有时候甚至会怀疑人生。调试 API 接口,除了直接用编程语言来调试,还推荐使用 Curl 命令或 Postman 来辅助调试。云存储 API云存储 API 是调用比较多的 API,在这个 API 中又以文件上传的接口调用最为频繁,我们就主要以这个接口为例,来做下详细讲述。API 地址:http://v0.api.upyun.com支持协议:HTTP ,HTTPS认证方式:基本认证 ,签名认证主要功能:上传文件,下载文件,删除(创建)文件(目录),获取文件信息,获取文件列表。常见问题一:上面是用 PUT 方法来上传文件,但是返回状态码 401,通过返回的 body 我们可以看出提示是比较清晰的:user not exists。这种情况一般是没有创建操作员或者创建了操作员但是没有授权给对应的服务。操作员这个概念会出现在云存储 API,云处理 API 和人工智能 API 中,所以这是个常见的 401 错误。常见问题二:依旧是401错误,不过返回的 body 信息不同:user need permission。这是提示操作员没有权限,因为我们对操作员的权限控制有三个,分别是:读取,写入,删除。上传属于“写入”操作,所以需要把“可写入”权限勾选上。同理,如果在文件删除过程中出现该问题,那么就需要把“可删除”勾选上。常见问题三:调试工具正常,但是代码嵌入网页上传时候控制台报错。这是因为网站用的是 HTTPS 协议,但是请求的是 HTTP 协议的接口,浏览器是拒绝在 HTTPS 的网站内请求 HTTP 协议的地址的,所以把请求地址更改为:https://v0.api.upyun.com/ 即可。常见问题四:上面三个问题都是用的基本认证,但是认证头并没有加密,只是简单的进行了 Base64 编码,如果在前端暴露出来,将会造成操作员账号泄露。就算只在后端使用,也存在一定的泄露风险。所以生产环境中一般使用签名认证。文件上传有三种方法,二进制 PUT 上传(适用于后端或者客户端上传)表单 POST 上传(适用于浏览器上传)FTP 上传有时候我们出于某种需求,可能需要在前端使用 PUT 的方式进行浏览器上传。同样的,调试工具正常,但是代码嵌入网页上传时候控制台报错,接口返回 401 状态码,body 信息:need date header。这是因为除了表单 POST 上传,其他用签名来认证的存储操作(PUT 上传,删除文件,云处理,内容识别等)都需要携带 Date 请求头,生成 Token 的时候 Date 的值也是参与运算的。但是,浏览器根据请求规范拒绝了自定义“unsafe header “Date””,这怎么办?答案是为了兼容前端的一些请求场景,我们提供了自定义的 Date 请求头 —— X-Date,进行请求头设置和 Token 计算的时候用 X-Date 即可。当然也有人说那为什么不取消这个必须参数 Date 呢?这个校验头是出于安全考虑,从时间的维度上来尽可能的保障请求的合法性。云处理 API云处理 API 也是又拍云 API 中的一大类。云处理也需要操作员账号、密码以及权限等,所以上面云存储 API 中遇到账号问题也会在该 API 中出现,这里就不再赘述。API 地址:http://p0.api.upyun.com,http://p1.api.upyun.com支持协议:HTTP,HTTPS认证方式:签名认证主要功能:音视频异步(同步)处理,异步拉取,文件压缩及解压缩,文档转换。云处理 API 的请求一般在服务端进行,前端只负责触发一个任务,所以可以避开浏览器的种种限制。这里常常遇到的问题无外乎是签名错误了。其实文档说明比较清楚了,签名的计算方式是:Authorization: UPYUN <Operator>:<Signature><Signature> = Base64 (HMAC-SHA1 (<Password>,<Method>&<URI>&<Date>&<Content-MD5>))一个成功的请求实例:因为 Content-MD5 是非必选项,所以我们请求头中不需要添加 Content-MD5 请求头,那么计算签名的时候也就不需要把 body 的 MD5 参与进去了,如下:Authorization: UPYUN <Operator>:<Signature><Signature> = Base64 (HMAC-SHA1 (<Password>,<Method>&<URI>&<Date>))如果此时我们把 body 体accept=json&service=tsqtestpic&notify_url=http://1.1.1.1&source=/x.mp4&tasks=W3siYXZvcHRzIjoiL3IvMy9zLzY0MHgzMjAvc3AvMTgwIiwicmV0dXJuX2luZm8iOnRydWUsInNhdmVfYXMiOiIveC5naWYiLCJ0eXBlIjoidmlkZW8ifV0= 的 MD5 值d22d7d15f3111a4d1a3ea6359f35e78c 也参与 Signature 的计算,请求最后会报签名错误。也就是说如果请求头中没有使用 Content-MD5,那么计算签名时候就不能让 Content-MD5 参与计算,反之则需要 Content-MD5 参与计算,这个规则在 云存储 API,人工智能 API 都是一致的。人工智能API人工智能 API 的调用规则与云存储和云处理的类似,也是使用的签名认证,签名的生成方式也一致。API 地址:http://p0.api.upyun.com,http://banma.api.upyun.com支持协议:HTTP,HTTPS认证方式:签名认证主要功能:图片识别,点播识别,文本识别在调用内容识别API接口时,需要注意内容识别分为“有存储”和“无存储”两种鉴别方式。“有存储”指的是待鉴别的图片或者视频是存储在自己的存储服务中,此参与 Authorization 生成的是该存储的操作员账号和操作员密码,“无存储”指的是待鉴别的内容并没有在自己的存储中,此时的提交方式可以是内容本身或 URL,这种方式的 Authorization 生成用的是内容识别控制台中的 ClientKey 和 ClientSecret。后台管理API后台管理 API 是又拍云服务管理后台开放接口,使得用户可以对后台进行程序化配置,甚至开发出自己的简易管理后台。API 地址:http://api.upyun.com支持协议:HTTP,HTTPS认证方式:Token 认证Token 认证过程相对简单些,只需要添加一个请求头 Authorization: Bearer <Token> 来用对应的方法请求对应的接口即可,需要注意的是接口的 POST 和 PUT 请求的 body 都是 json 字符串,所以请求时 Content-Type 需要设置为 application/json。以上主要对又拍云 API 的使用方法和常见问题做了简单的总结,结合接口的返回信息和文档说明,接入是一件比较简单的事情。在使用场景方面比如 PUT 上传时可以加上预处理作图请求头,图片会处理后再保存;POST 上传的同时可以加云处理的任务(如:色情识别,封面截图,转码适配等)。总体来说,这四大 API 的组合使用基本上可以满足用户的需求。推荐阅读:受到 1 万点暴击,二狗子被 DDoS 攻击的惨痛经历五分钟读懂什么是容器云 ...

January 3, 2019 · 1 min · jiezi

边缘计算 VS 云计算,谁才是未来

计算是互联网中一个永恒的话题,设备的所有运行都可以看成是 0 和 1 的运算。在计算中近些年有两个越来越响亮的技术:云计算和边缘计算。现如今是云计算方兴未艾,边缘计算已经有了燎原之势,本文将对这两种技术做下简单的对比介绍,让大家能够对边缘计算和云计算有一个更深入的了解。云计算是通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将与互联网更相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。云计算主要应用于以下场景.什么是云计算云计算(Cloud Computing)已经发展的比较成熟了,但其定义比较宽泛。云计算按照部署模型大致分为三类:公有云、私有云、混合云;服务模式也有三种:Saas、PaaS、IaaS 。由于篇幅有限,这里不再对这些名词做概念的展开。通俗地讲,云计算就是对计算机硬件,系统,网络,应用软件等资源的集中部署和再分配,以求达到计算资源的利用效率最大化。云计算的应用场景云服务器:相对于传统的物理机,云服务器部署快速,硬件扩展方便,系统高可用。只需要在厂商提供的控制台进行简单的点击操作,即可以完成硬件的搭配及系统的安装,快速的开通或者扩充一台云服务器。云存储:对于海量的图片或音视频文件,怎么实现存储的安全及访问的速度在云存储普及前一直是一个难题。高昂的硬件费用和维护成本让不少做音视频网站的站长望而却步。而云存储却解决了这个问题:多地区容灾备份,无限级扩容,多维度的访问控制,这个“网络大硬盘”就是这么简单的解决了这个问题。数据处理:互联网每天都会产生大量的数据,对这些数据进行识别、编辑、分析等二次加工是一件必不可少的事情。但是单机或者几台机器组成的集群由于存储和运算能力有限,时效性很低,对于动辄 GB 或者 TB 级别的数据处理是很无力的。这个时候云计算登场了,只需要把内容传输到云端,请求数据处理的接口即可实现对数据的编辑、内容的识别、模型的学习。又拍云处理基于云计算,不仅能够在云端完成图片水印、裁剪、锐化等 40+ 处理功能,也能够在云端对音视频提供剪辑处理、码率转换等,其中更包含能让图片瘦身 70% 的 WebP 图片处理以及能让视频瘦身 30% 的窄带高清。在云计算的基础上,计算从量变到质变,从而使大数据的处理得以普及,催生出人工智能,也使我们逐渐进入万物互联的物联网时代,而这个时代在呼唤着边缘计算。什么是边缘计算边缘计算(Edge Computing),其定义也比较宽泛,可以理解为“最近端的云计算”,但是边缘计算从许多共识来看,并不隶属于云计算,而是云计算的补充或者云计算的“预处理”。边缘计算能做什么呢?边缘计算主要服务于物联网(IoT),能够联网的设备,如:智能穿戴设备、智能家居、智能机床、无人驾驶汽车、无人机、智能港口等。这些各式各样的设备(设施)通过传感器或者预设程序组成一个巨大的通信系统,而要让这个系统正常运转起来,像人那样处理问题,就需要计算海量的数据并即时反馈,对庞大数据的处理要求暴露了云计算的不足。云计算 VS 边缘计算云计算的不足随着边缘计算的兴起,在太多场景中需要计算庞大的数据并且得到即时反馈。这些场景开始暴露出云计算的不足,主要有以下几点:大数据的传输问题:据估计,到 2020 年,每人每天平均将产生 1.5GB 的数据。随着越来越多的设备连接到互联网并生成数据,以中心服务器为节点的云计算可能会遇到带宽瓶颈。数据处理的即时性:据统计,无人驾驶汽车每秒产生约 1GB 数据,波音 787 每秒产生的数据超过 5GB;2020 年我国数据储存量达到约 39ZB,其中约 30% 的数据来自于物联网设备的接入。海量数据的即时处理可能会使云计算力不从心。隐私及能耗的问题:云计算将身体可穿戴、医疗、工业制造等设备采集的隐私数据传输到数据中心的路径比较长,容易导致数据丢失或者信息泄露等风险;数据中心的高负载导致的高能耗也是数据中心管理规划的核心问题。边缘计算的优势和发展边缘计算的发展前景广阔,被称为“人工智能的最后一公里”,但它还在发展初期,有许多问题需要解决,如:框架的选用,通讯设备和协议的规范,终端设备的标识,更低延迟的需求等。随着 IPv6 及 5G 技术的普及,其中的一些问题将被解决,虽然这是一段不小的历程。相较于云计算,边缘计算有以下这些优势。优势一:更多的节点来负载流量,使得数据传输速度更快。优势二:更靠近终端设备,传输更安全,数据处理更即时。优势三:更分散的节点相比云计算故障所产生的影响更小,还解决了设备散热问题。两者既有区别,又互相配合上文讲了云计算的缺点以及边缘计算的优点,那么是不是意味着在未来,边缘计算更胜云计算一筹呢?其实不然!云计算是人和计算设备的互动,而边缘计算则属于设备与设备之间的互动,最后再间接服务于人。边缘计算可以处理大量的即时数据,而云计算最后可以访问这些即时数据的历史或者处理结果并做汇总分析。这里可以从某个侧面做个比喻,如果云计算是章鱼的大脑,那么边缘计算就是章鱼的触角,触角对于外界刺激的反应大都出于本能,而这些不断的刺激产生的结果最后会汇集到大脑中,进而作为触角后续的行为提供决策的依据。由此来看,云计算和边缘计算是一种共生和互补的关系,并不会出现谁取代谁的问题,而是谁在哪些计算上更有优势,谁在哪些场景上更合适。为了拥抱边缘计算的到来,又拍云也在许多地方布局发力。又拍云 PrismCDN 就是布局 5G 和边缘计算的一张网络,它在 CDN 的基础上完美融合 P2P 及流媒体技术,高效整合利用零散闲置的上行带宽资源构建内容分发网络服务,将充分释放 5G 设备强大的计算、传输能力。此外基于 Docker 的又拍云容器云,节点分散在全国各地及海外,提供电信、联通、移动和多线网络,融合微服务、DevOps 理念,满足精益开发、运维一体化,大幅降低分布式计算资源构建复杂度,大幅降低使用成本,让边缘计算在节点部署、使用、维护上更加简单和便捷。推荐阅读:五分钟读懂什么是容器云

December 19, 2018 · 1 min · jiezi

CDN 的下一站是啥?边缘计算!

你是千千万万的创业者之一;????你志向远大,有抱负;????经过和家人/女友的唇枪舌战,一番折腾,你的公司轰轰烈烈地成立了;????开头,你只有你的兄弟;????初期,你们设计产品,准备上线,见一些客户推广产品;????兄弟几人齐心协力,互相帮助;????突然有一天,你的团队被某个大公司/风投相中,融资了!????你兴奋得不行,白天见客户,晚上修 BUG,某天照镜子发现:头顶秃了一块!????不得了,不得了,你突然意识到,每天有忙不完的事情,你该招人了;????于是,随着事业越做越大,人越招越多,终于逐渐有了公司的样子。????为了保证公司的正常运营,先后创立了研发部、产品部、市场部、财务部、人事部等;????当然了,初期他们不了解产品,你是要操心的,谁让你是创始人呢?????每天各个部门都有人问东问西,所有大小事情都要你定主意;????虽然有时候很烦,毕竟是自己打拼下来的,都要耐心回答他们;????但是,每件事都要亲力亲为,时间经常不够用;????渐渐的,你看出了哪些员工有发展前途,嗯,是时候可以培养成部门负责人了。????于是,每个部门都有了一个合格的负责人;✌他们每天管理各自手下的员工,小事情完全可以自己做主了;????每天及时汇总一些重大的事情和重要的信息交给你;????公司终于开始正常运转了~????——这个故事的内核是:什么事情都交给中央服务器来处理,是不现实的。你的故事讲完了,下面轮到我的了。今天我们主要来说一个最近很新兴的技术——边缘计算,其实就是上面故事中里的部门负责人。边缘计算 VS 云计算提起云计算,你一定熟悉的不能再熟悉了。云计算侧重在“云”,而边缘计算则侧重在“端”。拿开头的故事来说,你就是“云”,而各个部门的负责人就是“端”。具体来讲,边缘计算是将数据的处理、应用程序的运行,甚至一些功能服务的实现,由中心服务器下放到网络边缘的节点上。边缘计算是一种优化应用程序或云计算系统的技术,它将应用程序的数据或服务的某些部分从一个或多个中心节点(“云”)转移到另一个逻辑端点(“边缘”)。例如自动驾驶车辆,植入式医疗设备,其他物联网(IoT)领域及移动设备,通过在边缘进行执行分析和知识生成,使控制系统与中央数据中心之间的通信带宽减少。简单来说,就是将需要低延迟的计算机程序放在更接近请求的位置,从而降低了传输成本,缩短了延迟并提高了服务质量(QoS)。那么相较于云计算,边缘计算有哪些优势呢?优势一:实时性边缘计算使得联网设备能够处理在“边缘”形成的数据。最近“自动驾驶”也掀起了一番热浪,其实自动驾驶汽车本身就是一台高性能计算机,它需要通过大量的传感器来收集数据。为了安全可靠地运行,它需要立即对周围的环境做出反应,处理速度有任何延迟都有可能是致命的。利用云计算,虽然数据处理主要是在云端进行的,但在中央服务器之间来回传送数据可能需要几秒钟的时间。数据传输的时间跨度太长了。边缘计算在“即时计算”的需求下,就有了用武之地,它让自动驾驶汽车在车辆端更快速地处理数据成为可能,不需要在车辆和云端之间来回传输数据。优势二:智能性网络里面有大量的功能在边缘节点就可以直接处理掉。类似你公司的部门负责人,并不用事事禀报于你,他们就可以直接说想法,定计划,实现目标。传统的架构一些功能都需要回到中央服务器处理,但是现在在边缘就能直接处理并返回对应的结果。例如:身份验证,日志过滤,数据整合,图像处理和 TLS(HTTPS)会话设置等等。优势三:数据聚合性一台物理设备运行往往产生大量的数据,可以先在边缘进行过滤,然后汇总到中心再做加工,这都是利用边缘的计算能力。还是用那个故事举例,公司的各个部门负责人也总有拿不定主意的时候,他们会汇总各自的部门面临的问题和一些困难,汇报给你,这样你看到的是他们整理过的很直观的数据。这也是边缘计算的优势之一。边缘计算,CDN 的未来2017 年亚太 CDN 年会上,又拍云创始人、董事长刘亮为作了题为《边缘计算,推动业务创新》主题演讲,主旨是:边缘计算是 CDN 的未来。如今的 CDN 网络拥有遍布各地、接近用户的庞大服务器集群,自然成为了优势明显的边缘计算资源。随着技术的不断更迭,CDN 有了更多的智能化元素,包括分布式和低延时计算。与此同时,CDN 发展推动下的计算机富余力联同物联网、5G 等背景因素,为边缘计算的发展滋养了土壤。在 CDN 1.0 时代,CDN 以传输为主,从部署在互联网服务提供商(ISP)的边缘节点(POPs)传输网页内容。2.0 时代,CDN 能对网络做一些简单处理,以缓存软件为核心,同时配套负载均衡、日志分析、DNS 等服务。3.0 时代,CDN 开始具备智能调度特征,融合最新的网络技术,如 P2P 技术、清洗中心、高清技术,以及了 GSLB、VPN(虚拟专用网络)、WAAS(广域网加速业务)等。目前的 CDN 已经不仅仅局限于加速的功能,也可以胜任图片/视频的处理、人工智能等工作。在传统的架构上面,图片的处理要到中心,但是现在直接在边缘根据用户自定义的规则就把相应的内容直接返回了。边缘计算与 CDN 结合的优势根据 CB Insights (知名大数据调研机构)调研结果显示,到 2022 年,全球边缘计算市场估计将达到 6.72 亿美元。虽然是一个新兴技术,但在云计算运营的某些领域,边缘计算可能会更有效率。在 CDN 行业,利用边缘计算来提升自身竞争力都是不错的选择,边缘计算能够助力 CDN 更智能、高效和稳定。缓解成本压力边缘计算能够减缓数据爆炸,网络流量的压力。在向中心服务器传输数据时通过边缘节点进行一部分简单数据处理,进而能够减少设备响应时间,减少从设备到云端的数据流量。(以直播为例,同城互动放到边缘节点处理,成本可能会减少 50% )。智能调度资源满足实时化、智能化的需求对终端设备的数据进行筛选,充分利用设备的空闲资源,在边缘节点处过滤和分析,同时也降低了单点故障的可能性。例如,如果公司使用集中式云来存储其数据,突然服务中断,那么在问题得到解决之前数据将无法访问,并可能导致严重的业务损失。减少对云的依赖也意味着某些设备可以暂时脱离云端可靠地运行。并且就算当前边缘节点故障也可以调度到其他边缘节点进行服务,这样无疑保证了服务的可用性。又拍云在边缘计算的实践:容器化经过多年沉淀,又拍云目前拥有 6 个数据处理中心、300 多个国内自建节点、15 个海外 CDN 节点、5000 台服务器、5TB+ 保有带宽、日均请求超过 1000 亿次。基于以上的积累,在服务过程中,又拍云可以将源站内容分发至全国节点,解决网络带宽小、用户访问量大、网点分布不均等问题,提高用户访问网站的响应速度。作为以 CDN 为主营业务的互联网极速服务商,又拍云扮演了互联网护航者和加速者的角色,一直在做 CDN 在边缘计算领域的实践:容器化。又拍云容器云平台基于 Mesos + Docker + UPone + Slardar 构建,日均运行 Docker 容器 2000+,日均请求 3亿+,全面支持传输层和应用层服务。方案优势上,主要有以下几点:1. 多年 Docker 经验——基于 Mesos + Docker + Upone + Slardar 构建,支持底层服务、应用层服务。2. Docker 节点多、覆盖区域广300+ Docker 节点资源。3. 高可用从调度中心、容器节点、实时监控等多个维度保证服务的高可用。4. 多线节点支持更多运营商支持电信、联通、移动、华数、长城宽带等。5. 同网、跨网自动调度对同网 IP 提供同网 Docker 节点,对跨网 IP 提供跨网 Docker 节点。6. Docker 自动化更新——Docker 专属镜像仓库,通过 API 更新镜像,自动更新全网 Docker。又拍云“容器云”服务已经服务了智能飞行器、智能家居、安防(智能摄像头)、游戏、电商等领域的诸多厂商,想要了解更多边缘计算和容器云的小伙伴可前往容器云 - 全球首家分布式容器云平台 ...

September 29, 2018 · 1 min · jiezi