【发布时间】:2021-12-27 02:06:27
【问题描述】:
我的验收测试在管道期间与 rabbitMQ 实例建立了连接。但是 rabbitMQ 实例是私有的,因此无法在管道中建立此连接。
我想知道是否制作一个运行此测试的 api 端点并将其添加到启动探针中是否是确保此测试通过的好方法。
【问题讨论】:
标签: testing kubernetes acceptance-testing startup-probe
我的验收测试在管道期间与 rabbitMQ 实例建立了连接。但是 rabbitMQ 实例是私有的,因此无法在管道中建立此连接。
我想知道是否制作一个运行此测试的 api 端点并将其添加到启动探针中是否是确保此测试通过的好方法。
【问题讨论】:
标签: testing kubernetes acceptance-testing startup-probe
如果 rabbitmq 是您 pod 中的容器,是的,如果不是,那么您不应该这样做。
对此没有最终答案,但启动探测只是为了确保您的 pod 不会因为启动时间稍长而被其他探测误认为不健康。它针对需要在启动时构建资产或编译内容的遗留应用程序。
如果有一个地方可以对 rabitmq 进行连接测试,那就是 liveness probe,但是只有当你的应用程序完全依赖于 rabbitmq 的连接时,你才应该这样做,否则你的身份验证将失败,因为你无法连接到消息队列。如果您有第二个应用程序尝试连接到您的端点作为活性探测?第三个应用程序连接第二个应用程序以检查该应用程序是否存在?你可以仅仅因为rabbitmq重启或崩溃很快就杀死整个生态系统。
不推荐。
如果您的应用程序是工作线程,您可以将其作为您的活跃度探测的一部分,那么,没有与 rabbitmq 的连接会使工作线程无法使用。
您的验收测试应放在您的 CD 上,如果您没有 CD,则应放在部署后的脚本步骤中。
【讨论】: