我有一个React应用程序,我希望将其部署在负载均衡器后面,负载均衡器定期对应用程序进行ping,以查看它是否健康。我的要求是提供一个/health
端点,它可以用于健康检查。
实现健康端点的理想方式是什么?
- 这是任何计划以自动修复方式部署React应用程序的人都需要的
- 该应用程序的主页面是
/dashboard
,这是一个沉重的页面。因此,它不能用作健康端点
即:我见过具有/hello
类型端点的react应用程序,这些端点返回类似I am healthy
的简单消息。
我将回答我自己的问题。经过大量的研究和经验丰富的React开发人员的询问,以下是在React应用程序中包含健康端点的常用方法。
这个要求是在容器化React应用程序以在Kubernetes环境中使用时提出的。
永远不要尝试将现有页面用作健康检查端点。因为,您的常规页面很重,健康检查端点需要很简单。
因此,使用/health
(或首选路径(创建一个新路由,并返回一个简单的HTML元素。下面给出的是简单CCD_ 6组件。
<Route path="/health">
<h3>Hey There!!! The App is Healthy</h3>
</Route>
下面给出了在Routes.js
文件中使用的方法。
import React from 'react';
import { Switch, Redirect, Route } from 'react-router-dom';
const Routes = () => {
return (
<Switch>
{/* This endpoint will just return you to a dummy HTML with a simple heading tag */}
<Route path="/health">
<h3>Hey There!!! The App is Healthy</h3>
</Route>
{/* All other routes will be defined here */}
{/* Finally you will be redirected to a not found page */}
<Redirect to="/not-found" />
</Switch>
);
};
export default Routes;
上面的答案会起作用,但健康端点将包含所有index.html内容,这在技术上对健康端点来说是不必要的。
更好的方法是在公用文件夹中添加一个名为health
的文件。然后,当调用/health
时,服务将返回文件的内容,这会更快、更小。