如果Go应用程序找不到外部依赖项/服务,是否应该恐慌

伊斯梅尔(Ismail H):

Golang应用程序应如何处理缺少的外部依赖项?当应用启动且找不到数据库时,应将数据持久保存在该数据库上,因为知道该状态下该应用无用,我应该对此应用感到恐慌吗?

否则,我可以无限地记录某些内容,打印到stderr或使用其他方法进行通知,但是我不确定何时选择每种方法。

访问Grzegorz:

无法访问外部网络服务的应用程序不应惊慌这应该可以预期,因为网络往往会失败。我会包装错误并将其进一步传递。

请考虑以下情形。您有多个应用程序服务器连接到两个数据库服务器。您一次要升级一个数据库服务器。一台服务器关闭后,一半的应用程序服务器就会崩溃并崩溃。您升级第二台数据库服务器,现在每个应用程序服务器都消失了。相反,当数据库不可用时,只需通过发送HTTP状态500来报告错误,例如。如果您有负载均衡器,它将把请求传递给正在运行的应用程序服务器。当数据库服务器返回时,应用程序服务器将重新连接并继续工作。

在另一种情况下,您正在运行一个交互式应用程序,该应用程序处理数据库以创建报告。连接不可用。应用程序惊慌失事,崩溃了。从用户的角度来看,它看起来像一个错误。我希望收到一条消息,指出无法建立连接。

在标准库中,当内部资源不可用时,它会惊慌参见template.Must这意味着应用程序本身有问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ClickOnce部署的应用程序找不到外部DLL

找不到外部依赖/回购

找不到在应用程序依赖项清单(MyApp.deps.json)中指定的程序集:

Heroku找不到Go应用程序

当找不到父项时,应用程序崩溃

更新到gradle3.1.0-beta1(Android Studio 3.1 Beta1)后,构建应用程序“找不到外部类”时出现意外错误

在多租户应用程序的请求管道外部获取ASP MVC Core中的依赖项注入服务

找不到Che的应用程序服务器

找不到dll程序集或依赖项

如何调试服务应用程序并检查应用程序中缺少哪个依赖项

当应用程序在外部服务器上运行时,找不到所有请求(404)

如何捕获从Tomcat Java应用程序到外部服务器的SOAP消息?

用于容器的 Azure Web 应用程序 - 容器无法连接到外部 WCF 服务

LLVM JIT编译的程序找不到外部功能

是否可以在应用程序启动时不使用服务定位器来实现依赖项注入?

Azure应用程序服务中的Python应用程序:引发JavaError(“找不到Java”)

找不到应用程序依赖清单中指定的程序集

找不到应用程序依赖清单中指定的程序集:

找不到在应用程序依赖清单(...)中指定的程序集

如果依赖项留空,则应用程序将无法运行;如果完全删除了依赖项,则应用程序将运行

递归应用程序依赖项 django

AngularJS模块应用程序依赖项

在 Angular 中路由到外部应用程序(例如 Wordpress)

将文本从网站拖放到外部应用程序

如何从MVC应用程序连接到外部URL

将JasperServer“嵌入”到外部Web应用程序中?

通过 html 链接到外部 android 应用程序

我的球衣服务应用程序显示“找不到类”异常。但是我已经在我的pom文件中配置了这些依赖关系

Qt创建者在运行应用程序时找不到依赖库