首页 文章 精选 留言 我的

精选列表

搜索[Agent体系],共10000篇文章
优秀的个人博客,低调大师

5分钟快速梳理你的HTTP体系

HTTP 定义 HTTP(超文本传输协议) 是 客户端 与 服务端 之间信息交流的 桥梁。 在信息交流之前必须要做的就是 客户端通过连接TCP/IP协议 80 端口 ,以便 服务端侦听HTTP请求。3.HTTP 是 一种通用的 , 无状态的应用层协议,基于标准客户机/服务器模型。 HTTP 特点 1.采用 “请求/响应”的交互模式, 客户端发送请求,服务端接受请求,处理请求,并将处理结果返回给客户端。服务端不会主动发送请求。2.协议设计灵活,拓展性好,HTTP可以通过扩展新的请求方法实现新的功能。3.无状态:协议对于事务处理没有存储功能,意思就是如果上次响应的结果在该请求中需要用,那么是用不了的。缺点:每次连接的数量增大。优点:1.服务器处理速度快,效率高2.避免0了集群特点间状态同步的开销。4.持久连接:连接可以重复使用,提高了网络连接使用效率。持久连接 在HTTP1.1中已 经是默认选项。5.支持内容协商 HTTP 请求/响应交互模型 HTTP 常用请求方法 GET 方法 1.GET 方法 是 客户端 向服务端 获取资源时使用的,资源类型有图片,音频,HTML.....2.服务器在处理GET请求时,它会根据客户端发送过来的url上具体参数进行返回结果处理。3.当用GET请求获取数据量较大时,可能会出现传输过程中断情况,HTTP协议提供了断点续传机制,通过GET 方法获取资源时可以指定获取的起始点。 POST 方法 1.POST 方法主要是 客户端向服务端发送数据资源。2.POST 和 GET 方法区别:POST 请求会包含信息体,信息体中携带了要发送给服务端的数据。 HEAD 方法 HEAD 方法 和 GET 方法 POST方法类似 区别在于: GET方法返回的请求URL标识资源内容本身 HEAD方法仅仅返回相关响应头信息,不返回资源内容 3.HEAD 方法 主要用于 测试资源是否存在,是否被删除或修改 PUT 方法 PUT方法用请求有效载荷替换目标资源的所有当前表示。 DELETE DELETE方法删除指定的资源。 HTTP URI URI 1.定义 URI,通一资源标志符(Uniform Resource Identifier, URI),表示的是web上每一种可用的资源,如 HTML文档、图像、视频片段、程序等都由一个URI进行定位的。 2.URI的结构组成: ①访问资源的命名机制; ②存放资源的主机名; ③资源自身的名称。 3.实例 https://xxx.xxx.com/details/1 ①这是一个可以通过https协议访问的资源, ②位于主机 xxx.xxx.com上, ③通过“/details/1”可以对该资源进行唯一标识(注意,这个不一定是完整的路径) URI 构成 URL 统一资源定位符 统一资源名称 URL 1.定义 URL是URI的一个子集。它是Uniform Resource Locator的缩写,译为“统一资源定位 符”。 2.URL的一般格式为(带方括号[]的为可选项):protocol :// hostname[:port] / path / [;parameters][?query]#fragment 3.URL的格式由三部分组成:①第一部分是协议(或称为服务方式)。 ②第二部分是存有该资源的主机IP地址(有时也包括端口号)。 ③第三部分是主机资源的具体地址,如目录和文件名等。 第一部分和第二部分用“://”符号隔开, 第二部分和第三部分用“/”符号隔开。 第一部分和第二部分是不可缺少的,第三部分有时可以省略。 URL 和 URI 区别 URI:统一资源标志符(Uniform Resource Identifier) URL:统一资源定位符(uniform resource location) 说白了,URI与URL都是定位资源位置的,就是表示这个资源的位置信息,就像经纬度一样可以表示你在世界的哪个角落。URI是一种宽泛的含义更广的定义,而URL则是URI的一个子集,就是说URL是URI的一部分。换句话说,每个URL都是URI,但是不是每个URI都是URL的。 HTTP 发送请求 HTTP 响应请求 HTTP 状态码 100 Continue 继续。客户端应继续其请求 101 Switching Protocols 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议 200 OK 请求成功。一般用于GET与POST请求 201 Created 已创建。成功请求并创建了新的资源 202 Accepted 已接受。已经接受请求,但未处理完成 203 Non-Authoritative Information 非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本 204 No Content 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档 205 Reset Content 重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域 206 Partial Content 部分内容。服务器成功处理了部分GET请求 300 Multiple Choices 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择 301 Moved Permanently 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替 302 Found 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI 303 See Other 查看其它地址。与301类似。使用GET和POST请求查看 304 Not Modified 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源 305 Use Proxy 使用代理。所请求的资源必须通过代理访问 306 Unused 已经被废弃的HTTP状态码 307 Temporary Redirect 临时重定向。与302类似。使用GET请求重定向 400 Bad Request 客户端请求的语法错误,服务器无法理解 401 Unauthorized 请求要求用户的身份认证 402 Payment Required 保留,将来使用 403 Forbidden 服务器理解请求客户端的请求,但是拒绝执行此请求 404 Not Found 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面 405 Method Not Allowed 客户端请求中的方法被禁止 406 Not Acceptable 服务器无法根据客户端请求的内容特性完成请求 407 Proxy Authentication Required 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权 408 Request Time-out 服务器等待客户端发送的请求时间过长,超时 409 Conflict 服务器完成客户端的 PUT 请求时可能返回此代码,服务器处理请求时发生了冲突 410 Gone 客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资 源的新位置 411 Length Required 服务器无法处理客户端发送的不带Content-Length的请求信息 412 Precondition Failed 客户端请求信息的先决条件错误 413 Request Entity Too Large 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息 414 Request-URI Too Large 请求的URI过长(URI通常为网址),服务器无法处理 415 Unsupported Media Type 服务器无法处理请求附带的媒体格式 416 Requested range not satisfiable 客户端请求的范围无效 417 Expectation Failed 服务器无法满足Expect的请求头信息 422 Conflict 表明由于所提供的的作为请求部分的数据非法,创建或修改操作不能被完成 429 TooManyRequests 表明超出了客户端访问频率的限制或者服务端接收到多于它能处理的请求。建议客户端读取相应的Retry-After 首部,然后等待该首部指出的时间后重试。 500 Internal Server Error 服务器内部错误,无法完成请求 501 Not Implemented 服务器不支持请求的功能,无法完成请求 502 Bad Gateway 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应 503 Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中 504 Gateway Time-out 充当网关或代理的服务器,未及时从远端服务器获取请求 505 HTTP Version not supported 服务器不支持请求的HTTP协议的版本 HTTP 状态码分类 1** ------------------------------------> 信息,服务器收到请求,需要请求者继续执行 2** ------------------------------------> 成功,操作被成功接收并处理 3** ------------------------------------> 重定向,需要进一步的操作以完成请求 4** ------------------------------------> 客户端错误,请求包含语法错误或无法完成请求 5** ------------------------------------> 服务器错误,服务器在处理请求的过程中发生了错误 彩蛋环节 本文分享自微信公众号 - 前端自学社区(gh_ce69e7dba7b5)。如有侵权,请联系 support@oschina.cn 删除。本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

优秀的个人博客,低调大师

Telltale:看Netflix如何简化应用程序监控体系

为了解决流媒体平台应用程序监控的诸多痛点:警报太多、滚动屏幕太多、配置和维护太多......Netflix推出了 Telltale —— 一个建立在“用不着不断调整警报配置”前提上的应用程序监控系统。 作者:Andrei Ushakov, Seth Katz, Janak Ramachandran, Jeff Butsch, Peter Lau, Ram Vaithilingam, and Greg Burrell 原文链接:https://netflixtechblog.com/telltale-netflix-application-monitoring-simplified-5c08bfa780ba 01 Netflix的愿景 半夜,警报忽然被拉响,你从睡梦中惊醒,发现是一个度量标准跨过了限定的阈值。半梦半醒间,你迷迷糊糊地想,“这是真的出现了什么严重的问题吗? 还是只是一个有待调整的 (小小的)预警而已? 上一次有人调整我们的警报阈值是什么时候?也许只是因为上下游服务出了什么问题? ”。 但无论如何这是一个非常重要的应用程序,所以你不得不把自己从床上拽起来,打开你的笔记本电脑,然后开始浏览dashboard以获取更多信息。你还不能确信这是一个真正严重的问题,但你也意识到当自己在茫茫数据中寻找线索的时候,时间正在飞速流逝。 有效运作 Netflix 服务对该平台的用户体验至关重要。毕竟当用户坐下来看《Tiger King》 (Netflix在疫情期间大火的一部自制剧)时,他只希望这部剧能够流畅地播放 (不要出其他任何幺蛾子)。 《Tiger King》海报 多年来,Netflix从24小时随时待命的工程师那里学到了应用程序监控的痛点: 警报太多、滚动屏幕太多、配置和维护太多。流媒体平台的播放团队需要一个能够使他们快速诊断和补救问题的监控系统,对他们来说,意外发生时的每一秒都是非常宝贵的。 而Netflix发现自己的Node team也需要一个能够助力小规模团队运行一系列大型应用的强大系统。 为此,Netflix创建了 Telltale。 Telltale Timeline Telltale 综合了多种数据源,以创建应用程序运行状况的整体视图。同时,它可以不断学习应用程序的典型运行状况 (是否健康、良好)而不需要警报调优。 Telltale也因此知道到底什么是“运行状况良好”,所以当程序所有者的服务有运行状况不够“良好”或仅仅是有“运行不良好”的趋势时,Netflix都可以及时地通知他们。 度量是了解应用程序运行健康状况的关键部分。但有时候你可能有太多的指标、图表以及太多的dashboard。Telltale只显示应用程序和上下游服务的相关数据,Netflix则会用颜色来标识问题的严重程度 (除了颜色,用户也可以选择用数字来显示) ,这样就可以一眼看出应用程序的运行状况。 除此之外,Netflix还会highlight一些更广泛更有趣的应用,比如区域流量疏散和附近程序部署,这些信息对于全面了解系统运行状况至关重要,尤其是在事故发生的时候。 以上就是Netflix对于Telltale的愿景。而今天,这个愿景已经成为现实,Netflix在上周的科技博客中写道,Telltale现在监控着100多个面向 Netflix 生产端的应用程序的运行状况。 在生态系统中的应用程序 02 应用程序健康模型 任何Microservice (微服务)都不可能独立存在,它通常具有相应的依附关系,需要与其他相关服务互联互通,同时还存在于不同的 AWS 区域。 上文显示的调用图相对简单,它其实可以有更深的层次并囊括几十种服务。应用程序是系统的一部分,可能会受到属性变化的微妙影响,或者因为某些区域事件而发生根本性改变。一个 Canary (https://netflixtechblog.com/automated-canary-analysis-at-netflix-with-kayenta-3260bc7acc69)的启动也会影响应用程序,上下游的部署也是同样的道理。 Canary:原意是金丝雀,这里指一个新版本的软件,该软件通常只在运行稳定的情况下部署到一小部分用户中,以减少将新版本软件部署到生产环境中的风险。这种方法可以在不影响大多数用户的情况下快速发现新发布版本的问题。 Telltale使用多个来源的不同信号组装了一个不断进化、健康运行的应用程序模型: Atlas时间序列度量 区域流量疏散 Mantis实时播放数据 基础设施改变事件 Canary落地及部署 上下游服务的健康运行 客户端度量和QoE变化 警报由Netflix的警报平台触发 不同的信号对应用程序运行的健康状况有不同程度的影响。例如,延迟增加没有错误率增加的问题那么严重,某些错误代码也不如其他错误那么重要。在下游部署双重Canary可能不像立即在上游部署Canary那么重要。 区域流量转移意味着一个区域的流量归零,而另一个区域的流量翻倍。你可以想象失去度量标准将产生什么样的影响,度量标准的含义决定了平台应该如何理解它。 Netflix称,在构建应用程序健康视图时,Telltale 考虑了以上所有这些因素。 应用程序健康模型则是 Telltale 系统的的核心。 03 智能监控 每个服务运营商都知道警报调校的难度:设置的阈值太低,你会得到一大堆虚假的警报。继而你可能会过度补偿之前的误差——放宽警报设定标准——以至于错过了真正重要的警报。最终结果是团队对于现有的警报系统缺乏信任。 而Telltale 就建立在一个“你用不着不断调整警报配置”的前提上。 Netflix称自己通过提供策划和管理的信号包,方便了应用程序所有者的相关设置和配置工作。这些信号包组合成应用程序配置文件,用来解决最常见的服务类型中的普遍问题。 Telltale 自动跟踪各项服务之间的依从关系,从而构建应用程序健康模型中使用的网络拓扑结构。信号包和网络布局检测能够以最小的代价保持最新的配置,同时那些偏爱实用方法的人群仍然可以进行手动配置和调优。 没有一个单一的算法可以解释Netflix所使用的(各种各样的)信号。因此,Netflix采用了混合算法,包括统计、规则和机器学习。Telltale 还配有相应的分析器来检测长期趋势或内存泄漏。 也就是说,智能监控意味着用户完全可以信任Telltale,也意味着(在意外发生时)更快速地检测与解决问题。 04 智能警报 有了智能监控系统,自然也就产生了智能警报。当 Telltale 检测到应用程序系统运行中的问题时,会自动生成一个issue。团队可以选择通过 Slack、电子邮件或 PagerDuty (全部由Netflix内部警报系统提供支持)进行下一步警报生成。 如果问题是由上下游系统引起的,那么 Telltale 的上下文感知路由会向团队发出警告。智能警报也意味着只有一个相关团队会收到该通知,而所有团队都被警报轰炸的时代已经成为了过去。 Slack 中 Telltale 通知的示例 当问题出现时,获得正确的信息是至关重要的。Netflix的 Slack 警报也会启动一个只包含事件最相关上下文背景的线程,包括被Telltale识别为运行不健康的信号及其原因。这也为工程师们提供了对应用程序当前状态更好的理解,随时待命的他们也因此能够更容易地将程序恢复到正常状态。 意外事件总是在不断进化并拥有自己的生命周期,因此不断更新系统是非常重要的。情况到底是在变好还是在变坏?是否有新的信号或事件需要考虑?这些都需要平台和工程师们不断思考。 Telltale 随着当前事件的不断展开持续更新着 Slack 线程。相关线程在恢复到健康状态时会被标记为“已解决”,这样用户可以一目了然地知道哪些意外事件正在发生、哪些事件已经被成功补救。 但是这些 Slack 线程并不仅仅是为了Telltale而存在,团队成员还可以使用它们来分享附加的数据、相应的观察、理论和关于事件的讨论等等。事件数据和讨论都集中在一个线程中,有助于团队成员分享、理解以及更快地解决问题,同时也便于进行结果分析。 Netflix称自己也在努力提高Telltale系统中的警报质量。其中一个方法是从用户反馈中学习,他们在 Slack中创建了反馈按钮,并通过用户反馈来抑制未来警报出现的概率。同时,用户还可以给Netflix一些为什么某些警报不可操作的理由。这样一来,智能警报也意味着是用户可以信任的警报。 Slack 中的 Telltale 通知中的详细信息示例 05 为什么我的服务运行状况不佳? 各种各样的信号、应用程序系统的相关知识以及跨服务端的信号相关性有助于 Telltale 检测应用程序健康状况恶化的可能原因。这些可能的原因包括(但不限于)异常实例、Canary或非独立服务的部署、不健康的数据库或仅仅是流量激增等原因。将可能的原因进行highlight(在意外事件发生时)可以节省宝贵的时间。 06 事故管理 Telltale事件总结实例 当 Telltale 发送警报时,它还会参考相关的不健康信号创建一张快照,而随之到来的新信息也会被添加到该快照中。这简化了许多团队的事后评审过程。当需要回顾过去的问题时,应用程序事件摘要(Application Incident Summary)特性会在单一地点展示近期遇到的问题的方方面面,包括总停机时间和MTTR(Mean Time To Resolution 平均解决时间)等关键指标。 Netflix希望团队看到这些意外事件背后的模式和规律,以便他们能够提高总体服务可用性。 集群视图将类似事件分组 07 部署监控 Telltale 的应用程序健康模型和智能监控强大的可靠性已经被有力地证明,以至于Netflix也在使用它来进行更安全的平台部署。 Netflix选择从 Spinnaker (Netflix的开源交付平台)开始。在 Spinnaker 推出新构建的漫长过程中,Netflix使用 Telltale 来持续监视新构建运行的健康状况。持续监控意味着该部署在出现第一个问题迹象时便会停止部署并重新运行。这也意味着该问题衍生的破坏力更小、持续时间也更短。 08 持续改善 在一个复杂的系统中运行微服务是具有挑战性的。Telltale 的智能监控和报警系统帮助Netflix的服务运营商提高可用性、减少人力,也让工程师们在晚上睡得更好。但这还不算完,Netflix还在不断探索新的算法来提高警报的准确性。 Netflix仍然在思考和评估对应用程序健康模型的改进。Netflix相信在服务日志和跟踪数据中存在着大量有用信息,以及使用更高分辨率的度量标准的好处。 在 Telltale 上扩展新的应用程序已经十分成熟了,但对于Netflix来说,肯定还有更好的启发模式来帮助运营商发现影响服务运行健康与否的诸多因素,而Netflix也需要继续改进其服务界面。 09 Telltale是简化了的应用程序监控系统 一个健康的、运行状况良好的 Netflix 服务系统是该平台用户得以休闲娱乐的保障,但将不同信号与健康模型实时地联系起来仍然是一个挑战。再加上数以千计的流媒体设备类型、不断发展的架构以及不断增长的内容生产生态系统,这个问题变得非常有趣。 翻译:Coco Liang 一切为了QoE 音视频服务追求的不仅是单纯QoS,而是用户最终的极致体验,本次LiveVideoStackCon 2020 北京站我们也将邀请讲师讨论体验质量方面的分析与探索,点击【阅读原文】可了解更多讲师及话题信息。 LiveVideoStackCon 2020北京 2020年10月31日-11月1日 点击【阅读原文】了解更多详细信息 本文分享自微信公众号 - LiveVideoStack(livevideostack)。如有侵权,请联系 support@oschina.cn 删除。本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

优秀的个人博客,低调大师

Flutter 体系化建设,阿里有哪些技术沉淀?

为什么是 Flutter 集团内已有越来越多的业务和团队开始尝试 Flutter 技术栈,从闲鱼的一支独秀引领潮流,到如今淘宝特价版、盒马、优酷、飞猪等 BU 业务相继入局,Flutter 的业务应用在集团内也已经逐渐形成趋势。那么,是什么原因让集团内越来越多的开发者选择拥抱 Flutter 技术栈?Flutter 的哪些优势吸引了集团 Native 开发者们通过 Flutter 开发并交付业务? 从技术上看,个人认为 Flutter 最核心的 3 个特点最为吸引开发者: 极高的开发与交付效率,良好的开发体验 优秀的跨多端多平台能力 极强的 UI 表现力 开发效率 从集团电商业务属性出发,业务响应效率及其背后的研发效率从来都是最为重要的指标。在保证体验的前提下,尽可能的提高研发效率,就意味着更高的生产力。传统的 Native 业务研发 iOS/

优秀的个人博客,低调大师

AliFlutter - 面向阿里集团的Flutter体系化建设

作者|董岩(思牧) 出品|阿里巴巴新零售淘系技术部 2019 年无疑是 Flutter 技术如火如荼发展的一年。每一个移动开发者都在为 Flutter 带来的“快速开发、富有表现力和灵活的 UI、原生性能”的特色和理念而痴狂,从超级 App 到独立应用,从纯 Flutter 到混合栈,开发者们在不同的场景下乐此不疲的探索和应用着 Flutter 技术,也在面临着各种各样不同的挑战。 为什么是 Flutter? 阿里巴巴集团内也有越来越多的业务和团队开始尝试 Flutter 技术栈,从闲鱼的一支独秀引领潮流,到如今淘宝特价版、盒马、优酷、飞猪等BU业务相继入局,Flutter的业务应用在集团内也已经逐渐形成趋势。 那么,是什么原因让集团内越来越多的开发者选择拥抱Flutter技术栈?Flutter的哪些优势吸引了集团Native开发者们通过

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册