打破了vs你错了

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

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

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

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

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

简化简化简化

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

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

你错了

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

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

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

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

错了

这些错误分为两类:

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

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

提示:如果要获得回应就像Yahtzee的游戏一样,则需要添加一些重试,并且这些重试应该在明确定义的可重试范围内, 出错了。

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

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

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

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

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

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

您可以逐步建立。

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339939.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android lable标签,android:label说明

文章目录1. 说明android:label 用于app 在切换activity的时候,自动更换左上角的显示2. 代码架构3. String.xml 字符串资源文件My Application主界面 labsecond 界面 lab4. AndroidMainfest.xmlpackage"com.example.myapplication">android:allowBackup"true&…

Neo4J OGM与Quarkus

在下面的视频中,我演示了一个使用Neo4J数据库和Neo4J OGM的Quarkus应用程序示例。 看一下GitHub上的示例项目 。 我为咖啡豆创建了一个示例域,其中包含我们可以查询和匹配的某些风味配置文件。 红色节点是来自某个国家/地区的咖啡豆,味道像…

鸿蒙os内测版应用名称,谁知道报名鸿蒙系统公测,应用名称怎么填的?

[分享交流]谁知道报名鸿蒙系统公测,应用名称怎么填的?92209电梯直达huafen327001442初窥门径发表于 2020-12-18 21:17:21来自:HUAWEI Mate 30 Pro 5G最新回复 2020-12-26 21:47:39Screenshot_20201218_210913_com.tencent.mm_edit_1719993392…

命令模式应用_命令设计模式的应用

命令模式应用嗨,您好! 今天,我将与您分享一种非常出色的编程设计模式。 它有很多用法,是我的最爱之一。 编程设计模式命令具有多种用例。 在这篇文章中,我们将看到如何实现来自现实世界的东西。 我们将使用电子汽车钥…

Java XMPP负载测试工具

在本文中,我们将开发用Java编写的XMPP负载测试工具。 目录 1.简介 2. XMPP负载测试工具 3.先决条件 4. LoadXmppTest Java程序 4.1。 创建一个新的Maven项目 4.2。 创建主类 4.3。 XmppManager类 4.4。 建立 4.5。 负载测试 5.总结 6.参考 7.下载Maven项目 1.简介 …

python get()函数_C++使用ffpython嵌入和扩展python(python2和python3)

C使用ffpython嵌入和扩展python(python2和python3)摘要:在服务器编程中,经常会用到python脚本技术。Python是最流行的脚本之一,并且python拥有定义良好的C API接口,同时又有丰富的文档,与C结合非常的适合。…

鸿蒙系统的挑战,简单的讲解下何为鸿蒙系统,可能会挑战你的认知颠覆你的想象...

本帖最后由 一梦盛夏 于 2020-12-2 17:33 编辑这篇文章可能会颠覆你的想象,挑战你的认知,请耐心阅读。今天不说专业术语,全部用比喻方式来聊,这样会更明白一些,也欢迎大家一起来讨论。首先,我们先聊聊何为鸿…

卡夫卡–一次语义学

在分布式环境中,故障是很常见的情况,可以随时发生。 在Kafka环境中,代理可能会崩溃,网络故障,处理故障,发布消息时失败或无法使用消息等。这些不同的场景引入了不同类型的数据丢失和重复。 失败场景 A&am…

akka的介绍_Akka笔记–演员介绍

akka的介绍过去做过多线程的任何人都不会否认管理多线程应用程序有多么艰辛和痛苦。 我说管理是因为它开始很简单,一旦您开始看到性能改进,它就会变得非常有趣。 但是,当您发现没有一种简单的方法可以从子任务中的错误或难以发现的僵尸错误中…

使用模拟进行测试

如果使用正确的方法,模拟对象将非常有用。 我在需要驱动软件开发使用的帖子中分享了一些使用Mock Objects的经验。 在这篇文章中,我分享了两件事 –使用模拟进行基于合同的测试。 –用于组织模拟代码的模式。 基于合同的测试 让我们以正在构建汇款服…

aws s3 獲取所有文件_AWS SA associate 证书考试学习记录-EBS,S3,EFS比较

我们的目标,就是花最少的时间,学到最多的东西:-)在AWS中,可以选择的存储服务很多,纷繁复杂,新手根本弄不清楚选择哪个。因为做为一个云架构师,你并不是让你的产品能用就够了&#xf…

html设置顶部对齐,HTML / CSS文本从div顶部对齐

首先,你需要修复你的CSS选择器 .你可以通过这种方式t write all those id .#content #main #services只需选择1个元素和他的孩子 .例如,如果你测试它,它将适用于你:#services .langelis .txt {width: 440px;height: auto;float: l…

hot编码 字符one_One Hot编码是什么?为什么要用它,什么时候用它?

作者:Rakshith Vasudev编译:ronghuaiyang导读当你在玩ML模型的时候,你会在任何地方遇到这个“One hot encoding”的术语。当你在玩ML模型的时候,你会在任何地方遇到这个“One hot encoding”术语。你可以看到一个one hot编码器的s…

CUBA 7.2 –有什么新功能?

CUBA平台的第七版向前迈出了一大步。 内部体系结构的改进和新的IDE为进一步改进奠定了良好的基础。 我们将继续添加新功能,以使开发人员的生活更轻松,并使他们的工作更加高效。 在7.2版中,我们引入了许多可能看起来像是主要更新的更改&#…

postgresql 分区视图_PostgreSQL架构集中式到分布式主流架构总结

文章目录一、PG未来主流架构为什么是分布式二、PostgreSQL集中式到分布式架构总结一、PG未来主流架构为什么是分布式如果说5年前DB的分布式还只是一种趋势,如今分布式数据库正逐渐从趋势变成主流。说到分布式,我想我们不能不提一下集中式和分库分表。01集…

html5 上传图片模板,HTML5实现图片文件异步上传

,过现前个能文使近记接的端问对字用近记接  利用HTML5的新特点做文件异步上传非常简单方便,本文主要展示JS部分,html结构。下面的代码并未使用第三发库,如果有参照,请注意一些未展现出来的代码片段。我这边的效果预览…

html中可以有两个h1,在一个HTML中h1标签能出现几次?h1标签和标题标签

首页 > web前端 > html教程 > 正文 在一个HTML中h1标签能出现几次?h1标签和标题标签的差别是什么? 2018-08-29 10:57:28本篇文章主要介绍了关于HTML h1标签的一些解释,有html h1标签和html title标签的区别,还有网页中h1…

Java中的记录类型

2020年3月发布的JDK 14引入了记录 (预览语言功能),这些记录提供了一种紧凑的语法来声明主要用于保存数据的类。 在记录中 ,所有低级,重复且容易出错的代码都类似于构造函数,访问器和通用方法,例…

山东省102021年普通高考成绩查询,山东高考成绩今日发布!成绩查询看这里!

原标题:山东高考成绩今日发布!成绩查询看这里!山东高考生注意啦~今天16:20举行山东2020年夏季高考第二次新闻发布会届时将会公布高考录取政策、分数线情况等今天17:00公布2020夏季高考与等级考成绩发布会怎么看?高考成绩怎样查&am…

使用SoapUI调用不同的安全WCF SOAP服务-基本身份验证,第二部分

在本系列的第一篇文章中,我们创建了一个基本的身份验证服务,以使用SoapUI进行调用。 因此,在第二篇文章中,我们将逐步演示如何使用此工具成功调用这种服务。 使用SoapUI的1-Basic WCF SOAP –创建新的SOAP项目 首先,我…