当前位置: 首页 > 知识库问答 >
问题:

500错误和微服务架构

上官斌
2023-03-14

我有两个微服务“前端”和“/用户”。当客户端向“前端”发出请求时,它们会与REST API进行通信,它会在内部请求“/用户”微服务。

当 /users回答500错误时,什么样的状态代码应该返回前端服务?

共有2个答案

司空凌
2023-03-14

那要看情况了!!微服务应该遵循其有限的上下文,并且应该是独立的,并且与其他服务松散耦合。摘自Chris Richardson的微服务网站:

微服务——也称为微服务体系结构——是一种体系结构风格,它将应用程序构造为一组相互关联的服务。

  • 高度可维护和可测试
  • 松耦合
  • 可独立部署
  • 围绕业务能力进行组织
  • 由一个小团队拥有

在您的上下文中,当底层通信用户服务失败时(不仅仅是500次,也可能是其他失败),您应该尝试回答前端服务的受限上下文的预期结果是什么。你还能回复一个有意义的回复吗?您是否可以返回半水化数据(例如,如果前端服务也从自身聚合了一些数据,则返回数据时用户服务的数据不可用)。如果是,那么您可能应该处理来自用户服务的500响应,并以2xx响应返回半水合数据(取决于请求的目的)。如果答案是否定的,那么可能最好也从前端服务中冒出5xx错误,正如上面Eugene已经回答的那样。

嵇丰
2023-03-14

500内部错误在这里很好:https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#5xx_server_errors

如果你不知道在这种情况下该做什么(如果你的服务没有底层服务就不能工作),500是专用的。

 类似资料:
  • 我用Laravel开发了自己的网站。它在Localhost中运行良好。 所以我已经将我的文件移动到实时服务器(byethost.com)。当我试图访问我的网站,我得到了一个错误(服务器错误500)。我是新来的。请任何人帮助我解决我的问题。 注意:已将所有本地文件移动到服务器中的public_html文件夹中。然后将文件移动到服务器中的目录。并且还更改了应用程序文件中的路径。 代码: 免费托管网址:

  • 我在GAE上开发应用程序,我在本地测试网站,但是,每次我试图将其部署到GAE时,它都报告错误:服务器错误 我在谷歌搜索了很多,似乎没有答案可以解决我的问题。当我在GAE应用程序中查找日志时,以下是我目前发现的主要问题。最初,我认为这是JDK8的原因,但当我设置JDK8时,我甚至不能在本地运行应用程序!

  • 让我们讨论一下微服务环境的体系结构。我们正在公司内部进行讨论,我想得到一些反馈。我认真考虑的是编排层(代码复制、更多移动部件改变api)。 网络应用- 原料药- 在这种情况下,服务不允许相互对话。业务流程层中的聚合服务 网络应用- 原料药- 这里允许服务相互对话,这里存在聚合服务。 账单属于哪里

  • 问题内容: 大家好,我在laravel和ajax中使用我的评论系统时遇到问题。实际上,它仅适用于php,但我遇到了ajax问题。 这是错误消息: 状态码:500内部服务器错误。并且错误显示:1/3 SQLSTATE [23000]:违反完整性约束:1048列’post_id’不能为null。 我正在编辑模态中的注释,我可以创建一个新注释,但是问题是使用ajax编辑它。 JS代码: 这是HTML:

  • Kubernetes 设计之初就是按照 Cloud Native 的理念设计的,Cloud Native 中有个重要概念就是微服务的架构设计,当将单体应用拆分微服务后, 随着服务数量的增多,如何微服务进行管理以保证服务的 SLA 呢?为了从架构层面上解决这个问题,解放程序员的创造性,避免繁琐的服务发现、监控、分布式追踪等事务,Service mesh 应运而生。 微服务 下图是Bilgin Ibr

  • 问题内容: 我正在尝试为这个工作中的项目学习AJAX。我有一个网站加载病人正在服用的药物。 我递归调用此AJAX函数,以便它将附加一个包含单种药物和7天历史记录的新表。我在使代码在FF和IE中执行时遇到问题。在chrome中效果很好。我有显示xmlhttp.status的警报,这是我得到的: xmlhttp.status == 500(内部服务器错误)。 我注释掉了所有递归,因此将其范围缩小到了这