首页 > 解决方案 > 如何将请求转发到其他微服务

问题描述

我已经在 NodeJS 上工作了 5 年。我目前的任务是在 ExpressJS 中开发微服务。

在微服务架构中,我们知道网关将请求转发到从客户端接收到的相应微服务。现在我当前的应用程序有 4 个微服务。- 网关 - 认证 - 用户 - 产品

网关的主要职责是接收来自客户端的请求并将其转发给身份验证微服务或其他微服务。最近我遇到了代理 npm express-http-proxy 模块,它具有相同的请求转发功能。

我有两种方法可以将请求转发到其他微服务。

  1. 使用简化的 HTTP 客户端,将请求从网关重定向到相应的微服务。在这里,我列出了其中的一些 npm 模块。

    • 要求
    • axios
    • 得到
  2. 另一种方法是使用代理包。我觉得 express-http-proxy 最适合将请求转发给其他微服务。下面列出了很少的其他 npm 模块。

    • 快递-http-代理
    • http-proxy-middleware

过去,我使用 request 和 axios 模块将请求转发给其他微服务。

今天我发现 express-http-proxy 也是它的替代品。它还将请求转发给其他微服务。但是其他模块(http-proxy、http-proxy-middleware、node-http-proxy)比 express-http-proxy 更受欢迎,但它们没有按预期工作。

转发请求不仅是上下文,我们还需要处理来自微服务的响应或错误。

我无法决定哪个是转发微服务的更有效、更强大的解决方案?

希望我能解释一下我的观点。

标签: node.jsexpressrequestmicroservices

解决方案


推荐阅读