使用两个后端实例和一个前端实例进行基于内容的路由的理想方法

发布于 2025-01-13 12:30:53 字数 668 浏览 0 评论 0原文

目前,我们有一个前端与后端实例通信以获取数据。我们有一个需求,我们需要运行另一个后端实例,其中包含与第一个实例不同的内容。例如,国家/地区为美国的数据将存储在第一个实例中,其余所有数据都存储在第二个实例中。现在,前端发出的请求应该根据内容路由到正确的后端实例。例如,如果请求美国国家/地区数据,则应将其转发到第一个实例,否则转发到第二个实例。 有哪些可能的方法来实现它?

我可以想到的一些方法是:

  1. 使用apache中的代理功能并根据查询字符串进行路由。尝试时遇到一些代理错误。
  2. 使用apache中的重定向功能。我们的前端每秒都在请求数据。因此,将会触发太多的重定向请求,如果发送许多请求,这可能会阻塞我们的服务器。
  3. 将其烘焙到前端代码中。在前端代码中配置这两个 URL。根据国家/地区名称路由请求。
  4. 使用 Nginx 等负载均衡器并将请求路由到 apache 服务器。我不相信有一个负载均衡器来做到这一点,因为 apache web 服务器可以处理这个问题。
  5. 有两台前端服务器。每个前端与一个实例对话。使用代理机制根据数据重新加载前端实例。例如,如果请求美国数据,前端的代理会将其路由到基于美国的实例,反之亦然。

目前是如何部署的:

我们当前的后端实例是一个tomcat服务器,前面是apache。第二个后端实例也将具有相同的设置。

Currently, we have a frontend talking to a backend instance to fetch the data. We have a requirement, where we need to run another backend instance which contains contents different from the first instance. For example, data with country as USA will be stored in the first instance and rest all data in the second instance. Now the request made from the frontend should be routed to the correct backend instance based on the content. E.g. If USA country data is requested it should be forwarded to the first instance, else the second.
What are the possible ways to acheive it ?

Some ways I could think are:

  1. Use proxy feature in apache and route based on the query string. Was facing some proxy error while trying it.
  2. Use redirection feature in apache. Our frontend keeps requesting data for every second. So too many redirection requests will be fired which might choke our server if many requests are sent.
  3. Bake it in the front end code. Configure the two URL's in the frontend code. Route the request based on the country name.
  4. Use a load balancer like Nginx and route the request to the apache server. I am not convinced to have a load balancer to do this, as apache webserver can handle this.
  5. Have two frontend servers. Each frontend talks to one instance. Use proxy mechanism to reload the frontend instance based on the data. E.g. If USA data is requested, the proxy at the frontend, will route it to the USA based instance and vice versa.

How is currently deployed:

Our current backend instance is a tomcat server, with apache in the front. The second backend instance will also have the same setup.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文