首页 > 解决方案 > 负载均衡器的 Marklogic Rest API 事务问题

问题描述

我们正在使用 MarkLogic Rest Api 将数据发送/更新到 marlogic 数据库服务器。我们还使用事务进行多语句提交/回滚。因此,当我们通过负载均衡器将请求传递给 marklogic 以获取事务 id 并将该事务 id 与后续请求相关联时,最后我们尝试使用相同的事务 id 提交请求但负载均衡器抛出错误 Bad request (Load Balancer 无法识别请求,因为它失败了)。

  1. 我们通过 POST 方法调用 http://host:port/version/transactions API 创建事务,这将在 Location 响应标头中返回事务 ID。
  2. 然后我们将通过 eval (http://host:port/version/eval) 服务 api 将事务 id 与文档插入/更新相关联。
  3. 提交通过向 /transactions 服务发出 POST 请求创建的事务后,向 /transactions/{txid} 服务发送 POST 请求,其 URL 格式为:http://host:port/version/transactions/txid ?结果=结果

如何从负载均衡器获取会话 cookie?如何通过 c# 代码将其传递给后续请求?

标签: session-cookiesmarklogicaws-load-balancer

解决方案


此处记录了配置负载均衡器的一般模式:

https://docs.marklogic.com/guide/rest-dev/transactions#id_42381

有关配置特定负载均衡器的问题最好直接向该负载均衡器的供应商或社区提出。

在不相关的说明中,eval 端点应仅在开发期间用作方便,而不应在生产中使用,因为存在安全风险。

作为替代方案,请考虑安装主模块并使用调用端点或使用开箱即用的文档端点。

希望有帮助,


推荐阅读