etcd - 将数据保存到自定义数据库

etcd - save data to custom database

试图弄清楚如何创建一个简单的分布式数据库

etcd 用于在 Kubernetes 中对元数据进行共识。我可以看到 Dgraph BadgerDB 和其他键值存储正在使用 etcd,但我不太清楚他们是如何使用它的。更新:看起来他们正在使用 etcd 的 raft 子集。

我的问题:

etcd 用于存储元数据而不是数据本身 - 是 possible/recommended 将 etcd 与另一个键值存储结合起来处理大数据吗?

我也看过hashicorp raft

etcd 服务旨在处理元数据:检索一个密钥,获取一些通常在千字节范围内的数据。不是兆字节。

您不能将 etcd“卸载”到另一个数据库/数据存储。 Etcd 需要在大多数节点上具有低延迟的数据。

对 etcd 最大的批评是硬件要求:8GB RAM x 3 台机器对于某些用例来说可能太多了。

etcd 对你有好处吗?这在很大程度上取决于:

  • 您的工作量(主要是 read-oriented 而不是 write-oriented)
  • 你需要在短时间内从 etcd 发出多少请求:不要 'fire' 一次向 etcd 发出太多请求,否则你可能会触发领导者选举。
  • 以及您的数据大小:使用 --auto-compaction 启用以保持尽可能低的磁盘使用率并删除旧数据版本。