登录
首页 >  Golang >  Go问答

设置 ArangoDB 复制的方法使用 ArangoDB Go 驱动程序

来源:stackoverflow

时间:2024-02-20 16:03:25 489浏览 收藏

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《设置 ArangoDB 复制的方法使用 ArangoDB Go 驱动程序》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

问题内容

我需要使用辅助数据库设置一个简单的复制架构。我发现使用 arangosh 我可以使用以下命令进行设置:

db._useDatabase("myDB");
require("@arangodb/replication").setupReplication({
  endpoint: "tcp://main-server:8529",
  username: "user",
  password: "pass",
  verbose: false,
  includeSystem: false,
  incremental: true,
  autoResync: false,
  autoStart: true,
  restrictType: "include",
  restrictCollections: [ "Products" ]
});

然而,这种设置似乎并没有持续下去。连接断开或服务器重新启动会使它消失。

因此,我想在我的 go 程序中设置一些监视和重新建立复制的功能。

我搜索了 arangodb 网站手册页和 go 驱动程序文档,但找不到任何允许我使用驱动程序在 go 中运行上述设置的内容。

此外,我没有找到如何与 arangosh 交互,并可能运行上面的 js 代码并获得结果。使用 go 驱动程序可以实现这一点吗?


正确答案


我无意中找到了解决这个问题的方法。

golang 驱动程序不提供此功能。但是 arango 有一个非常简单的基于 http 的 api,它允许访问数据库引擎的所有功能和特性。

这是我使用的文档的链接:https://www.arangodb.com/docs/3.8/http/index.html (我使用的是 3.8 版,因为此后我需要的复制类型不再是社区版的一部分)。

设置复制只需两个步骤:

  • 使用 json 负载向 /_db/yourdbname/_api/replication/applier-config 发出 put 请求:
{
    "endpoint":"tcp://serverip:8529",
    "database":"yourdbname",
    "username":"root",
    "password":"password",
    "autoresync": true,
    "autostart":true
}
  • 另一个 put 请求实际开始复制,发送到 /_db/yourdbname/_api/replication/applier-start 。这个不需要任何有效负载

  • 要查看情况如何,您可以向 /_db/yourdbname/_api/replication/applier-state

    发出 get 请求

所有这些请求都需要一个 jwt 令牌,您可以通过向 /_open/auth 发送 post 请求来获取该令牌,有效负载为:

{
  "username": "user",
  "password": "passwd"
}

您收到的令牌需要作为不记名令牌包含在 http 标头中。非常简单。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>