乐趣区

关于数据库:HStreamDB-v06-正式发布水平扩展性数据分发实时性提升

由 EMQ 开源的分布式云原生流数据库 HStreamDB v0.6 现已正式公布!

HStreamDB 是首个专为流数据设计的云原生流数据库,致力于大规模数据流的高效存储和治理。不仅反对在动态变化的数据流上进行简单的实时剖析,还反对对大规模数据流接入、存储、解决、散发等环节的一站式治理,将来在 IoT、互联网、金融等畛域的实时流数据分析和解决场景将施展重要作用。

在全新的 v0.6 版本中,咱们为 HServer 开启了集群模式,能够依据客户端申请和计算工作的规模对计算层节点进行弹性扩大。同时新增共享订阅性能,容许多个客户端在同一个订阅上并行生产,极大晋升了实时数据的散发能力。

最新版本下载地址:Docker Hub

新版本性能速览

反对集群模式,HServer 程度扩展性晋升

HStreamDB v0.6 正式反对 HServer 的集群模式。实现集群模式后,HServer 能够疾速程度扩大,反对节点衰弱检测和失效恢复,晋升了 HStreamDB 的容错能力和扩大能力。与此同时,HServer 反对负载平衡。通过监测集群中所有节点的实时负载状态,将计算工作正当调配到不同节点,实现了集群资源的高效利用。

对于集群的启动和部署,能够参考以下文档:

  • https://hstream.io/docs/en/la…
  • https://hstream.io/docs/en/la…

反对共享订阅,数据散发实时性加强

在 HStreamDB v0.6 中,咱们对之前的订阅模式进行了重构,推出全新的共享订阅性能。

在之前的版本中,一个订阅同一时间只能被一个客户端生产,这限度了 HStreamDB 对数据的实时散发能力。全新的共享订阅性能引入了消费者组(Consumer Group)的概念,通过消费者组来对立治理对 stream 的生产。一个 stream 的所有消费者都会退出到同一个消费者组中,客户端能够在任何时候退出或者退出以后消费者组。

HStreamDB 目前反对 at least once 的生产语义。HServer 将通过 round-robin 的形式向消费者组中的消费者派发数据。所有未收到客户端 Ack 回复的音讯都会在超时后被 HServer 主动重发给可用的消费者。同一个消费者组中的所有成员共享生产进度,HServer 负责保护消费者组的生产进度。HStreamDB 的高容错能力保障了任意节点的解体不会影响对 stream 的生产。

与此同时,HSteamDB 的 Java 客户端 也更新至 v0.6 版本,残缺反对 HStreamDB 的集群和共享订阅性能。新的 Java 客户端重构了订阅局部的 API,加强了客户端的易用性。对于 HStreamDB Java Client 的应用可参考 hstreamdb-java/examples at main · hstreamdb/hstreamdb-java

新增 HStream Metrics,零碎可观测性加强

在 HStreamDB v0.6 中,新增了根本的指标统计性能,比方 stream 的写入速率,生产速率等。

用户能够通过如下形式在 HStream CLI 查看这些指标:

-- Find the top 5 streams that have had the highest throughput in the last 1 minutes. 
sql>  
SELECT streams.name, sum(append_throughput.throughput_1min) AS total_throughput 
FROM append_throughput 
LEFT JOIN streams ON streams.name = append_throughput.stream_name  
GROUP BY stream_name 
ORDER BY total_throughput DESC 
LIMIT 0, 5;

查问后果如下图所示:

新增数据写入 Rest API,基于 HStreamDB 的更多可能

当初能够应用任何语言通过 Rest API 向 HStreamDB 写入数据,后续咱们打算将凋谢更多 Rest API,不便开源用户围绕 HStreamDB 进行二次开发,例如:通过 HStream Rest API 联合 EMQ X 开源版的 Webhook 性能,可能实现 EMQ X 和 HStreamDB 的疾速集成。

倒退布局

在 HStreamDB 的后续版本,咱们将次要围绕以下指标持续迭代:

  • 晋升集群的稳定性:减少更多集成测试,谬误注入测试,改良代码设计和修复 bug
  • 改善可用性和运维能力:改良 CLI tools,配置,Rest API,Java Client
  • 减少 stream 的扩大能力:以后 HStreamDB 能够高效反对大量 stream 的同时并发读写,然而当单个 stream 成为热点后会面临性能瓶颈,后续咱们打算通过 通明分区 的形式解决这一问题,外围准则是尽力放弃用户层面概念的简略性,将分区之类的复杂性封装在外部实现里,相比其它现有的解决方案,这将极大晋升用户的应用体验。

HStreamDB 是数据基础设施迈向实时数据时代的一次开创性尝试。随着研发迭代的一直推动,置信将来从多种数据源继续产生的大规模流数据将通过 HStreamDB 失去更加高效的存储管理和实时剖析,从数据获取洞察、产生价值的过程将被极大减速。敬请关注 HStreamDB 的后续停顿。

退出移动版