热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

打破双亲委派么,怎么打破_打破了vs你错了

打破双亲委派么,怎么打破为微服务构建RESTAPI时,需要做出一些关于响应的设计决策。某些响应显然是微服务周围协议的产物-例如3xx代码之类的东西都与重定向和路由有关

打破双亲委派么,怎么打破

为微服务构建REST API时,需要做出一些关于响应的设计决策。 某些响应显然是微服务周围协议的产物-例如3xx代码之类的东西都与重定向和路由有关。

通常,您将尝试获取正确的2xx代码以取得成功。 如有疑问,将为200(确定),但对于打算创建数据的请求,请考虑201(已创建),对于将在以后处理的请求,请考虑202(已接受)。

在本文中,我想讨论用于错误的4xx和5xx响应。 我还想考虑一下您的服务是否将尝试容忍下游错误。 您希望软件变得越复杂,内部异常就越精确。

确切地说,我的意思是简单。

笨拙的异常处理策略最终将导致艰苦的工作来应对所有用例。

简化简化简化

此刻,每当我被要求对微服务中的异常和错误提出意见时,我都会回答相同的答案。

有两类错误的...它出了问题,或者你就错了。

你错了

客户端错误最容易检测,并且需要与响应代码一样精确的错误处理。 通常,404错误并不是真正的例外,就像返回零结果一样。 对于其他错误,您基本上得到了:

  • 安全冲突,在处理请求之前应在适当的框架中进行检查
  • 无效的请求-通常是畸形的身体

很容易忘记,如果随机发生的Json解析异常发生在正确的层,则可以简单地将其归类为您错了。

一旦知道了要尝试证明的简单分类,就可以轻松地知道要做什么和要测试什么。

错了

这些错误分为两类:

  • 我的算法无法解决这种情况-对不起
  • 某些下游服务无法正常工作

在这两者中,后者可能会有一些变体,其中需要对错误应用重试策略,以便在给我们之前再次提出请求,从而避免出现网络故障,或者避免与多个相关服务进行某种机会游戏,此刻任何一个都可能在闪烁。

提示:如果要获得回应就像Yahtzee的游戏一样,则需要添加一些重试,并且这些重试应围绕明确定义的可重试进行, 否则会出错。

如果重试策略错误,它将重试以下内容:

  • 我的算法无法应付
  • 该请求永远不会有效

当然,生活中的事情不可能是二进制的吗?

有两种类型的人。 有人认为一切都是二元选择,然后还有其他……

从标题的二进制选择开始是一个很好的/强烈的起点。 然后根据需要将每个类别细分为子类别,可以帮助您处理特定的细微差别。

到目前为止,这对我们有用。

您可以逐步建立。

有两种类型的人员:懂得如何逐步构建事物的人员,以及……我将在另一天告诉您另一种类型的人员。

翻译自: https://www.javacodegeeks.com/2020/03/it-broke-vs-youre-wrong.html

打破双亲委派么,怎么打破



推荐阅读
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • 容器与微服务基础:快速入门指南
    探索容器和微服务的基础知识,了解如何通过先进的应用性能管理(APM)工具提升监控效能。加入AppDynamics APM的导览,掌握容器与微服务实施及监控的最佳实践。 ... [详细]
  • Go 通过 Map/Filter/ForEach 等流式 API 高效处理数据
    go,通过,map,filter,foreach,等,流,式,ap ... [详细]
  • 本文探讨了为何采用RESTful架构及其优势,特别是在现代Web应用开发中的重要性。通过前后端分离和统一接口设计,RESTful API能够提高开发效率,支持多种客户端,并简化维护。 ... [详细]
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
  • 近期我们开发了一款包含天气预报功能的万年历应用,为了满足这一需求,团队花费数日时间精心打造并测试了一个稳定可靠的天气API接口,现正式对外开放。 ... [详细]
  • 一面问题:MySQLRedisKafka线程算法mysql知道哪些存储引擎,它们的区别mysql索引在什么情况下会失效mysql在项目中的优化场景&# ... [详细]
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
  • 雨林木风 GHOST XP SP3 经典珍藏版 V2017.11
    雨林木风 GHOST XP SP3 经典珍藏版 V2017.11 ... [详细]
  • 2018-2019学年第六周《Java数据结构与算法》学习总结
    本文总结了2018-2019学年第六周在《Java数据结构与算法》课程中的学习内容,重点介绍了非线性数据结构——树的相关知识及其应用。 ... [详细]
  • 本文总结了优化代码可读性的核心原则与技巧,通过合理的变量命名、函数和对象的结构化组织,以及遵循一致性等方法,帮助开发者编写更易读、维护性更高的代码。 ... [详细]
  • 本文介绍 Java 中如何使用 Year 类的 atMonth 方法将年份和月份组合成 YearMonth 对象,并提供代码示例。 ... [详细]
  • 远程过程调用(RPC)是一种允许客户端通过网络请求服务器执行特定功能的技术。它简化了分布式系统的交互,使开发者可以像调用本地函数一样调用远程服务,并获得返回结果。本文将深入探讨RPC的工作原理、发展历程及其在现代技术中的应用。 ... [详细]
  • Spring Cloud因其强大的功能和灵活性,被誉为开发分布式系统的‘一站式’解决方案。它不仅简化了分布式系统中的常见模式实现,还被广泛应用于企业级生产环境中。本书内容详实,覆盖了从微服务基础到Spring Cloud的高级应用,适合各层次的开发者。 ... [详细]
  • 本文详细探讨了UML用例图中的两种重要关系——包含关系和扩展关系,通过具体示例解析这两种关系的应用场景及其实现方式。 ... [详细]
author-avatar
静静敲代码
很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有