rqlite,一个优秀的轻量级分布式关系数据库管理系统

Si 您正在寻找分布式 DBMS 使用 SQLite 作为存储引擎,让我告诉你 rqlite 适合你,因为它允许从彼此同步的存储中组织集群的工作。

从 rqlite 特征来看, 突出了安装、实施和维护的简便性 分布式存储 容错,有点类似于 etcd 和 Consul, 但它使用关系数据模型而不是键/值格式。

关于 rqlite

Raft 共识算法用于保持所有节点同步。 Rqlite 使用原始 SQLite 库和 go-sqlite3 驱动程序,除此之外,它还执行一个处理客户端请求的层,在其他节点中自我复制并监控就主节点的选择达成的共识。

对数据库的更改只能由被选为领导者的节点进行,但是有写操作的连接可以被定向到集群中的其他节点,它会返回leader的地址来重复请求(在下一个版本中,他们承诺添加自动转发调用到leader)。

主要关注的是容错, 所以数据库管理系统 仅在读取操作中缩放, 写操作是瓶颈。 可以从单个节点运行 rqlite 集群,这样的解决方案可用于通过 HTTP 提供对 SQLite 的访问,而无需提供容错能力。

SQLite 数据 在每个节点中,它们不是存储在文件中,而是存储在内存中. 在实现 Raft 协议的层级,会记录所有导致数据库更改的 SQLite 命令。

此记录用于复制(在查询重播级别复制到其他节点)、启动新节点时或从连接丢失中恢复。

为了减少记录的大小,使用了自动打包,在指定的更改次数后开始并导致确认快照,新记录开始(内存中的数据库状态与快照+累积更改日志)。

从 rqlite 特性:

  • 易于集群部署,无需单独安装 SQLite。
  • 能够快速获取复制的 SQL 存储。
  • 准备在生产项目中使用。
  • HTTP (S) API 的可用性,它允许以批处理模式更新数据并确定集群的领先节点。 还提供了各种编程语言的命令行界面和客户端库。
  • 存在定义其他节点的服务,允许您动态创建集群。
  • 支持节点间数据交换的加密。
  • 能够在阅读时自定义检查数据的相关性和一致性的级别。
  • 可选的连接不参与共识确定的只读节点的能力,用于增加集群对读取操作的可扩展性。
  • 支持基于在单个请求中组合命令的本机形式的事务(不支持基于 BEGIN、COMMIT、ROLLBACK、SAVEPOINT 和 RELEASE 的事务)。

关于 rqlite 6.0

新版本 引入旨在提高集群可靠性的重大架构更改 通过改进将读写请求定向到正确的集群节点的过程。

现在 Rqlite 节点 可以复用多个逻辑连接 它们之间使用通过 Raft 协议在节点之间建立的 TCP 连接。 如果请求需要Leader节点的权限,但是发送到Secondary节点,Secondary节点可以确定Leader的地址并发送给客户端,不需要进行Raft共识计算。

该更改还删除了用于同步元数据的单独组件,并删除了 Raft 对状态和元数据的单独处理。

辅助节点现在仅在需要时才向领导节点发送请求,当需要找出领导节点的地址时。 API 提供了获取集群中其他节点状态信息的能力。 Sysdump 命令添加到 CLI。

最后 如果您有兴趣了解更多信息 或者查阅安装说明和用户手册,你可以做到 从下面的链接。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。