Kubernetes 上的 GraphQL 服务器到服务器连接超时

GraphQL server to server connection timeout on Kubernetes

我目前在 gcloud kubernetes 平台上 运行 有 3 项服务。

前端通过 graphql 查询连接到后端并请求一些数据。该查询被转发到另一个服务,该服务负责特定类型的数据,即 "bread"。

所以你有前端 (react/next.js) -> 后端 #1 (graphql) -> 后端 #2 (graphql)

所有这些都可以在集群内通信,我可以通过"kubectl logs podname"查看日志。

日志基本上说:

  1. 后端 #1:收到查询
  2. 后端 #2:收到查询(这是它查询数据库的地方)。
  3. 后端#1:

    ,"level":50,"msg":"无法从面包服务获取面包。FetchError: 请求 http://bread-service/graphql 失败,原因:连接 ETIMEDOUT some.ip.address:15\n

我不确定为什么会出现此超时错误。所有服务都可以成功通信。

我建议使用 apollo-gateway,你可以找到详细信息 here,这将在两者之间添加一个网关层,你可以在其中定义应该与之通信的所有服务的 URL彼此。

并且只通过入口公开网关。

在上面的例子中,我猜你漏掉了服务的端口号

http://bread-service:port/graphql 

试试这个,我想这应该有用。

但一定要看看 link,对于看起来适合实施的微服务,我也在探索相同的东西