【问题标题】:How to simulate asp.net web API app to a deadlock or hung state?如何将 asp.net Web API 应用程序模拟为死锁或挂起状态?
【发布时间】:2022-01-12 15:41:22
【问题描述】:

我有一个 asp.net core 3.1 web api 应用程序。我可以写一个端点,如果我调用它,整个应用程序将进入挂起或死锁情况?还是我编写了一些代码来实现这一点的后台任务?

我正在尝试测试我在 asp.net 核心 Web API 应用程序中作为健康检查端点编写的 Kubernetes Liveness 探针。

谢谢。

【问题讨论】:

  • 你能解释一下为什么你需要让它陷入死锁/挂起的情况吗?
  • @Raymond,我想测试 kubernetes liveness probe,作为模拟,我想要死锁/挂起状态,以便 POD/容器自动重新启动。我在这里问过类似的问题,stackoverflow.com/questions/70271108/…
  • ok 发布了答案,希望对您有所帮助。

标签: kubernetes asp.net-core-webapi kubernetes-health-check


【解决方案1】:

如果是为了测试某种挂起的情况,你可以做一些事情,比如让线程/进程进入睡眠状态。确保睡眠时间大于livenessProbetimeoutSeconds配置。

或者如果你想模拟应用宕机,也可以在API响应中返回http status >= 400 (ex: 500 / Internal Server Error),这样livenessProbe就会认为应用不健康。

livenessProbe 也有 failureThreshold 用于指示在 K8 终止 Pod 之前可以容忍多少次失败,因此如果您希望 Pod 在 1 次失败后终止,请将其设置为 1。

【讨论】:

  • 谢谢@Raymond。这我也知道,但在运行时我想通过制造一些死锁或任何其他方式使应用程序不可用。请在此处查看我的其他问题,stackoverflow.com/questions/70271108/…,如果您有任何想法,请告诉我
猜你喜欢
  • 2022-01-13
  • 1970-01-01
  • 2021-06-04
  • 1970-01-01
  • 2013-04-22
  • 2019-08-08
  • 2012-06-11
  • 1970-01-01
  • 2013-02-17
相关资源
最近更新 更多