1

我正在使用数据平面 API 来启动事务。我注意到我的 haproxy 文件的顶部看起来像这样。

# _version=130

当我启动我的应用程序以使用此 API 时,我读取了该值以作为我的事务版本的基础。但是,有时它会卡住告诉我以下错误。

{
  status: 409,
  text: '{"code":409,"message":"15: Version mismatch, transaction version: 129, configured version: 130"}\n',
  method: 'PUT',
  path: '/v1/services/haproxy/transactions/5d0298aa-038e-44d1-9381-f8db0612d9ea'
}

数据平面 api sidecar 进程似乎与系统上活动 haproxy.cfg 文件中的当前值不同步。但是,在搜索了 API 的 swagger (OpenAPI) 文件之后。在启动和提交事务时,我无法找到任何方法来获取要使用的实际版本。

有没有其他人遇到过这个问题?您是否注意到它仅在发出事务回滚时发生?我……到目前为止……

4

1 回答 1

1

我相信通过在配置端点上执行 GET 请求将在 _version 中返回它。例如:

# curl --user <user>:<password> http://localhost:10000/v1/services/haproxy/configuration/frontends
{"_version":2,"data":[{"name":"fe_main"},{"http-use-htx":"enabled","name":"fe_stats"},{"http-use-htx":"enabled","name":"stats"}]}

于 2020-04-02T22:43:37.353 回答